• IIR和FIR系统描述的是系统的抽样响应特性,其中$ x(n)=\delta(n) $

    1. 举例:一个平均器的系统是FIR系统,因为它的抽样响应仅在变量n取某3个值的时候有值,是有限长的;一阶自回归模型由于包含了从输出到输入的反馈,所以其抽样相响应是无限长的。
  • 令$ x(n)=e^{jwn}$, 得到的系统输出就是频率响应,其数学表示如下:

    \[\begin{align}
    y(n) &= \sum_{k=- \infty}^{\infty} h(k)x(n-k)=\sum_{k=- \infty}^{\infty} h(k)e^{j(n-k)w}\\
    &=e^{jwn}\sum_{k=- \infty}^{\infty}h(k)e^{-jwk}\\
    &=e^{jwn}H(e^{jw})
    \end{align}
    \]

    我们称\(e^{jwn}\)为系统的特征函数,\(H(e^{jw})\)为系统的特征值。(线性代数无处不在

  • 一个LST系统至少有四种描述方式:

    1. 频率响应
      \[H(e^{jw})=\sum_{n=0}^{\infty}e^{-jwn}\\
      \]
  1. 转移函数

    \[\begin{align}
    H(z)&=\sum_{n=0}^{\infty}h(n)z^{-n}\\
    or \quad H(e^{jw})&= \frac{Y(z)}{X(z)}=\frac{\sum_{r=0}^{M}b(r)z^{-r}}{1+\sum_{k=1}^{N}a(k)z^{-k}}
    \end{align}
    \]

    转移函数和差分方程可以互相推导,他们分别是系统物理性质的时域表达和频域表达。

  2. 差分方程

    \[y(n) = -\sum_{k=1}^{\infty}a(k)y(n-k)+\sum_{r=0}^{M}b(r)x(n-r)
    \]
  3. 卷积关系

\[y(n) = \sum_{k= -\infty} ^{\infty}x(k)h(n-k)=x(n)*h(n)
\]
  • 数字滤波器的实现原理

    1. IIR的传递函数
    \[H(z)=\frac{\sum_{k=0}^{M} b_{k} z^{-k}}{1-\sum_{k=1}^{N} a_{k} z^{-k}}=\frac{Y(z)}{X(z)}
    \]

    对应的差分方程为

\[y(n)=\sum_{k=1}^{N} a_{k} y(n-k)+\sum_{k=0}^{M} b_{k} x(n-k)
\]

​ 2. FIR的传递函数

\[H(z)=\sum_{n=0}^{N-1} h(n) z^{-n}
\]

​ 对应的差分方程为

\[y(n)=\sum_{m=0}^{N-1} h(m) x(n-m)
\]

FIR滤波器的设计

  • 线性相位

    当一个系统的相频特性满足如下的线性相位

    \[arg[H(e^{jw})]=-kw
    \]

    时,输出满足

    \[y(n) = x(n-k)
    \]

    是无失真的。

    我的理解——如要时域上偏移的点数相同,则频率越高,对应的相位越长。

    ~结论:相位延迟反映了载波信号的延迟,群延迟反映了信号包络的延迟。似乎不重要。~

  • FIR滤波器在实际中更常用,原因是FIR滤波器的单位响应是有限长的,更容易实现某种对称性,从而实现线性相位。若FIR滤波器是线性相位的,那么它应该满足:

\[h(n)=\pm h(N-1-n)
\]

  • 在这里,\(h(n)\)有偶对称和奇对称两种可能,\(N\)也有可能为奇数或者偶数。这2组可能的组合\(C_2^2\)构成四种情况,在一些文献里分别被称作类型I,类型II,类型III和类型IV。

  • 在设计一般用途的滤波器时,\(h(n)\)多取偶对称,长度n也往往取为奇数。

IIR与FIR的应用:

引用陈怀琛的“数字信号处理教程--MATLAB释义与实现”

从性能上来说,IIR滤波器传递函数包括零点和极点两组可调因素,对极点的惟一限制是在单位圆内。因此可用较低的阶数获得高的选择性,所用的存储单元少,计算量小,效率高。但是这个高效率是以相位的非线性为代价的。选择性越好,则相位非线性越严重。FIR滤波器传递函数的极点固定在原点,是不能动的,它只能靠改变零点位置来改变它的性能。所以要达到高的选择性,必须用较高的阶数;对于同样的滤波器设计指标,FIR滤波器所要求的阶数可能比IIR滤波器高5-10倍,结果,成本较高,信号延时也较大;如果按线性相位要求来说,则IIR滤波器就必须加全通网络进行相位校正,同样要大大增加滤波器的阶数和复杂性。而FIR滤波器却可以得到严格的线性相位。

从结构上看,IIR滤波器必须采用递归结构来配置极点,并保证极点位置在单位圆内。由于有限字长效应,运算过程中将对系数进行舍入处理,引起极点的偏移。这种情况有时会造成稳定性问题,甚至产生寄生振荡。相反,FIR滤波器只要采用非递归结构,不论在理论上还是在实际的有限精度运算中都不存在稳定性问题,因此造成的频率特性误差也较小。此外FIR滤波器可以采用快速傅里叶变换算法,在相同阶数的条件下,运算速度可以快得多。

另外,也应看到,IIR滤波器虽然设计简单,但主要是用于设计具有分段常数特性的滤波器,如低通、高通、带通及带阻等,往往脱离不了模拟滤波器的格局。而FIR滤波器则要灵活得多,尤其是他易于适应某些特殊应用,如构成数字微分器或希尔波特变换器等,因而有更大的适应性和广阔的应用领域。

从上面的简单比较可以看到IIR与FIR滤波器各有所长,所以在实际应用时应该从多方面考虑来加以选择。从使用要求上来看,在对相位要求不敏感的场合,如语言通信等,选用IIR较为合适,这样可以充分发挥其经济高效的特点;对于图像信号处理,数据传输等以波形携带信息的系统,则对线性相位要求较高。如果有条件,采用FIR滤波器较好。当然,在实际应用中可能还要考虑更多方面的因素。

不论IIR和FIR,阶数越高,信号延迟越大;同时在IIR滤波器中,阶数越高,系数的精度要求越高,否则很容易造成有限字长的误差使极点移到单位园外。因此在阶数选择上是综合考虑的。

辨析:IIR(Infinite Impulse Response)与FIR(Finite Impulse Response)的更多相关文章

  1. 多种下载文件方式 Response.BinaryWrite(byte[] DocContent);Response.WriteFile(System.IO.FileInfo DownloadFile .FullName);Response.Write(string html2Excel);

    通过html给xls赋值,并下载xls文件 一.this.Response.Write(sw.ToString());System.IO.StringWriter sw = new System.IO ...

  2. response.getWriter().write()和 response.getWriter().print()的区别 以及 PrintWriter对象 和 out对象 的区别

    感谢原文作者:krismile__qh 原文链接:https://blog.csdn.net/krismile__qh/article/details/89926001 一.response.getW ...

  3. response.getWriter().write()和 response.getWriter().print()的区别

    异步上传图片的代码.发现里面用了response.getWriter().print(),故联想到response.getWriter().writer(),经过一番api的查找与实操,总结如下: r ...

  4. 基于FPGA的16阶级联型iir带通滤波器实现

    警告 此文章将耗费你成吨的流量,请wifi下阅读,造成的流量浪费本人不承担任何责任.初版源代码获取(请勿用作他用,仅供学习):https://gitee.com/kingstacker/iir.git ...

  5. 半径无关单核单线程最快速高斯模糊实现(附完整C代码)

    之前,俺也发过不少快速高斯模糊算法. 俺一般认为,只要处理一千六百万像素彩色图片,在2.2GHz的CPU上单核单线程超过1秒的算法,都是不快的. 之前发的几个算法,在俺2.2GHz的CPU上耗时都会超 ...

  6. 半径无关快速高斯模糊实现(附完整C代码)

    之前,俺也发过不少快速高斯模糊算法. 俺一般认为,只要处理一千六百万像素彩色图片,在2.2GHz的CPU上单核单线程超过1秒的算法,都是不快的. 之前发的几个算法,在俺2.2GHz的CPU上耗时都会超 ...

  7. matlab 工具箱下载地址

    1.平面操作工具箱 http://cathy.ijs.si/~leon/planman.html 2.SimMechanics 工具箱 (这个好像不是免费的) http://www.mathworks ...

  8. LabTool : LPC LINK2, LPC4370 cheap scope: 80Ms/s 12 bit

    80MHz 12 bit ADC processor LPC4370.LPCxpresso do a LPC LINK2 and LABTOOLS open source oscilloscope d ...

  9. matlab toolboxes 大全

    MATLAB Toolboxes top (Top) Audio - Astronomy - BiomedicalInformatics - Chemometrics  - Chaos - Chemi ...

随机推荐

  1. Oracle 11G RAC11.2.0.4 + Redhat7.3安装手册

    安装思路: 1.安装两台redhat7 linux系统 2.网络配置(双网卡,public,vip,private,scan) 3.存储配置(内存配置,ASM共享存储:6块5G共享盘udev,根目录留 ...

  2. Hyper-V Server + Windows Admin Center

    2020年的十一黄金周是双节,偶然间得知再出现双节可能要几十年之后了,很可惜我并没有出去游玩的打算.所以假期没什么事,就来研究下Hyper Server + Windows Admin Center. ...

  3. Windows VS Code 配置 C/C++ 开发环境

    准备 Windows [这个相信大家都有 笑: )] VS Code MinGW-w64 C/C++ 安装 MinGw-w64 具体说明细节和安装体验可以在<⑨也懂系列:MinGW-w64安装教 ...

  4. 【C语言教程】双向链表学习总结和C语言代码实现!值得学习~

    双向链表 定义 我们一开始学习的链表中各节点中都只包含一个指针(游标),且都统一指向直接后继节点,通常称这类链表为单向链表. 虽然使用单向链表能 100% 解决逻辑关系为 "一对一" ...

  5. 【纯水题】CF 833A The Meaningless Game

    题目大意 洛谷链接 现在两个人做游戏,每个人刚开始都是数字\(1\),谁赢了就能乘以\(k^2\),输的乘以\(k\),现在给你最终这两个人的得分,让你判断是否有这个可能,有可能的话输出Yes,否则输 ...

  6. spring boot:使用async异步线程池发送注册邮件(spring boot 2.3.1)

    一,为什么要使用async异步线程池? 1,在生产环境中,有一些需要延时处理的业务场景: 例如:发送电子邮件, 给手机发短信验证码 大数据量的查询统计 远程抓取数据等 这些场景占用时间较长,而用户又没 ...

  7. Redis Hashes 数据类型简述

    Redis Hashes 是我们日常使用中比较高频的 Redis 数据类型,内部使用 Redis 字典结构存储,底层基于哈希表结构实现. 下面从哈希表节点,哈下表结构,Redis 字典,Redis 字 ...

  8. java axis调用带有soap头(soapheader)的.net webservice

    使用axis调用.net带soapheader的webservice是如何实现的,现在贴出代码 <?xml version="1.0" encoding="utf- ...

  9. Spring笔记(4) - Spring的编程式事务和声明式事务详解

    一.背景 事务管理对于企业应用而言至关重要.它保证了用户的每一次操作都是可靠的,即便出现了异常的访问情况,也不至于破坏后台数据的完整性.就像银行的自助取款机,通常都能正常为客户服务,但是也难免遇到操作 ...

  10. Linux基础命令cp之拷贝隐藏文件

    创建一个用户名为test211的普通用户 [23:35:09 root@C8[ ~]#useradd test211 [23:37:37 root@C8[ ~]#getent passwd test2 ...