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

一、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 0
	Int16 x=(NBIQ-1);                                        //h的值逆序
	for(i=0;i<NBIQ*5;i+=5)
	{
		h[i]=DEN_a[x*2+1][1] * 32767;                    //a1*32767
		h[i+1]=DEN_a[x*2+1][2] * 32767;                  //a2*32767

		h[i+2]=NUM_b[x*2+1][2] * 32767 * NUM_b[x*2][0];  //b2*32767*G
		h[i+3]=NUM_b[x*2+1][0] * 32767 * NUM_b[x*2][0];  //b0*32767*G
		h[i+4]=NUM_b[x*2+1][1] * 32767 * NUM_b[x*2][0];  //b1*32767*G

		x--;
	}
#endif

    Int16 x=0;                                                   //h的值正序
	for(i=0;i<NBIQ*5;i+=5)
	{
		h[i]=DEN_a[x*2+1][1] * 32767;                    //a1*32767
		h[i+1]=DEN_a[x*2+1][2] * 32767;                  //a2*32767

		h[i+2]=NUM_b[x*2+1][2] * 32767 * NUM_b[x*2][0];  //b2*32767*G
		h[i+3]=NUM_b[x*2+1][0] * 32767 * NUM_b[x*2][0];  //b0*32767*G
		h[i+4]=NUM_b[x*2+1][1] * 32767 * NUM_b[x*2][0];  //b1*32767*G

		x++;
	}

}



  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值