fir滤波器c++程序_FDAtool设计IIR和FIR50%和20%通带的低通滤波器(定点和浮点分析)...

MATLAB在实时信号处理中的作用:性能仿真,设计合理可能的算法;产生仿真系数;与实际DSP结果进行比较、验证。MATLAB不适用于实时信号处理,因为MATLAB是解释型语言,程序运行起来太慢,并且MATLAB要在计算机上才能运行,因此计算机是不适合于实时信号处理的。

MATLAB中的数字信号处理工具:MATLA中有很多用于信号处理的函数,还有一些用于信号处理的工具,例如FDAtool ,Blockset Fixed point , Embedded Target for TI C6000 DSP等等。

滤波器设计

一、题目

滤波器设计,要求通带分别为50%和20%两种,波纹1%,阻带65db,对过渡带没有要求。各自分别用IIR和FIR设计,且比较系数分别取浮点、16位、12位定点的差别。

二、题目分析

采用FDAtool设计为低通滤波器,采样频率设置为4000Hz。

50%通带时,通带截止频率为Fpass=1000Hz,阻带截止频率为Fstop=1100Hz,过渡带设计为100Hz。 通带波纹1%,即通带最大衰减为Apass=-20lg(1-1%)=0.087,留一定余量取0.06。阻带衰减为Astop=65dB,取68dB。

通带为20%时,通带截止频率为400Hz, 阻带截止频率为Fstop=500Hz,过渡带设计为100Hz。 通带波纹1%,即通带最大衰减为Apass=-20lg(1-1%)=0.087,留一定余量取0.06。阻带衰减为Astop=65dB,取68dB。计算精度默认为双精度。

IIR选择切比雪夫II型,FIR选择等波纹法。

三、设计过程

1.IIR滤波器设计参数

通带50%

通带截止频率:Fpass=1000Hz

阻带截止频率:Fstop=1100Hz

通带最大衰减:Apass=0.06

阻带最小衰减:Astop=68dB

  1. 双精度

4f62c7b3c1db7f3b10936521f89e1678.png
  1. 定点12位

e8ebe61fcc5539f4d1677e7b0b1a5bda.png
  1. 定点16位

48240810148f1cde1286296dba44f66e.png

分析:50%的通带,定点和浮点型对滤波器的性能并没有多大的影响,原因是他们的极点都保持在单位圆内部,如下图所示。

8d59eac9384265902dc3cb83ee78b36e.png

双精度

82d315fa27dde056899db04f3cd7e757.png

16位定点

通带20%

通带截止频率:Fpass=400Hz

阻带截止频率:Fstop=500Hz

通带最大衰减:Apass=0.06

阻带最小衰减:Astop=68dB

(1)双精度

05b5cf352db4db9fe57ad549c10d7180.png

(2)定点12位

c54a3d7e9478f39ee2ab620642edb226.png

(3)定点16位

81e234152bdf3d164ee788e51c1ce65f.png

分析:20%的通带与50%的通带相比,20%所需要的滤波器阶数要高一些。定点和浮点型对滤波器的性能并没有多大的影响,原因是他们的极点都保持在单位圆内部,如下图所示。

47d7099eba55790f03e2f19c6daae53a.png

双精度极点分布

dc21a9cfedbbd1f255524c816a0d573e.png

定点16位极点分布

2.FIR滤波器设计参数

通带50%

通带截止频率:Fpass=1000Hz

阻带截止频率:Fstop=1100Hz

通带最大衰减:Apass=0.06

阻带最小衰减:Astop=68dB

(1)双精度

bd0cc7471fa4ff99e6ba39b0dcd0d4d1.png

(2)定点12位

50f5cfd7a6c996a246d813eee9d7f3f6.png

(3)定点16位

951caccb13849d5bb6c86feedb82384e.png

分析:滤波器达到相同的性能,FIR的阶数要比IIR的阶数要高很多。12位量化效果非常差,在阻带部分已经不满足我们需要的最小衰减了。16位的效果稍微好一点,但是还是有一些误差。

通带20%

通带截止频率:Fpass=400Hz

阻带截止频率:Fstop=500Hz

通带最大衰减:Apass=0.06

阻带最小衰减:Astop=68dB

  1. 双精度

91c7feb9a28237f2f919de609335c255.png
  1. 定点12位

daa1f78ef66c1c621538f56d8862d5c9.png
  1. 定点16位

f19d0f882b56eea49fb49cba87b241c6.png

分析:20%的定点12位效果也是非常差,阻带最小衰减已经不满足我们的要求了,定点16位勉强能满足我们的要求,但是还是有略微的误差,原因是量化具有误差。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于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平台进行代码操作。用户可以跟随视频中的步骤进行实际操作,从而更好地理解和掌握这个滤波器设计和开发过程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值