Verilog实现fir和iir滤波器的细节问题

本文探讨了在FPGA中实现FIR和IIR滤波器时遇到的细节问题,特别是IIR滤波器的量化误差导致的稳定性问题。针对这些问题,提出了采用直接2型结构、2阶滤波器级联、处理除法误差、位宽管理及状态机实现串行运算等解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近要求用fpga仿真fir和iir滤波器并比较它们的性能。fir一天即完成,而iir花了近一个多上星期才搞出来,没有想象中这么简单,需要考虑很多细节。

fir滤波器由于没有反馈,因此跟着时间往前计算,实现流水线也不难,总能得到结果。而iir滤波器由于存在反馈,很容易由于量化误差问题而导致不稳定。还有其他一系列细节问题,如下:

1、  考虑好输入是有符号的,滤波器系数也是有符号的。

2、  Iir有直接1型和直接2型两种形式,考虑到节约寄存器和实现方式简单化,多用直接2型。

3、  对于4阶以上的iir滤波器,如果直接采用直接2型,那么当系数量化取整后,由于量化误差及其反馈迭代的影响,误差足以使极点超过单位圆使得滤波器不稳定(表现为输出波形溢出)。因此,高阶情况下必须用2阶滤波器进行级联实现,因为在2阶条件下极点离单位圆较远,误差不足以使极点偏离到单位圆外。

4、  存在一次除法,课本中a0是1,但由于量化的作用,这个数非1。最好放大2的幂次方,这样除法可以用移位处理。另外,经过尝试发现,移位会造成向下取整,而不是仿真中的四舍五入。由于向下取整的误差比四舍五入大,所以结果频谱会多直流分量,因此必须在中间结果进行四舍五入处理(判断的算法)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值