Fdatool生成的IIR系数在Dsplib中的使用方法

来源:互联网 发布:51单片机发展 编辑:程序博客网 时间:2024/05/29 16:25

一、Fdatool系数生成方法

将滤波器参数设置好后,点击Design Fiter生成IIR滤波系数,然后依次点击菜单栏Targets-Generate C header入下图所示:

二、生成系数使用方法

生成的系数保存为fdacoefs.h头文件,内容为:



根据IIR使用说明,需要让b的系数都乘以增益G。同时根据Dsplib中IIR函数对系数的引用说明,需要将系数归一化到-32767——+32767,因此需要将系数都乘以32767.同时放置系数的数组h需要按照【a1,a2,b2,b0,b1.....】顺序,因此可使用下面函数将fdacoefs.h头文件中的系数初始化在h数组中。
/***********************将FDATOOL生成的IIR参数整合到h数组中*************************************/void Int_h(void){Int16 i=0;#if 0Int16 x=(NBIQ-1);                                        //h的值逆序for(i=0;i<NBIQ*5;i+=5){h[i]=DEN_a[x*2+1][1] * 32767;                    //a1*32767h[i+1]=DEN_a[x*2+1][2] * 32767;                  //a2*32767h[i+2]=NUM_b[x*2+1][2] * 32767 * NUM_b[x*2][0];  //b2*32767*Gh[i+3]=NUM_b[x*2+1][0] * 32767 * NUM_b[x*2][0];  //b0*32767*Gh[i+4]=NUM_b[x*2+1][1] * 32767 * NUM_b[x*2][0];  //b1*32767*Gx--;}#endif    Int16 x=0;                                                   //h的值正序for(i=0;i<NBIQ*5;i+=5){h[i]=DEN_a[x*2+1][1] * 32767;                    //a1*32767h[i+1]=DEN_a[x*2+1][2] * 32767;                  //a2*32767h[i+2]=NUM_b[x*2+1][2] * 32767 * NUM_b[x*2][0];  //b2*32767*Gh[i+3]=NUM_b[x*2+1][0] * 32767 * NUM_b[x*2][0];  //b0*32767*Gh[i+4]=NUM_b[x*2+1][1] * 32767 * NUM_b[x*2][0];  //b1*32767*Gx++;}}



原创粉丝点击