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

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

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

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

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

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

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

4、  存在一次除法,课本中a0是1,但由于量化的作用,这个数非1。最好放

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
基于Verilog开发FIRIIR滤波器设计,使用Vivado 2019.2平台开发的代码操作视频,具体步骤如下: 1. 首先,在Vivado 2019.2平台中创建一个新的工程。选择项目类型为RTL工程,命名为“FIR_IIR_Filter”。 2. 打开Xilinx IP Catalog,搜索并选择FIR Compiler和IIR Compiler模块。将它们添加到工程中。 3. 配置FIR Compiler模块。选择滤波器的阶数、输入和输出的数据宽度,以及其他相关参数。点击Generate按钮生成FIR滤波器Verilog代码。 4. 配置IIR Compiler模块。选择滤波器的阶数、输入和输出的数据宽度,以及其他相关参数。点击Generate按钮生成IIR滤波器Verilog代码。 5. 点击Generate Bitstream按钮生成比特流文件。 6. 在开发板上连接FPGA并烧录生成的比特流文件。连接适当的输入和输出设备。 7. 打开Vivado开发板管控台,运行波形仿真,对FIRIIR滤波器进行验证。 8. 打开录屏软件,录制整个操作过程。确保清晰地记录每个步骤。 9. 在操作视频中,展示Vivado 2019.2的界面,选中各模块并进行配置,生成代码,生成Bitstream文件,连接FPGA并运行波形仿真的过程。 10. 最后在视频中展示FIRIIR滤波器的输出结果,验证滤波器的性能,并对代码和操作进行简要的说明。 通过这个视频,用户可以详细了解如何基于Verilog开发FIRIIR滤波器,并使用Vivado 2019.2平台进行代码操作。用户可以跟随视频中的步骤进行实际操作,从而更好地理解和掌握这个滤波器的设计和开发过程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值