matlab采用矩形窗函数的数字FIR低通滤波器设计程序

matlab采用矩形窗函数的数字FIR低通滤波器设计程序,第1张

将模拟悔闹频率转化为数字频率,设取样时间为T(要满足抽样定理) Ωp=2π*fp*T Ωs=2π*fs*T 过渡带宽度△Ω=Ωp-Ωs 阻带衰减已经超过74db,要选用Kaiser窗了,Kaiser的参数可变,要根据老拿公式确定滤波器的参数一般都选用Ⅰ型线性相位滤波器即滤波器阶数M为偶数,程序如下: wp=ws=Ap=1As=100Rp=1-10.^(-0.05*Ap)Rs=10.^(-0.05*As)f=[fp fs]a=[0 1]dev=[Rp Rs][M,wc,beta,ftype]=kaiserord(f,a,dev)M=mod(M,2)+Mh=fir1(M,wc,ftype,kaiser(M+1,beta))omega=linspace(0,pi,512)mag=freqz(h,[1],omega)plot(omega/pi,20*log10(abs(mag)))gridomega1=linspace(0,wp,512)h1=freqz(h,[1],omega1)omega2=linspace(ws,pi,512)h2=freqz(h,[1],omega2)fprintf('Ap=%.4f\n',-20*log10(min(abs(h1))))fprintf('碧含罩As=%.4f\n',-20*log10(max(abs(h2))))运行程序可以得到滤波器的通阻带衰减,画出频率响应,若同阻带衰减不满足要求还可以使用滤波器的优化,一般使用的等波纹FIR进行优化

例题:

设计一个低通数字滤波器,给定抽样频率为fs=12000Hz,通带截止频率wp=0Hz,阻带起始频率ws=5000Hz(假设阻带衰减不小于-50dB)。

解答:

由于阻带衰减为50dB,查表,可选海明窗,其阻带最小衰减为53dB,过渡带宽度为6.6π/N。

MATLAB程序如下:

wp=0% 频率归一化

ws=5000*2/12000

wdel=ws-wp% 过渡带宽或氏并

wn=0.5*(wp+ws)% 近似计算截止衫迹频率

N=ceil(6.6*pi/wdel)% 根据过渡带宽度求滤波器阶数

window=hamming(N+1)% 海明窗

b=fir1(N,wn,window)% FIR滤波器设计核知

freqz(b,1,512)% 查看滤波器幅频及相频特性

参考:

http://zhidao.baidu.com/question/350250283.html

你的问题没有说明衰减,我直接在百度上找的答案,使用海明窗的低通滤波器。我运行了下,语句是对的。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8236617.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存