MATLAB中FIR滤波器如何设计
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 14:47:52
MATLAB中FIR滤波器如何设计
一般滤波的要求主要是通带边界频率、阻带边界频率、通带最大波纹及阻带最小衰减.
而由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);% 查看滤波器幅频及相频特性
再问: 非常感谢,你写的比较清楚。那这个通带最大波纹怎么选啊?不能像IIR滤波器那样根据给定的通带波纹设计么?
再答: 一般来说窗函数选定了后,N增加只会减小过渡带宽,而不会改变肩峰的相对值,这就是Gibbs效应。对于矩形窗情况下,最大相对肩峰总是保持8.95%不变,对于其他窗,第一旁瓣相对主瓣的幅度衰减也是常数。 因此,在窗函数设计FIR滤波器中,通带最大波纹就不是那么重要了。要查看通带最大波纹,可以加一段话: omega=linspace(0,wp,500); h=freqz(b,1,omega);% 计算在通带内的幅频 Rp=20*log10(max(abs(h))/min(abs(h))) % 计算通带最大波纹 另外,除了fir1用窗函数设计,还有fir2函数,对应的是频率抽样法设计FIR滤波器,可以查看相应的。
而由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);% 查看滤波器幅频及相频特性
再问: 非常感谢,你写的比较清楚。那这个通带最大波纹怎么选啊?不能像IIR滤波器那样根据给定的通带波纹设计么?
再答: 一般来说窗函数选定了后,N增加只会减小过渡带宽,而不会改变肩峰的相对值,这就是Gibbs效应。对于矩形窗情况下,最大相对肩峰总是保持8.95%不变,对于其他窗,第一旁瓣相对主瓣的幅度衰减也是常数。 因此,在窗函数设计FIR滤波器中,通带最大波纹就不是那么重要了。要查看通带最大波纹,可以加一段话: omega=linspace(0,wp,500); h=freqz(b,1,omega);% 计算在通带内的幅频 Rp=20*log10(max(abs(h))/min(abs(h))) % 计算通带最大波纹 另外,除了fir1用窗函数设计,还有fir2函数,对应的是频率抽样法设计FIR滤波器,可以查看相应的。
MATLAB中FIR滤波器如何设计
请教一下matlab的fir滤波器设计,已知频率响应的表达式,要如何编写代码设计滤波器呢?
设计一个FIR滤波器.
用FPGA如何实现fir滤波器的设计
MATLAB 中已知fir滤波器系数 求频率响应
在设计FIR滤波器,用matlab生成FIR滤波器的抽头系数,怎样将其转换成整数?
关于数字信号处理中FIR滤波器的设计的问题
DSP实验:FIR滤波器的设计与实现,用matlab语言实现
求用MATLAB,频率采样法设计的高通FIR滤波器(最好有解释),
用matlab设计FIR滤波器,零极点图怎么画?急
基于matlab 的fir滤波器程序
用matlab设计滤波器