Grid;
xlabel('归一化频率'); ylabel('幅度/db');
title('汉宁窗设计阻带最小衰减As?30dB'); (2)哈明窗的MATLAB语言编程: delta=0.4*pi; wc=0.2*pi; as=30;
N=ceil(8*pi/delta)+1; win=hamming(N); h=fir1(n-1,wc/pi,win); omega=linspace(0,pi,512); mag=freqz(h,[1],omega); magdb=20*log10(abs(mag)); plot(omega/pi,magdb); Grid;
xlabel('归一化频率')
ylabel('幅度/db');
title('哈明窗设计阻带最小衰减As?30dB'); (3)哈明窗的MATLAB语言编程: delta=0.4*pi; wc=0.2*pi; as=50;
N=ceil(8*pi/delta)+1; win=hamming(N); h=fir1(n-1,wc/pi,win); omega=linspace(0,pi,512); mag=freqz(h,[1],omega); magdb=20*log10(abs(mag)); plot(omega/pi,magdb); Grid;
xlabel('归一化频率
ylabel('幅度/dB');
title('哈明窗设计阻带最小衰减As?50dB'); (4)布莱克曼窗的MATLAB语言编程:
14
delta=0.4*pi; wc=0.2*pi;
as=50;
N=ceil(8*pi/delta)+1; win=blackman(N); h=fir1(n-1,wc/pi,win); omega=linspace(0,pi,512); mag=freqz(h,[1],omega); magdb=20*log10(abs(mag)); plot(omega/pi,magdb); Grid;
xlabel('归一化频率') ylabel('幅度/db');
title('布莱克曼窗设计阻带最小衰减As?50的dB');
3.3.2幅频特性曲线
线性相位FIR数字低通滤波器,截止频率?c?0.2?,过渡带宽度 ??0.4?,
阻带衰减AS?30dB。
图3.2 哈明窗MATLAB语言仿真的仿真图
15
图3.3 汉宁窗MATLAB语言仿真的仿真图
线性相位FIR数字低通滤波器,截止频率 ?c?0.2?,过渡带宽度
??0.4?,阻带衰减AS?50dB。
图3.4 哈明窗MATLAB语言仿真的仿真图
16
图3.5 布莱克曼MATLAB语言仿真的仿真图
分析图3.2与图3.3设计FIR滤波器就是根据要求找到N个傅立叶级数h?n?,n=1,2,3,...,n-1,以N项傅里叶级数去接近代替无限项傅里叶级数,这样在以些频率不连续点附近会引起较大误差,这种误差就是截断效应。因此从这一角度来说,窗函数法也称为傅立叶级数法。显然选取傅里叶级数越多的项,引起的误差就越小,但项数增多即h?n?长度增加,也使得成本和滤波计算量加大,应在满足技术要求的条件,尽量减少h?n?的长度。在(3-16)式中,R?n?(矩形序列)就是对无限长序列的截断作用,可以形象的吧R?n?看做是一个窗口,h?n?则是从窗口看到的一段hd?n?序列,所以称h?n?=hd?n?R?n?为用汉明窗对hd?n?进行加窗处理。
这种效应直接影响滤波器的性能。通带内的波纹影响滤波器通带的平稳性,阻带内的波纹影响阻带内的衰减,可能使最小衰减不满足技术指标要求。只要分析以下N加大使WRg?w?的变化,就可以看到这一结论不是完全正确的。我们在讨论在主瓣附近的情况,在主瓣附近WRg?w?是随x的加大而加大的,主瓣幅度加高,同时旁瓣幅度也加高,保持主瓣和旁瓣幅度相对不变;另一方面,N加大时WRg?w?的主瓣和旁瓣变窄,波动频率加快。
以上分析说明,调整窗口长度N只能有效的控制过度带的宽度,而要减少带内波动以及增大阻带衰减,只能从窗函数的形状上找解决办法。构造新函数的窗函数形状,使其谱函数的主瓣包含更多能量,相应的旁瓣幅度更小。旁瓣的减少可以使通带和阻带波动减少,从而加大阻带衰减。
17
相关推荐: