⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 firlms.c

📁 这里面包括所有的DSP程序例程
💻 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 + -