基于FPGA与MATLAB的IIR滤波器设计与实现

http://blog.sina.com.cn/s/blog_139b6f6130102whcx.html
一、 IIR滤波器理论基础
IIR 滤波器,即无限脉冲响应滤波器,其单位脉冲响应是无限长的,其系统传递函数为

 

基于FPGA与MATLAB的IIR滤波器设计与实现

系统的差分方程可以写成

基于FPGA与MATLAB的IIR滤波器设计与实现

二、IIR滤波器的设计方法
一般来讲, IIR 滤波器的设计方法可以分为三种:原型转换设计方法、直接设计法、以及调用 MATLAB IIR 函数设计。前两种方法都比较麻烦,需要更大的滤波器基础理论知识,因此实际中多采用直接调用 MATLAB IIR 函数进行设计。

 


 

三、IIR滤波器的MATLAB设计
一是使用MATLAB提供的IIR滤波器函数。
二是直接调用FDTOOL工具设计
以调用 Butter 函数为例子
基于FPGA与MATLAB的IIR滤波器设计与实现
滤波后的数据

基于FPGA与MATLAB的IIR滤波器设计与实现


四、IIR滤波器的FPGA实现

IIR滤波器的两种最基本、使用最为广泛的实现结构——直接型及级联型结构。虽然级联型结构比直接型结构更准确,受参数量化影响较少,但设计起来更负责,所以本设计采用直接型结构。

1.量化直接型结构的IIR滤波器系数

MATLAB输入

[Bb Ba]=butter(N,Wn,'low');   

可以看到滤波器系数向量

Ba=[1 -1.79158135278860 2.53189988089812 -2.11822942034193 1.37075629439323 -0.6090389130764730.199331556962956 -0.0431047310152813 0.00580426165430880 -0.000355580604257623]

Bb=[0.00106539452359780 0.00958855071238024 0.0383542028495210 0.08949313998221560.134239709973323 0.134239709973323 0.0894931399822156 0.0383542028495210 0.009588550712380240.00106539452359780]

MATLAB输入

Qb round(Bb*2^9);

Qa round(Ba*2^9);

可以看到量化后滤波器系数向量

Qa=[512 -917 1296 -1085 702 -312 102 -22 3 0]

Qb=[1 5 20 46 69 69 46 20 5 1]

根据IIR滤波器系统函数,可以直接写出滤波器的差分方程为

基于FPGA与MATLAB的IIR滤波器设计与实现


4.1.直接型结构的FPGA实现

根据滤波器的差分方程可以把方程分开零点系数和极点系数两部分组成,

基于FPGA与MATLAB的IIR滤波器设计与实现

基于FPGA与MATLAB的IIR滤波器设计与实现

基于FPGA与MATLAB的IIR滤波器设计与实现

4.2零点系数的FPGA实现

基于FPGA与MATLAB的IIR滤波器设计与实现
4.3 极点系数的 FPGA 实现

 

基于FPGA与MATLAB的IIR滤波器设计与实现

4.4 顶层模块实现
基于FPGA与MATLAB的IIR滤波器设计与实现

4.5 直接型结构的 FPGA 实现后的测试仿真

 

基于FPGA与MATLAB的IIR滤波器设计与实现

五、实验结果与分析

基于FPGA与MATLAB的IIR滤波器设计与实现

基于FPGA与MATLAB的IIR滤波器设计与实现

从图中可以明显看出,FPGA滤波后的信号几乎接近原始信号,有效地滤除了叠加信号中250hz的高频信号,还原了10hz的低频信号,说明该设计正确,达到设计要求。

六、总结

IIR滤波器因具有较高的滤波效率,十分有利于在不需要 严格线性相位特性的系统中使用,IIR滤波器的FPGA实现相对FIR滤波器来讲要复杂一些,主要原因在于其反馈结构。实现过程中需要注意的诸如系数量化方法、计算输出数据位宽、MATLAB仿真及FPGA实现等关键问题。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值