武汉理工大学《MATLAB课程设计》报告
2 各类窗函数简介
数字信号处理领域中所用到的窗函数主要分为两大类,分别是:基本窗函数与广义窗函数。
2.1 基本窗函数
基本窗函数包括以下三类,主要有:矩形窗函数、三角窗函数和巴特利特窗函数。下面就对这些窗函数展开介绍。
2.1.1 矩形窗函数
矩形窗(Rectangular Window)函数的时域形式可以表示为:
?1,w(n)?RN(n)???0,它的频域特性为
0?n?N?1 (公式2-1)
WRe?j???e?N?1??j???2????N?sin??2?? (公式2-2)
???sin??2??Boxcar函数:生成矩形窗
调用方式w = boxcar (n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。从功能上讲,该函数又等价于w = ones(n,1)。
2.1.2三角窗
三角窗(Bartlett Window)函数时域形式可表示为:
9
武汉理工大学《MATLAB课程设计》报告
?2n?N?1w(n)?? BR2n?2?,N?1?
窗谱为: W?ej?????N?1???sin?????2???4????N?1????sin????2??20?n?1212(N?1) (公式2-3)
(N?1)?n?N?1???N?????sin????j?N?1??N?1??????24??j??????2??2??e?e???N???sin??????2????2 (公式2-4)
式中,当N远大于1时,此时,窗谱主瓣宽度为8?/N。
2.2 广义余弦窗
汉宁窗、海明窗和布莱克曼窗,都可以用一种通用的形式表示,这就是广义余弦窗。这些窗都是广义余弦窗的特例,汉宁窗又被称为余弦平方窗或升余弦窗,海明窗又被称为改进的升余弦窗,而布莱克曼窗又被称为二阶升余弦窗。采用这些窗可以有效地降低旁瓣的高度,但是同时会增加主瓣的宽度。
这些窗都是频率为0、2π/(N–1)和4π/(N–1)的余弦曲线的合成,其中N为窗的长度。通常采用下面的命令来生成这些窗:
Ind??0:N?1??2?π?N?1? (公式2-5)
' Window?A?B?cos(ind)?C?cos(2*ind) (公式2-6)
其中,A、B、C适用于自己定义的常数。根据它们取值的不同,可以形成不同的窗函数,分别是:
汉宁窗 A=0.5,B=0.5,C=0; 海明窗 A=0.54,B=0.54,C=0; 布莱克曼窗 A=0.5,B=0.5,C=0.08;
10
武汉理工大学《MATLAB课程设计》报告
2.2.1汉宁窗(升余弦窗)
汉宁窗(Hanning)函数时域形式可表示为: W?n??1??2?n??(公式2-7) 1?cos???RN(n) ?2??N?1??利用傅利叶变换的调制特性,由上式可得汉宁窗的平谱函数为: W?ej????2??2?????j??????0.5WR????0.25?WR?????WR??????eN?1?N?1????????N?1??j????2??N?1???2?
?W???e (公式2-8)
?N?1??j????2?式中, WR?ej???WR???e (公式2-9)
当N远大于1时,上式可近似表示为: W????0.5WR????0.25?WR???????2???2???(公式???WR????
N??N??2-10)
这三部分之和使旁瓣互相抵消,能量更集中在主瓣,汉宁窗函数的最大旁瓣值比主瓣值低31dB,但是主瓣宽度比矩形窗函数的主瓣宽度增加了1倍,为8π/N。
hanning函数:生成汉宁窗 调用方式:
(1) w = hanning(n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。
注意:此函数不返回是零点的窗函数的首尾两个元素。 (2) w = hanning(n,'symmetric'):与上面相类似。
(3) w = hanning(n,'periodic'):此函数返回包括为零点的窗函数的首尾两个元素。
11
武汉理工大学《MATLAB课程设计》报告
3方案设计与论证
用窗函数法设计一个FIR带通滤波器。指示如下: 低端阻带截止频率 wls = 0.2*pi; 低端通带截止频率 wlp = 0.35*pi; 高端通带截止频率 whp = 0.65*pi; 高端阻带截止频率 whs = 0.8*pi; 六种窗函数的基本参数如表1-2:
窗函数 矩形窗 三角形窗 汉宁窗 哈明窗 布莱克曼窗 凯塞窗(??7.865) 旁瓣峰值幅度/dB 过渡带宽 阻带最小衰减/dB -13 -25 -31 -41 -57 -57 4π/N 8π/N 8π/N 8π/N 12π/N 10π/N -21 -25 -44 -53 -74 -80 表1-2 窗函数基本参数
以上表格里的参数设置是最佳窗函数设计,根据设计方案的要求,选择一个合适的窗函数进行滤波器的设计,从上表可以看出:最小带阻衰减仅有窗函数决定,不受N的影响,而过渡带的宽度则随窗函数的增加而减小。
12
武汉理工大学《MATLAB课程设计》报告
3.1 程序设计法
程序法只以hamming窗为示例,其他窗函数的程序大体相同,只是在window= hanning(N)和hn = fir1(N-1,wc, hanning (N))处要调自己的窗函数即可。
hanning 窗设计程序示例: wls = 0.2*pi; wlp = 0.35*pi; whp = 0.65*pi; wc = [wlp/pi,whp/pi]; B = wlp-wls; N = ceil(8/0.15); n=0:N-1;
window= hanning(N); [h1,w]=freqz(window,1); figure(1); stem(window); axis([0 60 0 1.2]); grid; xlabel('n');
title('Hanning窗函数'); figure(2);
plot(w/pi,20*log(abs(h1)/abs(h1(1)))); axis([0 1 -350 0]); grid; xlabel('w/pi'); ylabel('幅度(dB)');
title('Hanning窗函数的频谱'); hn = fir1(N-1,wc, hanning (N));
13