• 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. .NET 是信息技术应用创新产业重要参与者

    今天是国庆节,也是中秋节,月满中秋,举国欢庆,在这里祝各位开发者中秋国庆快乐. 放假在家就想把这几年对于.NET发展相关生态做个梳理,写一篇文章来总结一下这两年从腾讯出来自己创业,推动.NET在国内的 ...

  2. python opencv 读取图片 返回图片某像素点的b,g,r值

    转载:https://blog.csdn.net/weixin_41799483/article/details/80884682 #coding=utf-8   #读取图片 返回图片某像素点的b,g ...

  3. matlab中uicontrol创建用户界面控件

    来源:https://ww2.mathworks.cn/help/matlab/ref/uicontrol.html?searchHighlight=uicontrol&s_tid=doc_s ...

  4. 基于COCA词频表的文本词汇分布测试工具v0.1

    美国语言协会对美国人日常使用的英语单词做了一份详细的统计,按照日常使用的频率做成了一张表,称为COCA词频表.排名越低的单词使用频率越高,该表可以用来统计词汇量. 如果你的词汇量约为6000,那么这张 ...

  5. 手把手教你AspNetCore WebApi:Serilog(日志)

    前言 小明目前已经把"待办事项"功能实现了,API文档也搞定了,但是马老板说过,绝对不能让没有任何监控的项目上线的. Serilog是什么? 在.NET使用日志框架第一时间会想到N ...

  6. # vue 如何通过前端来导出excel表格

    在做一些简单的demo时,偶尔会遇到导出excel表格.如果请后端帮忙的话 比较浪费时间,那么前端如何导出excel表格,下面就来记录一下之前使用到的案例 一.安装依赖 npm i file-save ...

  7. 游戏2048的核心算法c#版本的实现

    接触游戏有一段时间了,也写了一些东西,效果还不错,今天没事,我就把2048 c# 版本的实现贴出来,代码已经测试过,可以正常.完美运行.当然了,在网上有很多有关2048的实现方法,但是没有提出到类里面 ...

  8. 发布MeteoInfo Java 1.2.1

    主要增加了合并netCDF文件的功能.在不同时间netCDF文件合并时考虑了不同文件起始时间不同的情况.

  9. Jenkins环境搭建(7)-集成钉钉消息推送

    在去年的时候,搭建了一套Jenkins环境,基本功能已实现,可以通过如下地址查阅. Jenkins环境搭建(1)-下载与安装 Jenkins环境搭建(2)-搭建jmeter+ant+jenkins自动 ...

  10. python 利用jieba库词频统计

    1 #统计<三国志>里人物的出现次数 2 3 import jieba 4 text = open('threekingdoms.txt','r',encoding='utf-8').re ...