关于滤波器的窗函数的应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
应用说明
例:生成一个长度为50的布莱克曼窗,并观察其频率特性(使用归一化的幅值和频率),结果如图5-6所示。
程序
n=51;
window=blackman(n);
[h,w]=freqz(window,1);
subplot(1,2,1)
stem(window);
subplot(1,2,2);
plot(w/pi,20*log(abs(h)/abs(h(1))));
程序
n=51;
window=hamming(n);
[h,w]=freqz(window,1);
subplot(1,2,1)
stem(window);
subplot(1,2,2);
plotΒιβλιοθήκη Baiduw/pi,20*log(abs(h)/abs(h(1))));
5.3.3
布莱克曼窗函数的时域形式可以表示为
它的频域特性为
5.2.3
巴特利特窗函数的时域形式可以表示为
当n为奇数时
当n为偶数时
Bartlett
调用方式
w = bartlett(n):
(1)输入参数n是窗函数的长度;
(2)输出参数w是由窗函数的值组成的n阶向量。
(3)巴特利特窗是两个矩形窗的卷积。
(4)此函数生成的巴特利特窗的两端总是0。
(5)该函数与三角窗函数非常类似。当n是奇数时,则有bartlett(n+2)的中间部分等于triang(n);当n是偶数时,巴特利特窗的傅立叶变换是负数。
下面介绍窗函数的基本概念。设x(n)是一个长序列,w(n)是长度为N的窗函数,用w(n)截断x(n),得到N点序列xn(n),即
xn(n) =x(n)w(n)
在频域上则有
由此可见,窗函数w(n)不仅仅会影响原信号x(n)在时域上的波形,而且也会影响到频域内的形状。
MATLAB信号工具箱主要提供了以下几种窗函数,如表5-1所示。
5
上面所讨论的几种窗函数,在获得旁瓣抑制的同时却增加了主瓣的宽度。而凯塞窗定义了一组可调的窗函数,它是由零阶贝塞尔函数构成的,其主瓣能量和旁瓣能量的比例是近乎最大的。而且,这种窗函数可以在主瓣宽度和旁瓣高度之间自由选择它们的比重,使用户的设计变得非常灵活。
凯塞窗函数的时域形式可表示为
其中, 是第1类变形零阶贝塞尔函数, 是窗函数的形状参数,由下式确定:
subplot(1,2,1)
stem(window);
subplot(1,2,2);
plot(w/pi,20*log(abs(h)/abs(h(1))));
5.3.2
海明窗函数的时域形式可以表示为
它的频域特性为
其中, 为矩形窗函数的幅度频率特性函数。
海明窗函数的最大旁瓣值比主瓣值低41dB,但它和汉宁窗函数的主瓣宽度是一样大的。
n一定时,beta越大,其频谱的旁瓣就越小,但主瓣宽度相应的增加;当beta一定时,n发生变化,其旁瓣高度不会发生变化。
应用说明
例1:beta的取值影响频谱的旁瓣高度与主瓣宽度,结果如图5-7所示。
程序
n=50;
w1=kaiser(n,1);
w2=kaiser(n,4);
w3=kaiser(n,9);
程序
n=50;
r=50;
window=chebwin(n,r);
[h,w]=freqz(window,1);
subplot(1,2,1)
stem(window);
subplot(1,2,2)
plot(w/pi,20*log(abs(h)/abs(h(1))));
5.6
本章主要介绍了数字信号处理领域中窗函数的有关知识。实际中遇到的离散时间信号总是有限长的,因此不可避免地要遇到数据截断问题。而在信号处理中,对离散序列的数据截断是通过序列与窗函数相乘来实现的。而且,有关滤波器的设计、功率谱估计等基本概念也要用到窗函数。
5
矩形窗(Rectangular Window)函数的时域形式可以表示为:
它的频域特性为
B
调用方式
w = boxcar (n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。
从功能上讲,该函数又等价于w = ones(n,1)。
应用说明
例:生成一个长度为50的矩形窗,并观察其频率特性(使用归一化的幅值和频率),结果如图5-1所示。
本章对经常用到的下面8个窗函数:矩形窗函数、三角窗函数、巴特利特窗函数、汉宁窗函数、海明窗函函数、布莱克曼窗函数、凯塞窗函数以及切比雪夫窗函数,先是做了基本概念上的阐释,然后对其MATLAB实现函数做出了说明,最后又结合具体的实例,对这些窗函数的频域特性等进行了介绍。
其中, 为凯塞窗函数的主瓣值和旁瓣值之间的差值(dB)。改变β的取值,可以对主瓣宽度和旁瓣衰减进行自由选择。β的值越大,窗函数频谱的旁瓣值就越小,而其主瓣宽度就越宽。
Kaiser
调用方式
w = kaiser(n,beta):输入参数n是窗函数的长度;输入参数beta用于控制旁瓣的高度;输出参数w是由窗函数的值组成的n阶向量。
应用说明
例:生成一个长度为50的巴特利特窗,并观察其频率特性(使用归一化的幅值和频率),结果如图5-3所示。
程序
n=51;
window=bartlett(n);
[h,w]=freqz(window,1);
subplot(1,2,1)
stem(window);
subplot(1,2,2);
plot(w/pi,20*log(abs(h)/abs(h(1))));
legend('beta=1','beta=4','beta=9');
例2:beta一定而n发生变化时不会影响频谱的旁瓣高度,结果如图5-8所示。
程序
w1=kaiser(20,4);
w2=kaiser(60,4);
w3=kaiser(90,4);
[W1,f]=freqz(w1/sum(w1),1,512,2);
汉宁窗函数的最大旁瓣值比主瓣值低31dB,但是主瓣宽度比矩形窗函数的主瓣宽度增加了1倍,为8π/N。
hanning
调用方式
(1) w =hanning(n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。
注意:此函数不返回是零点的窗函数的首尾两个元素。
(2)w = hanning(n,'symmetric'):与上面相类似。
●了解凯塞窗函数和切比雪夫窗函数产生的方法
5
在实际进行数字信号处理时,往往需要把信号的观察时间限制在一定的时间间隔内,只需要选择一段时间信号对其进行分析。这样,取用有限个数据,即将信号数据截断的过程,就等于将信号进行加窗函数操作。而这样操作以后,常常会发生频谱分量从其正常频谱扩展开来的现象,即所谓的“频谱泄漏”。当进行离散傅立叶变换时,时域中的截断是必需的,因此泄漏效应也是离散傅立叶变换所固有的,必须进行抑制。而要对频谱泄漏进行抑制,可以通过窗函数加权抑制DFT的等效滤波器的振幅特性的副瓣,或用窗函数加权使有限长度的输入信号周期延拓后在边界上尽量减少不连续程度的方法实现。而在后面的FIR滤波器的设计中,为获得有限长单位取样响应,需要用窗函数截断无限长单位取样响应序列。另外,在功率谱估计中也要遇到窗函数加权问题。由此可见,窗函数加权技术在数字信号处理中的重要地位。
5
汉宁窗、海明窗和布莱克曼窗,都可以用一种通用的形式表示,这就是广义余弦窗。这些窗都是广义余弦窗的特例,汉宁窗又被称为余弦平方窗或升余弦窗,海明窗又被称为改进的升余弦窗,而布莱克曼窗又被称为二阶升余弦窗。采用这些窗可以有效地降低旁瓣的高度,但是同时会增加主瓣的宽度。
这些窗都是频率为0、2π/(N–1)和4π/(N–1)的余弦曲线的合成,其中 为窗的长度。通常采用下面的命令来生成这些窗:

本章对数字信号处理过程中所用到的有关窗函数进行了说明,这些窗函数主要有:矩形窗函数、三角窗函数、巴特利特窗函数、广义余弦窗、汉宁窗函数、海明窗函数、布莱克曼窗函数、凯塞窗函数和切比雪夫窗函数等。
本章的学习目标:
●理解窗函数的基本概念以及加窗原理
●掌握基本窗函数产生的方法
●掌握广义余弦窗函数产生的各种方法
当n为奇数时
当n为偶数时
它的频域特性为:
三角窗函数的主瓣宽度为 ,比矩形窗函数的主瓣宽度增加了一倍,但是它的旁瓣宽度却小得多。
Triang
调用方式
w = triang(n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。
三角窗也是两个矩形窗的卷积。
三角窗函数的首尾两个数值通常是不为零的。当n是偶数时,三角窗的傅立叶变换总是非负数。
(3)w = hanning(n,'periodic'):此函数返回包括为零点的窗函数的首尾两个元素。
应用说明
例:生成一个长度为50的汉宁窗,并观察其频率特性(使用归一化的幅值和频率),结果如图5-4所示。
程序
n=51;
window=hanning(n);
[h,w]=freqz(window,1);
其中, 为矩形窗函数的幅度频率特性函数。
布莱克曼窗函数的最大旁瓣值比主瓣值低57dB,但是主瓣宽度是矩形窗函数的主瓣宽度的3倍,为12π/N。
B
调用方式
(1)w = blackman(n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。
(2)w =blackman(n,sflag):参数sflag用来控制窗函数首尾的两个元素值;其取值为symmetric或periodic;默认值为symmetric。
[W2,f]=freqz(w2/sum(w2),1,512,2);
[W3,f]=freqz(w3/sum(w3),1,512,2);
plot(f,20*log10(abs(W1)),f,20*log10(abs(W2)),':',f,20*log10(abs(W3)),'-.');
legend('n=20','n=60','n=90');
表5-1MATLAB窗函数

窗函数
矩形窗
Boxcar
巴特利特窗
Barlett
三角窗
Triang
布莱克曼窗
Blackman
海明窗
Hamming
汉宁窗
Hanning
凯塞窗
Kaiser
切比雪夫窗
Chebwin
5
数字信号处理领域中所用到的基本窗函数主要有:矩形窗函数、三角窗函数和巴特利特窗函数。下面就对这些窗函数展开介绍。
应用说明
例:生成一个长度为50的三角窗,并观察其频率特性(使用归一化的幅值和频率),结果如图5-2所示。
程序
n=31;
window=triang(n);
[h,w]=freqz(window,1);
subplot(1,2,1)
stem(window);
subplot(1,2,2);
plot(w/pi,20*log(abs(h)/abs(h(1))));
其中,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;
5.3.1
汉宁窗函数的时域形式可以表示为:
它的频域特性为:
其中, 为矩形窗函数的幅度频率特性函数。
5
对于给定的旁瓣高度,切比雪夫窗的主瓣宽度最小。这是因为它的旁瓣具有相同的高度,也就是具有等波纹性。切比雪夫窗在边沿的采样点有尖峰。
调用方式
w = chebwin(n,r):输入参数n是窗函数的长度;输入参数r用于控制旁瓣的峰值低于主瓣的分贝数。
应用说明
例:生成长度为50,频谱的旁瓣峰值低于主瓣50dB的切比雪夫窗,其频率特性如图5-9所示。
Hamming
调用方式
(1)w =hamming(n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。
(2)w = hamming(n,sflag):参数sflag用来控制窗函数首尾的两个元素值;其取值为symmetric或periodic;默认值为symmetric。
应用说明
例:生成一个长度为50的海明窗,并观察其频率特性(使用归一化的幅值和频率),结果如图5-5所示。
程序
n=50;
window=boxcar(n);
[h,w]=freqz(window,1);
subplot(2,1,1)
stem(window);
subplot(2,1,2);
plot(w/pi,20*log(abs(h)/abs(h(1))));
5.2.2
三角窗是最简单的频谱函数 为非负的一种窗函数。三角窗函数的时域形式可以表示为:
[W1,f]=freqz(w1/sum(w1),1,512,2);
[W2,f]=freqz(w2/sum(w2),1,512,2);
[W3,f]=freqz(w3/sum(w3),1,512,2);
plot(f,20*log10(abs(W1)),f,20*log10(abs(W2)),':',f,20*log10(abs(W3)),'*');
相关文档
最新文档