辨析:IIR(Infinite Impulse Response)与FIR(Finite Impulse Response)
IIR和FIR系统描述的是系统的抽样响应特性,其中$ x(n)=\delta(n) $
- 举例:一个平均器的系统是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系统至少有四种描述方式:
- 频率响应
\[H(e^{jw})=\sum_{n=0}^{\infty}e^{-jwn}\\
\]
- 频率响应
转移函数
\[\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}
\]转移函数和差分方程可以互相推导,他们分别是系统物理性质的时域表达和频域表达。
差分方程
\[y(n) = -\sum_{k=1}^{\infty}a(k)y(n-k)+\sum_{r=0}^{M}b(r)x(n-r)
\]卷积关系
\]
数字滤波器的实现原理
- 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)}
\]对应的差分方程为
\]
2. FIR的传递函数
\]
对应的差分方程为
\]
FIR滤波器的设计
线性相位
当一个系统的相频特性满足如下的线性相位
\[arg[H(e^{jw})]=-kw
\]时,输出满足
\[y(n) = x(n-k)
\]是无失真的。
我的理解——如要时域上偏移的点数相同,则频率越高,对应的相位越长。
~结论:相位延迟反映了载波信号的延迟,群延迟反映了信号包络的延迟。似乎不重要。~
FIR滤波器在实际中更常用,原因是FIR滤波器的单位响应是有限长的,更容易实现某种对称性,从而实现线性相位。若FIR滤波器是线性相位的,那么它应该满足:
\]
在这里,\(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)的更多相关文章
- 多种下载文件方式 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 ...
- response.getWriter().write()和 response.getWriter().print()的区别 以及 PrintWriter对象 和 out对象 的区别
感谢原文作者:krismile__qh 原文链接:https://blog.csdn.net/krismile__qh/article/details/89926001 一.response.getW ...
- response.getWriter().write()和 response.getWriter().print()的区别
异步上传图片的代码.发现里面用了response.getWriter().print(),故联想到response.getWriter().writer(),经过一番api的查找与实操,总结如下: r ...
- 基于FPGA的16阶级联型iir带通滤波器实现
警告 此文章将耗费你成吨的流量,请wifi下阅读,造成的流量浪费本人不承担任何责任.初版源代码获取(请勿用作他用,仅供学习):https://gitee.com/kingstacker/iir.git ...
- 半径无关单核单线程最快速高斯模糊实现(附完整C代码)
之前,俺也发过不少快速高斯模糊算法. 俺一般认为,只要处理一千六百万像素彩色图片,在2.2GHz的CPU上单核单线程超过1秒的算法,都是不快的. 之前发的几个算法,在俺2.2GHz的CPU上耗时都会超 ...
- 半径无关快速高斯模糊实现(附完整C代码)
之前,俺也发过不少快速高斯模糊算法. 俺一般认为,只要处理一千六百万像素彩色图片,在2.2GHz的CPU上单核单线程超过1秒的算法,都是不快的. 之前发的几个算法,在俺2.2GHz的CPU上耗时都会超 ...
- matlab 工具箱下载地址
1.平面操作工具箱 http://cathy.ijs.si/~leon/planman.html 2.SimMechanics 工具箱 (这个好像不是免费的) http://www.mathworks ...
- 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 ...
- matlab toolboxes 大全
MATLAB Toolboxes top (Top) Audio - Astronomy - BiomedicalInformatics - Chemometrics - Chaos - Chemi ...
随机推荐
- Python练习题 047:Project Euler 020:阶乘结果各数字之和
本题来自 Project Euler 第20题:https://projecteuler.net/problem=20 ''' Project Euler: Problem 20: Factorial ...
- 日志分析平台ELK之日志收集器logstash
前文我们聊解了什么是elk,elk中的elasticsearch集群相关组件和集群搭建以及es集群常用接口的说明和使用,回顾请查看考https://www.cnblogs.com/qiuhom-187 ...
- spring-boot-route(六)整合JApiDocs生成接口文档
上一篇文章中介绍了使用Swagger生成接口文档,非常方便,功能也十分强大.如果非要说Swaager有什么缺点,想必就是注解写起来比较麻烦.如果我说有一款不用写注解,就可以生成文档的工具,你心动了吗? ...
- 【漏洞复现】S2-052 (CVE-2017-9805)
一.漏洞描述 Struts2 的REST插件,如果带有XStream组件,那么在进行反序列化XML请求时,存在未对数据内容进行有效验证的安全隐患,可能发生远程命令执行. 二.受影响版本 Struts2 ...
- 基于COCA词频表的文本词汇分布测试工具v0.2
update: 简单整理了一下代码的组织. 处理的单词封装成类,单词的修正,信息的显示都作为其内的方法. 写得还比较糙,工具本身可以封装,还有对于单词的变形基本没什么处理,以后有时间再改. 项目托管到 ...
- day28 Pyhton 面向对象 继承
1.昨日回顾 类的命名空间 静态属性\动态属性(方法) 对象的命名空间 #对象的属性 #类指针:对象能够通过这个类指针找到类 #静态属性:属于类,多个对象共享这个资源 #尽量用类名来操作静态属性 #对 ...
- 快速解读linq语法
在说LINQ之前必须先说说几个重要的C#语言特性 一:与LINQ有关的语言特性 1.隐式类型 (1)源起 在隐式类型出现之前, 我们在声明一个变量的时候, 总是要为一个变量指定他的类型 甚至在fore ...
- excel 无效引用 所引用的单元格不能位于256列
无效引用 该文件版本所包含的公式中,所引用的单元格不能位于256列(列IW 或更远)或 65536 行以外的区域. 原因及解决方法: 1.版本问题,把两文件都另存为一致的版本,改为后缀为xlsx. 2 ...
- Jmeter请求元件之参数化CSV
1.设置CSV:线程组->配置元件->CSV 数据文件设置 2.在本地创建txt文件,一个测试用例参数是一行,参数之间用逗号分隔: 或者创建一个excel文档,保存格式为csv: 这里有个 ...
- C语言中数组与指针的异同之处!你不知道的编程奥秘~
C语言的数组和指针一直是两个容易混淆的东西,当初在学习的时候,也许为了通过考试会对指针和数组的一些考点进行突击,但是很多极其细节的东西也许并不是那么清楚.本篇侧重点在于分析数组与指针的关系,什么时候数 ...