求C语言的大神帮我解释下这个程序吧,最好每句标注下。谢谢~~

#include"math.h"
#define PI 3.1415926
#define COEFFNUMBER 16
#define INPUTNUMBER 1024
int FIRLMS(int *nx,float *nh,int nError,int nCoeffNumber);
float h[COEFFNUMBER],fU;
int xx[INPUTNUMBER],rr[INPUTNUMBER],wc[INPUTNUMBER];
main()
{
int i,nLastOutput;

nLastOutput=0;
fU=0.0005;
for ( i=0;i<COEFFNUMBER;i++ ) h[i]=0;
for ( i=0;i<INPUTNUMBER;i++ )
{
xx[i]=256*sin(i*2*PI/34);
rr[i]=wc[i]=0;
}
for ( i=COEFFNUMBER+1;i<INPUTNUMBER;i++ )
{
nLastOutput=FIRLMS(xx+i,h,nLastOutput-xx[i-1],COEFFNUMBER); // break point
rr[i]=nLastOutput;
wc[i]=rr[i]-xx[i];
}
exit(0);
}
int FIRLMS(int *nx,float *nh,int nError,int nCoeffNumber)
{
int i,r;
float fWork;

r=0;
for ( i=0;i<nCoeffNumber;i++ )
{
fWork=nx[i]*nError*fU;
nh[i]+=fWork;
r+=(nx[i-i]*nh[i]);
}
r/=128;
return r;
}

是自适应滤波器算法的C语言程序,在DSP芯片VC5509上,用CCS


追问

可以仔细点给我解释下吗,就是每一步的意图,比如说某一步的计算是根据什么公式啦。

追答

int FIRLMS(int *nx,float *nh,int nError,int nCoeffNumber);//这是一个滤波函数,具体实现就要结合实际了。比如说滤波的定义是什么啊

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-21
#include"math.h"
#define PI 3.1415926//宏定义 把pi定义为3.1415926
#define COEFFNUMBER 16
#define INPUTNUMBER 1024//同理
int FIRLMS(int *nx,float *nh,int nError,int nCoeffNumber);//函数声明
float h[COEFFNUMBER],fU;int xx[INPUTNUMBER],rr[INPUTNUMBER],wc[INPUTNUMBER];分别定义四个float型的数组
main()//main函数
{ int i,nLastOutput;//定义
nLastOutput=0; //赋值
fU=0.0005;
for ( i=0;i<COEFFNUMBER;i++ ) h[i]=0;//h[]数组初始化
for ( i=0;i<INPUTNUMBER;i++ )
{ xx[i]=256*sin(i*2*PI/34);//用公式求xx[]
rr[i]=wc[i]=0; //赋值
}
for ( i=COEFFNUMBER+1;i<INPUTNUMBER;i++ )
{
nLastOutput=FIRLMS(xx+i,h,nLastOutput-xx[i-1],COEFFNUMBER); // break point //函数的使用
rr[i]=nLastOutput; //赋值给rr[]
wc[i]=rr[i]-xx[i]; //公式赋值}
exit(0);//退出}
int FIRLMS(int *nx,float *nh,int nError,int nCoeffNumber)//函数的编写
{ int i,r; //定义
float fWork;
r=0;
for ( i=0;i<nCoeffNumber;i++ )
{
fWork=nx[i]*nError*fU; //公式计算
nh[i]+=fWork; //赋值
r+=(nx[i-i]*nh[i]); //计算赋值
}
r/=128;
return r;//把r值返回
}
第2个回答  2013-05-21
看不懂 555555555555555
第3个回答  2013-05-21
啊你哟~肥子啊你哟
相似回答