matlab设计窄带滤波器,【安富莱DSP教程】第36章 FIR滤波器的Matlab设计

本文详细介绍了如何在MATLAB中使用fir1和fir2函数设计FIR滤波器,包括低通、高通、带通和带阻滤波器。通过实例展示了不同窗函数(如矩形、汉宁、海明窗等)对滤波效果的影响,并通过FFT和信噪比分析验证滤波效果。最后,探讨了fir2函数用于设计具有任意频率响应的FIR滤波器的方法。
摘要由CSDN通过智能技术生成

第36章

FIR滤波器的Matlab设计

本章节讲解FIR滤波器的Matlab设计。主要是函数fir1和fir2的使用。

36.1 窗函数

36.2 fir1函数

36.2 fir2函数

36.4 总结

36.1

窗函数

在数字信号处理中不可避免地要用到数据截取的问题。例如,在应用DFT的时候,数据x(n)总是有限长的,在滤波器设计中遇到了对理想滤波器抽样响应h(n)的截取问题,在功率谱估计中也要遇到对自相关函数的截取问题。总之,我们在实际工作中所能处理的离散序列总是有限长,把一个长序列变换成有限长的序列不可避免的要用到窗函数。因此,窗函数本身的研究及其应用是信号处理中的一个基本问题。

不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的,但是我们可以通过选择不同的窗函数对它们的影响进行抑制。(矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高)。

对于窗函数的选择,应考虑被分析信号的性质与处理要求。如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用主瓣宽度比较窄而便于分辨的矩形窗,例如测量物体的自振频率等;如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。

l矩形窗:

矩形窗属于时间变量的零次幂窗。矩形窗使用最多,习惯上不加窗就是使信号通过了矩形窗。这种窗的优点是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,导致变换中带进了高频干扰和泄漏,甚至出现负谱现象。

l三角窗:

三角窗亦称费杰(Fejer)窗,是幂窗的一次方形式。与矩形窗比较,主瓣宽约等于矩形窗的两倍,但旁瓣小,而且无负旁瓣。

l汉宁窗:

汉宁窗又称升余弦窗,汉宁窗可以看作是3个矩形时间窗的频谱之和,或者说是 3个 sinc(t)型函数之和,而括号中的两项相对于第一个谱窗向左、右各移动了 π/T,从而使旁瓣互相抵消,消去高频干扰和漏能。可以看出,汉宁窗主瓣加宽并降低,旁瓣则显著减小,从减小泄漏观点出发,汉宁窗优于矩形窗.但汉宁窗主瓣加宽,相当于分析带宽加宽,频率分辨力下降。

l海明窗:

海明窗也是余弦窗的一种,又称改进的升余弦窗。海明窗与汉宁窗都是余弦窗,只是加权系数不同。海明窗加权的系数能使旁瓣达到更小。分析表明,海明窗的第一旁瓣衰减为一42dB.海明窗的频谱也是由3个矩形时窗的频谱合成,但其旁瓣衰减速度为20dB/(10oct),这比汉宁窗衰减速度慢。海明窗与汉宁窗都是很有用的窗函数。

l高斯窗:

三角窗亦称费杰(Fejer)窗,是幂窗的一次方形式。与矩形窗比较,主瓣宽约等于矩形窗的两倍,但旁瓣小,而且无负旁瓣。

还有很多其它的窗口这里就不做介绍了,需更详细的了解的话,可以看matlab中help文档中的如下部分(这里只截图了一部分窗口)。

a4c26d1e5885305701be709a3d33442f.png

或者直接在命令窗口输入wintool可以打开窗口工具:

a4c26d1e5885305701be709a3d33442f.png

打开后界面如下:

a4c26d1e5885305701be709a3d33442f.png

36.2

fir1函数

36.2.1fir1函数介绍

函数fir1用来设计标准频率响应的基于窗函数的FIR滤波器,可实现加窗线性相位FIR滤波器设计。

语法:

b = fir1(n,Wn)

b = fir1(n,Wn,'ftype')

b = fir1(n,Wn,window)

b = fir1(n,Wn,'ftype',window)

b = fir1(...,'normalization')

其中,n:为了滤波器的阶数;

Wn:为滤波器的截止频率;

ftype:参数用来决定滤波器的类型,当ftype=high时,可设计高通滤波器,当ftype=stop时,可设计带阻滤波器。Window参数用来指导滤波器采用的窗函数类型。其默认值为汉明(Hamming)窗。

使用fir1函数可设计标准的低通,高通,带通和带阻滤波器。滤波器的系数包含在返回值b中,可表示为:

b(z) = b(1) + b(2)z-1+……+b(n+1)z-n

(1)采用汉明窗设计低通FIR滤波器

使用b=fir1(n, Wn)可得到低通滤波器。其中, 0Wn1,Wn=1相当于0.5。其语法格式为

b=fir1(n, Wn)

(2)采用汉明窗设计高通FIR滤波器

在b=fir1(n, Wn, 'ftype')中,当ftype=high时,可设计高通滤波器。其语法格式为

b=fir1(n, Wn, 'high')

(3)采用汉明窗设计带通FIR滤波器

在b=fir1(n, Wn)中,当Wn=[W1W2]时,fir1函数可得到带通滤波器,其通带为W1

W1和 W2分别为通带的下限频率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值