采集的信号为50Hz的正弦波:采集400个点:下面是A/D中断中的函数
if (m==400)
{
fir();//启动FIR滤波
StartCpuTimer0();//开始D/A输出
m=0;
}
以下是FIR中的程序
void fir()
{
int m,n;
unsigned int *x;
for(n=0;n<399;n++)
{ x=&input[n]; //指针指向每次导入的数据
yn=0.0; //每做完一次乘累加后,把值赋给输出coefficient1后重新归0;
for(m=0;m<N-1;m++)
yn+=BB[m]*(*(x++));//做N次的乘累加
coefficient1[n]=yn;//赋值
}
}
|