自适应滤波器.c

来自「自适应滤波器在DSP中的C语言程序」· C语言 代码 · 共 47 行

C
47
字号
#include <type.h>
#include <board.h>
#include <codec.h>
#include <mcbsp54.h>
#include <stdio.h>
#include <math.h>
#define beta 0.01
#define N 21
#define NS 40
#define Fs 8000
#define pi 3.1415926
#define DESIRED 2*cos(2*pi*T*1000/Fs)
#define NOISE sin(2*pi*T*1000/Fs)

main()
{
long I,T;
double D,Y,E;
double W[N+1]={0.0};
double X[N+1]={0.0};
FILE*desired,*Y_out,*error;
desired=fopen("DESIRED","w++");
Y_out=fopen("Y_out","w++");
error=fopen("error","w++");
for(T=0;T<NS;T++)
{
X[0]=NOISE;
D=DESIRED;
Y=0;
for(I=0;I<=N;I++)
Y+=(W[I]*X[I]);
E=D-Y;
for(I=N;I>=0;I--)
{
W[I]=W[I]+(beta*E*X[I]);
if(I!=0)
X[I]=X[I-1];
}
fprintf(desired,"\n%10g %10f",(float)T/Fs,D);
fprintf(Y_out,"\n%10g %10f",(float)T/Fs,Y);
fprintf(error,"\n%10g %10f",(float)T/Fs,E);
}
fclose(desired);
fclose(Y_out);
fclose(error);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?