📄 firlms.c
字号:
#include "math.h"
#include "string.h"
#include "DSP28_Device.h"
#include <stdlib.h>
/////////////////////////////
#define PI 3.1415926
#define Coeff 16
#define num 1024
////////////////////////////////////////
float h[Coeff],fU;
int x[num],y[num],z[num];
///////////////////////
int FIRLMS(int *nx,float *nh,int nError,int nCoeffNum);
/*****************************************************************/
main()
{
int i,out;
/*初始化系统*/
InitSysCtrl();
/*关中断*/
DINT;
IER = 0x0000;
IFR = 0x0000;
/*初始化PIE*/
InitPieCtrl();
/*初始化PIE中断矢量表*/
InitPieVectTable();
out=0;
fU=0.0005;
for ( i=0;i<Coeff;i++ )
{
h[i]=0;
}
for ( i=0;i<num;i++ )
{
x[i]=256*sin(i*2*PI/34);
y[i]=z[i]=0;
}
for ( i=Coeff+1;i<num;i++ )
{
out=FIRLMS(x+i,h,out-x[i-1],Coeff); // break point y[i]=out;
y[i]=out;
z[i]=y[i]-x[i];
}
exit(0);
}
int FIRLMS(int *nx,float *nh,int nError,int nCoeffNum)
{
int i,r;
float fWork;
r=0;
for ( i=0;i<nCoeffNum;i++ )
{
fWork=nx[i]*nError*fU;
nh[i]+=fWork;
r+=(nx[i-i]*nh[i]);
}
r/=128;
return r;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -