仪器社区

如何用matlab做非因果fir滤波器

天使_多多 2016-07-08
评论
全部评论
Wait那份忧伤
一般滤波的要求主要是通带边界频率、阻带边界频率、通带Z大波纹及阻带Z小衰减.
而由FIR滤波器的窗函数基本参数,可以知道,Z小阻带衰减只由窗形状决定,不受窗宽N的影响;而过渡带的宽度则既与窗形状有关,且随窗宽N的增加而减小.
这样的话,设计一个FIR滤波器,主要是由阻带Z小衰减来确定窗形状,再根据过渡带宽的要求来确定窗宽N.有一个窗函数基本参数表,可以对照着选.然后用MATLAB中fir1函数来设计,其语法格式为:b=fir1(N,wn,'ftype',window).需简单计算N,wn
例题:
设计一个低通数字滤波器,给定抽样频率为fs=5000Hz,通带截止频率wp=500Hz,阻带起始频率ws=800Hz,阻带衰减不小于-50dB.
由于阻带衰减为50dB,查表,可选海明窗,其阻带Z小衰减为53dB,过渡带宽度为6.6π/N.
MATLAB程序如下:
wp=500*2/5000;% 频率归一化
ws=800*2/5000;
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);% 查看滤波器幅频及相频特性
17 0 2016-07-09 0条评论 回复
您可能感兴趣的社区主题
加载中...
发布 评论