问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

IIR滤波器简介:原理与MATLAB设计方法

创作时间:
作者:
@小白创作中心

IIR滤波器简介:原理与MATLAB设计方法

引用
1
来源
1.
https://picture.iczhiku.com/weixin/message1585164798836.html

IIR(Infinite Impulse Response)滤波器是无限长冲击响应滤波器。IIR滤波器的设计主要是利用模拟滤波器成熟的设计理论来进行设计的,因而保留了一些典型模拟滤波器优良的幅度特性,特别是双线性变换法没有频率混叠,效果很好。

IIR滤波器的特点

IIR滤波器有以下几个特点:

  1. 系统的单位冲击响应h(n)无限长。
  2. 系统函数H(z)在有限z平面(0<|z|<∞)上有极点存在。
  3. 存在输出到输入的反馈,递归型结构。

IIR滤波器的结构类型

IIR滤波器的系统函数为:

IIR滤波器有四种基本结构,直接I型、直接II型、级联型、并联型结构。本章节简单介绍一下直接I型、直接II型和级联型。

  • 直接I型:假设M=N,将H(z)转换为H1(z)和H2(z)的级联,得到直接I型结构:


图 2 直接I型结构

  • 直接II型:对于一个线性非移变系统,若交换其级联子系统的次序,系统函数不变。将直接I型结构的H1(z)和H2(z)交换级联次序并合并延时器就可以得到直接II型结构:

图 3 直接II型结构

  • 级联型:将系统函数做一点变换,拆开每项系数,可以表示成多个实系数的二阶子系统Hi(z)的连乘积形式:

可以得到级联型结构:

图 4级联型结构

如何用MATLAB设计IIR滤波器

打开MATLAB,在命令行输入:filterDesigner或者fdatool,就会跳出滤波器设计界面,根据自己的需求配置对应的参数:

图 5滤波器设计

设计完滤波器后,在工具栏文件(File)的下拉菜单选择Export可以导出滤波器系数,得到矩阵SOS(second-order section)和G(Gain),对应于IIR滤波器的级联型结构。通过sos2tf函数可以将级联型结构的滤波器系数转为直接I、II型结构对应的滤波器系数。

参考

  1. FIR滤波器百度百科:https://baike.baidu.com/item/FIR%E6%BB%A4%E6%B3%A2%E5%99%A8/1983543?fr=aladdin
  2. FIR滤波器维基百科:https://en.wikipedia.org/wiki/Finite_impulse_response
  3. 朱冰莲.数字信号处理[M]. 北京:电子工业出版社,2010
  4. 如何快速设计一个IIR滤波器:https://zhuanlan.zhihu.com/p/51097798
  5. IIR滤波器的FPGA实现:https://www.jianshu.com/p/4a51ba7c922d
  6. MATLAB sos2tf函数帮助文档
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号