IIR滤波器FPGA设计的输出截位问题
时间:10-02
整理:3721RD
点击:
最近赶着用FPGA实现一个IIR低通滤波器。我选择的是椭圆滤波器,我用matlab里设计出的系数,进行了2^14倍的放大,然后输入数据是16位,系数也是16位宽输入,三个二阶级的级联方式设计,对于单级的二阶级结构调用的乘法器是16x16输入,32位输出,然后进行5个乘积累加(b0*x(n)+b1*x(n-1)+b2*x(n-2)+a1*y(n-1)+a2*y(n-2)),累加后是32位,最后截取累加和的[29:14]位。想请问一下各位这样截位问题是在哪里?又应该怎样安排输入输出的位数?我已经被困了好几天了,一直都滤不出正确的波形出来。
还有如果有哪位兄台做过IIR或者有IIR的Verilog源码例子的话可否给我邮件一份,让我参考参考。我看很多网上的程序和教材上的一些代码都是直接写乘号的,根本没法用。在此先谢谢了
PS:我的邮箱2006mizi@163.com
还有如果有哪位兄台做过IIR或者有IIR的Verilog源码例子的话可否给我邮件一份,让我参考参考。我看很多网上的程序和教材上的一些代码都是直接写乘号的,根本没法用。在此先谢谢了
PS:我的邮箱2006mizi@163.com
你好,我想问一下你说的这个问题解决了没有。你是怎么解决的呢?我现在也遇到了这样的问题,能不能指导一下。谢谢!
iir是带反馈的滤波器,所以如果想让硬件滤波的波形跟算法matlab或者c完全一致,需要在中间结果就截位,当然算法也要做相应处理。最后结果还要考虑溢出的情况。
先对你的IIR优化,然后看看有几个加法,有几个成法。 这样就会知道出来的总位数。
在对output的数据,取舍。 这个要根据的你的snr dft 才考虑的
这个是我想的!
目前也在糾結中,請指點
我也是啊,截位问题困扰中啊,求指点
放大之后位数没有扩展的关系,建议每一次计算后根据增益大小相应移位,可能会舍弃精度,但是幅度不要舍弃
遇到同样的问题!
仔细看了帖子,是2010年的!
小编不知道你搞定了没有,我现在也遇到这样的问题
同问,有大神能讲解下么
