FIR滤波器的设计

从MATLAB中产生的fir.txt文件,通过执行转换命令,将自动变换为firdata.inc滤波器系数文件。利用MATLAB中的转换命令:
!firdat fir.txt将产生firdata.inc文件

书上的原话,问题是这一步骤怎么用MATLAB实现的

一般滤波的要求主要是通带边界频率、阻带边界频率、通带最大波纹及阻带最小衰减。

而由FIR滤波器的窗函数基本参数,可以知道,最小阻带衰减只由窗形状决定,不受窗宽N的影响;而过渡带的宽度则既与窗形状有关,且随窗宽N的增加而减小。

这样的话,设计一个FIR滤波器,主要是由阻带最小衰减来确定窗形状,再根据过渡带宽的要求来确定窗宽N。有一个窗函数基本参数表,可以对照着选。然后用MATLAB中fir1函数来设计,其语法格式为:b=fir1(N,wn,'ftype',window)。需简单计算N,wn

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

解答:
由于阻带衰减为50dB,查表,可选海明窗,其阻带最小衰减为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);% 查看滤波器幅频及相频特性
打字不易,如满意,望采纳。追问

例题不错,但完全不是我想要的

温馨提示:答案为网友推荐,仅供参考
相似回答