本文讲解FIR滤波器的幅度特性,再理论联系实际的看看FIR滤波器到底长什么样?有什么用?听我慢慢道来。
在
matlab函数中,有FIR1和FIR2函数,前者是用于处理一维数组,后者是用于二维数组的处理,哪些地方能用二位数组处理呢?图像处理中会用到,这里提一下,能让同学们有个了解。
讲完这些理论,来一些涉及程序
仿真的内容,看看理论能不能联系实际!
信号中经常混有各种复杂成分,有需要的成分,也有不需要的成分。很多信号分析都是基于滤波器而进行, 因此数字滤波器占有极其重要的地位 。数字滤波器是具有一定传输选择特性的数字信号处理装置,其输入与输出均为数字信号实质上是一个由有限精度算法实现的线性时不变离散系统。
它的基本工作原理是利用离散系统特性对系统输入信号进行加工和变换,改变输入序列的频谱或信号波形,让有用频率的信号分量通过,抑制无用的信号分量输出。数字滤波器和模拟滤波器有着相同的滤波概念,根据其频率响应特性可分为低通、
高通、带通、带阻等类型。
与模拟滤波器相比,数字滤波器除了具有数字信号处理固有优点外,还有精度高、稳定性好、灵活性强等优点。FIR滤波器具有线性相位,但它的传递函数的极点固定在原点,只能通过改变零点位置来改变性能,为了达到高的选择性必须用较高的阶数。
对于同样的滤波器设计指标,FIR滤波器要求的阶数可能比 IIR滤波器高10倍以上。
由于 FIR 数字滤波器具有严格的相位特性,对于信号处理和数据传输是很重要的。目前 FIR 滤波器的设计方法主要有三种:窗函数法、频率抽样法和优化设计(切比雪夫逼近)方法。我们重点学习窗函数法。
看看结果吧!
之前对fir2函数的描述有错误,这个函数不是用来处理二维数组的!
它可以用于设计有任意频率响应的加窗FIR滤波器。
对标准的低通、带通、高通和带阻滤波器的设计可使用fir1函数。
语法:b=fir2(n,f,m)
设计出一个n阶的FIR滤波器,其滤波器的频率特性由参数f和m决定。
参数f为频率点矢量,且f∈[0,1],f=1对应于0.5fs。
矢量f按升序排列,且第一个元素必须是0,最后一个必须为1,并可以包含重复的频率点。
矢量m中包含了与f相对应的期望得到的滤波器的幅度。f为归一化频率向量。
举例如下:设计一个100阶的低通滤波器。运行一下代码,看看能出什么结果?
如果要求设计一个奇怪形状的滤波器呢?
比如设计一个80阶的FIR滤波器,要求滤波器0到π/4的幅度响应为0 ,π/4到π/2的幅度响应为1/4,π/2到3π/4的幅度响应为0,3π/4到1的幅度响应为1。采用切比雪夫窗。该怎么写程序呢?
有程序有图就有真正的理解!