第5章窗函数

第5章 窗 函 数

本章对数字信号处理过程中所用到的有关窗函数进行了说明,这些窗函数主要有:矩形窗函数、三角窗函数、巴特利特窗函数、广义余弦窗、汉宁窗函数、海明窗函数、布莱克曼窗函数、凯塞窗函数和切比雪夫窗函数等。

本章的学习目标:

理解窗函数的基本概念以及加窗原理

掌握基本窗函数产生的方法

掌握广义余弦窗函数产生的各种方法

了解凯塞窗函数和切比雪夫窗函数产生的方法

5.1 窗函数基本概念

在实际进行数字信号处理时,往往需要把信号的观察时间限制在一定的时间间隔内,只需要选择一段时间信号对其进行分析。这样,取用有限个数据,即将信号数据截断的过程,就等于将信号进行加窗函数操作。而这样操作以后,常常会发生频谱分量从其正常频谱扩展开来的现象,即所谓的“频谱泄漏”。当进行离散傅立叶变换时,时域中的截断是必需的,因此泄漏效应也是离散傅立叶变换所固有的,必须进行抑制。而要对频谱泄漏进行抑制,可以通过窗函数加权抑制DFT的等效滤波器的振幅特性的副瓣,或用窗函数加权使有限长度的输入信号周期延拓后在边界上尽量减少不连续程度的方法实现。而在后面的FIR滤波器的设计中,为获得有限长单位取样响应,需要用窗函数截断无限长单位取样响应序列。另外,在功率谱估计中也要遇到窗函数加权问题。由此可见,窗函数加权技术在数字信号处理中的重要地位。

下面介绍窗函数的基本概念。设x(n)是一个长序列,w(n)是长度为N的窗函数,用w(n)截断x(n),得到N点序列xn(n),即

xn(n) = x(n) w(n)

在频域上则有

EMBED Equation.3

由此可见,窗函数w(n)不仅仅会影响原信号x(n)在时域上的波形,而且也会影响到频域内的形状。

MATLAB信号工具箱主要提供了以下几种窗函数,如表5-1所示。

表5-1 MATLAB窗函数

窗 窗 函 数 矩形窗 Boxcar 巴特利特窗 Barlett 三角窗 Triang 布莱克曼窗 Blackman 海明窗 Hamming 汉宁窗 Hanning 凯塞窗 Kaiser 切比雪夫窗 Chebwin

5.2 基本窗函数

数字信号处理领域中所用到的基本窗函数主要有:矩形窗函数、三角窗函数和巴特利特窗函数。下面就对这些窗函数展开介绍。

5.2.1 矩形窗函数

矩形窗(Rectangular Window)函数的时域形式可以表示为:

EMBED Equation.3

它的频域特性为

EMBED Equation.3

Boxcar函数:生成矩形窗

调用方式

w = boxcar (n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。

从功能上讲,该函数又等价于w = ones(n,1)。

应用说明

例:生成一个长度为50的矩形窗,并观察其频率特性(使用归一化的幅值和频率),结果如

图5-1所示。

程序

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 三角窗函数

三角窗是最简单的频谱函数 EMBED Equation.3 为非负的一种窗函数。三角窗函数的时域形式可以表示为:

当n为奇数时

EMBED Equation.3

当n为偶数时

EMBED Equation.3

它的频域特性为:

EMBED Equation.3

三角窗函数的主瓣宽度为 EMBED Equation.3 ,比矩形窗函数的主瓣宽度增加了一倍,但是它的旁瓣宽度却小得多。

Triang函数:生成三角窗

调用方式

w = triang(n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。

三角窗也是两个矩形窗的卷积。

三角窗函数的首尾两个数值通常是不为零的。当n是偶数时,三角窗的傅立叶变换总是非负数。

应用说明

例:生成一个长度为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))));

5.2.3 巴特利特窗函数

巴特利特窗函数的时域形式可以表示为

当n为奇数时

EMBED Equation.3

当n为偶数时

EMBED Equation.3

Bartlett函数:生成巴特利特窗

调用方式

w = bartlett(n):

(1) 输入参数n是窗函数的长度;

(2) 输出参数w是由窗函数的值组成的n阶向量。

(3) 巴特利特窗是两个矩形窗的卷积。

(4) 此函数生成的巴特利特窗的两端总是0。

(5) 该函数与三角窗函数非常类似。当n是奇数时,则有bartlett(n+2)的中间部分等于triang(n);当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))));

5.3 广义余弦窗

汉宁窗、海明窗和布莱克曼窗,都可以用一种通用的形式表示,这就是广义余弦窗。这些窗都是广义余弦窗的特例,汉宁窗又被称为余弦平方窗或升余弦窗,海明窗又被称为改进的升余弦窗,而布莱克曼窗又被称为二阶升余弦窗。采用这些窗可以有效地降低旁瓣的高度,但是同时会增加主瓣的宽度。

这些窗都是频率为0、2π/(N–1)和4π/(N–1)的余弦曲线的合成,其中 EMBED Equation.3 为窗的长度。通常采用下面的命令来生成这些窗:

EMBED Equation.3

EMBED Equation.3

其中,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 汉宁窗函数

汉宁窗函数的时域形式可以表示为:

EMBED Equation.3 EMBED Equation.3

它的频域特性为:

EMBED Equation.3

其中, EMBED Equation.3 为矩形窗函数的幅度频率特性函数。

汉宁窗函数的最大旁瓣值比主瓣值低31dB,但是主瓣宽度比矩形窗函数的主瓣宽度增加了1倍,为8π/N。

hanning函数:生成汉宁窗

调用方式

(1) w = hanning(n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。

注意:此函数不返回是零点的窗函数的首尾两个元素。

(2) w = hanning(n,'symmetric'):与上面相类似。

(3) w = hanning(n,'periodic'):此函数返回包括为零点的窗函数的首尾两个元素。

应用说明

例:生成一个长度为50的汉宁窗,并观察其频率特性(使用归一化的幅值和频率),结果如图5-4所示。

程序

n=51;

window=hanning(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))));

5.3.2 海明窗函数

海明窗函数的时域形式可以表示为

EMBED Equation.3 EMBED Equation.3

它的频域特性为

EMBED Equation.3

其中, EMBED Equation.3 为矩形窗函数的幅度频率特性函数。

海明窗函数的最大旁瓣值比主瓣值低41dB,但它和汉宁窗函数的主瓣宽度是一样大的。

Hamming函数:生成海明窗

调用方式

(1) w = hamming(n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。

(2) w = hamming(n,sflag):参数sflag用来控制窗函数首尾的两个元素值;其取值为symmetric或periodic;默认值为symmetric。

应用说明

例:生成一个长度为50的海明窗,并观察其频率特性(使用归一化的幅值和频率),结果如图5-5所示。

程序

n=51;

window=hamming(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))));

5.3.3 布莱克曼窗函数

布莱克曼窗函数的时域形式可以表示为

EMBED Equation.3 EMBED Equation.3

它的频域特性为

EMBED Equation.3 EMBED Equation.3 EMBED Equation.3 EMBED Equation.3 EMBED Equation.3 EMBED Equation.3

EMBED Equation.3

其中, EMBED Equation.3 为矩形窗函数的幅度频率特性函数。

布莱克曼窗函数的最大旁瓣值比主瓣值低57dB,但是主瓣宽度是矩形窗函数的主瓣宽度的3倍,为12π/N。

Blackman函数:生成海明窗

调用方式

(1) w = blackman (n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。

(2) w = blackman (n,sflag):参数sflag用来控制窗函数首尾的两个元素值;其取值为symmetric或periodic;

默认值为symmetric。

应用说明

例:生成一个长度为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))));

5.4 凯 塞 窗

上面所讨论的几种窗函数,在获得旁瓣抑制的同时却增加了主瓣的宽度。而凯塞窗定义了一组可调的窗函数,它是由零阶贝塞尔函数构成的,其主瓣能量和旁瓣能量的比例是近乎最大的。而且,这种窗函数可以在主瓣宽度和旁瓣高度之间自由选择它们的比重,使用户的设计变得非常灵活。

凯塞窗函数的时域形式可表示为

EMBED Equation.3 EMBED Equation.3

其中, EMBED Equation.3 是第1类变形零阶贝塞尔函数, EMBED Equation.3 是窗函数的形状参数,由下式确定:

EMBED Equation.3

其中, EMBED Equation.3 为凯塞窗函数的主瓣值和旁瓣值之间的差值(dB)。改变β的取值,可以对主瓣宽度和旁瓣衰减进行自由选择。β的值越大,窗函数频谱的旁瓣值就越小,而其主瓣宽度就越宽。

Kaiser函数:生成凯塞窗

调用方式

w = kaiser(n,beta):输入参数n是窗函数的长度;输入参数beta用于控制旁瓣的高度;输出参数w是由窗函数的值组成的n阶向量。

n一定时,beta越大,其频谱的旁瓣就越小,但主瓣宽度相应的增加;当beta一定时,n发生变化,其旁瓣高度不会发生变化。

应用说明

例1:beta的取值影响频谱的旁瓣高度与主瓣宽度,结果如图5-7所示。

程序

n=50;

w1=kaiser(n,1);

w2=kaiser(n,4);

w3=kaiser(n,9);

[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)),'*');

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);

[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.5 切比雪夫窗

对于给定的旁瓣高度,切比雪夫窗的主瓣宽度最小。这是因为它的旁瓣具有相同的高度,也就是具有等波纹性。切比雪夫窗在边沿的采样点有尖峰。

Chebwin函数:生成切比雪夫窗

调用方式

w = chebwin(n,r):输入参数n是窗函数的长度;输入参数r用于控制旁瓣的峰值低于主瓣的分贝数。

应用说明

例:生成长度为50,频谱的旁瓣峰值低于主瓣50dB的切比雪夫窗,其频率特性如图5-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 小 结

本章主要介绍了数字信号处理领域中窗函数的有关知识。实际中遇到的离散时间信号总是有限长的,因此不可避免地要遇到数据截断问题。而在信号处理中,对离散序列的数据截断是通过序列与窗函数相乘来实现的。而且,有关滤波器的设计、功率谱估计等基本概念也要用到窗函数。

本章对经常用到的下面8个窗函数:矩形窗函数、三角窗函数、巴特利特窗函数、汉宁窗函数、海明窗函函数、布莱克曼窗函数、凯塞窗函数以及切比雪夫窗函数,先是做了基本概念上的阐释,然后对其MATLAB实现函数做出了说明,最后又结合具体的实例,对这些窗函数的频域特性等进行了介绍。

通过本章的学习,相信用户已经切实掌握了窗函数的基本知识及其实际应用的技巧了。

5.7 习 题

1. 简单叙述矩形窗函数、三角窗函数、巴特利特窗函数、广义余弦窗、汉宁窗函数、海明窗函数、布莱克曼窗函数、凯塞窗函数和切比雪夫窗函数的各自特点。

2. 分别生成下列窗函数,并使用归一化的幅值和频率观察其频率特性。

(1) 长度为30的矩形窗

(2) 长度为50的三角窗

(3) 长度为40的巴特利特窗

(4) 长度为60的汉宁窗

(5) 长度为90的海明窗

(6) 长度为80的布莱克曼窗

3. 通过MATLAB程序,观察beta的取值如何影响凯塞窗的频谱旁瓣高度与主瓣宽度。

4. 生成长度为50,频谱的旁瓣峰值低于主瓣50dB的切比雪夫窗。

? PAGE 158 ?

MATLAB在数字信号处理中的应用

? PAGE 159 ?

第5章 窗 函 数

图5-1 矩形窗及其频谱特性

图5-2 三角窗及其频谱特性

图5-3 巴特利特窗及其频谱特性

图5-4 汉宁窗及其频谱特性

图5-5 海明窗及其频谱特性

图5-6 布莱克曼窗及其频谱特性

图5-7 不同beta系数凯塞窗的比较结果图

图5-8 不同长度凯塞窗的比较结果图

图5-9 切比雪夫窗及其频谱特性

***[JimiSoft: Unregistered Software ONLY Convert Part Of File! Read Help To Know How To Register.]***

第5章 窗 函 数

本章对数字信号处理过程中所用到的有关窗函数进行了说明,这些窗函数主要有:矩形窗函数、三角窗函数、巴特利特窗函数、广义余弦窗、汉宁窗函数、海明窗函数、布莱克曼窗函数、凯塞窗函数和切比雪夫窗函数等。

本章的学习目标:

理解窗函数的基本概念以及加窗原理

掌握基本窗函数产生的方法

掌握广义余弦窗函数产生的各种方法

了解凯塞窗函数和切比雪夫窗函数产生的方法

5.1 窗函数基本概念

在实际进行数字信号处理时,往往需要把信号的观察时间限制在一定的时间间隔内,只需要选择一段时间信号对其进行分析。这样,取用有限个数据,即将信号数据截断的过程,就等于将信号进行加窗函数操作。而这样操作以后,常常会发生频谱分量从其正常频谱扩展开来的现象,即所谓的“频谱泄漏”。当进行离散傅立叶变换时,时域中的截断是必需的,因此泄漏效应也是离散傅立叶变换所固有的,必须进行抑制。而要对频谱泄漏进行抑制,可以通过窗函数加权抑制DFT的等效滤波器的振幅特性的副瓣,或用窗函数加权使有限长度的输入信号周期延拓后在边界上尽量减少不连续程度的方法实现。而在后面的FIR滤波器的设计中,为获得有限长单位取样响应,需要用窗函数截断无限长单位取样响应序列。另外,在功率谱估计中也要遇到窗函数加权问题。由此可见,窗函数加权技术在数字信号处理中的重要地位。

下面介绍窗函数的基本概念。设x(n)是一个长序列,w(n)是长度为N的窗函数,用w(n)截断x(n),得到N点序列xn(n),即

xn(n) = x(n) w(n)

在频域上则有

EMBED Equation.3

由此可见,窗函数w(n)不仅仅会影响原信号x(n)在时域上的波形,而且也会影响到频域内的形状。

MATLAB信号工具箱主要提供了以下几种窗函数,如表5-1所示。

表5-1 MATLAB窗函数

窗 窗 函 数 矩形窗 Boxcar 巴特利特窗 Barlett 三角窗 Triang 布莱克曼窗 Blackman 海明窗 Hamming 汉宁窗 Hanning 凯塞窗 Kaiser 切比雪夫窗 Chebwin

5.2 基本窗函数

数字信号处理领域中所用到的基本窗函数主要有:矩形窗函数、三角窗函数和巴特利特窗函数。下面就对这些窗函数展开介绍。

5.2.1 矩形窗函数

矩形窗(Rectangular Window)函数的时域形式可以表示为:

EMBED Equation.3

它的频域特性为

EMBED Equation.3

Boxcar函数:生成矩形窗

调用方式

w = boxcar (n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。

从功能上讲,该函数又等价于w = ones(n,1)。

应用说明

例:生成一个长度为50的矩形窗,并观察其频率特性(使用归一化的幅值和频率),结果如

图5-1所示。

程序

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 三角窗函数

三角窗是最简单的频谱函数 EMBED Equation.3 为非负的一种窗函数。三角窗函数的时域形式可以表示为:

当n为奇数时

EMBED Equation.3

当n为偶数时

EMBED Equation.3

它的频域特性为:

EMBED Equation.3

三角窗函数的主瓣宽度为 EMBED Equation.3 ,比矩形窗函数的主瓣宽度增加了一倍,但是它的旁瓣宽度却小得多。

Triang函数:生成三角窗

调用方式

w = triang(n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。

三角窗也是两个矩形窗的卷积。

三角窗函数的首尾两个数值通常是不为零的。当n是偶数时,三角窗的傅立叶变换总是非负数。

应用说明

例:生成一个长度为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))));

5.2.3 巴特利特窗函数

巴特利特窗函数的时域形式可以表示为

当n为奇数时

EMBED Equation.3

当n为偶数时

EMBED Equation.3

Bartlett函数:生成巴特利特窗

调用方式

w = bartlett(n):

(1) 输入参数n是窗函数的长度;

(2) 输出参数w是由窗函数的值组成的n阶向量。

(3) 巴特利特窗是两个矩形窗的卷积。

(4) 此函数生成的巴特利特窗的两端总是0。

(5) 该函数与三角窗函数非常类似。当n是奇数时,则有bartlett(n+2)的中间部分等于triang(n);当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))));

5.3 广义余弦窗

汉宁窗、海明窗和布莱克曼窗,都可以用一种通用的形式表示,这就是广义余弦窗。这些窗都是广义余弦窗的特例,汉宁窗又被称为余弦平方窗或升余弦窗,海明窗又被称为改进的升余弦窗,而布莱克曼窗又被称为二阶升余弦窗。采用这些窗可以有效地降低旁瓣的高度,但是同时会增加主瓣的宽度。

这些窗都是频率为0、2π/(N–1)和4π/(N–1)的余弦曲线的合成,其中 EMBED Equation.3 为窗的长度。通常采用下面的命令来生成这些窗:

EMBED Equation.3

EMBED Equation.3

其中,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 汉宁窗函数

汉宁窗函数的时域形式可以表示为:

EMBED Equation.3 EMBED Equation.3

它的频域特性为:

EMBED Equation.3

其中, EMBED Equation.3 为矩形窗函数的幅度频率特性函数。

汉宁窗函数的最大旁瓣值比主瓣值低31dB,但是主瓣宽度比矩形窗函数的主瓣宽度增加了1倍,为8π/N。

hanning函数:生成汉宁窗

调用方式

(1) w = hanning(n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。

注意:此函数不返回是零点的窗函数的首尾两个元素。

(2) w = hanning(n,'symmetric'):与上面相类似。

(3) w = hanning(n,'periodic'):此函数返回包括为零点的窗函数的首尾两个元素。

应用说明

例:生成一个长度为50的汉宁窗,并观察其频率特性(使用归一化的幅值和频率),结果如图5-4所示。

程序

n=51;

window=hanning(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))));

5.3.2 海明窗函数

海明窗函数的时域形式可以表示为

EMBED Equation.3 EMBED Equation.3

它的频域特性为

EMBED Equation.3

其中, EMBED Equation.3 为矩形窗函数的幅度频率特性函数。

海明窗函数的最大旁瓣值比主瓣值低41dB,但它和汉宁窗函数的主瓣宽度是一样大的。

Hamming函数:生成海明窗

调用方式

(1) w = hamming(n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。

(2) w = hamming(n,sflag):参数sflag用来控制窗函数首尾的两个元素值;其取值为symmetric或periodic;默认值为symmetric。

应用说明

例:生成一个长度为50的海明窗,并观察其频率特性(使用归一化的幅值和频率),结果如图5-5所示。

程序

n=51;

window=hamming(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))));

5.3.3 布莱克曼窗函数

布莱克曼窗函数的时域形式可以表示为

EMBED Equation.3 EMBED Equation.3

它的频域特性为

EMBED Equation.3 EMBED Equation.3 EMBED Equation.3 EMBED Equation.3 EMBED Equation.3 EMBED Equation.3

EMBED Equation.3

其中, EMBED Equation.3 为矩形窗函数的幅度频率特性函数。

布莱克曼窗函数的最大旁瓣值比主瓣值低57dB,但是主瓣宽度是矩形窗函数的主瓣宽度的3倍,为12π/N。

Blackman函数:生成海明窗

调用方式

(1) w = blackman (n):输入参数n是窗函数的长度;输出参数w是由窗函数的值组成的n阶向量。

(2) w = blackman (n,sflag):参数sflag用来控制窗函数首尾的两个元素值;其取值为symmetric或periodic;

默认值为symmetric。

应用说明

例:生成一个长度为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))));

5.4 凯 塞 窗

上面所讨论的几种窗函数,在获得旁瓣抑制的同时却增加了主瓣的宽度。而凯塞窗定义了一组可调的窗函数,它是由零阶贝塞尔函数构成的,其主瓣能量和旁瓣能量的比例是近乎最大的。而且,这种窗函数可以在主瓣宽度和旁瓣高度之间自由选择它们的比重,使用户的设计变得非常灵活。

凯塞窗函数的时域形式可表示为

EMBED Equation.3 EMBED Equation.3

其中, EMBED Equation.3 是第1类变形零阶贝塞尔函数, EMBED Equation.3 是窗函数的形状参数,由下式确定:

EMBED Equation.3

其中, EMBED Equation.3 为凯塞窗函数的主瓣值和旁瓣值之间的差值(dB)。改变β的取值,可以对主瓣宽度和旁瓣衰减进行自由选择。β的值越大,窗函数频谱的旁瓣值就越小,而其主瓣宽度就越宽。

Kaiser函数:生成凯塞窗

调用方式

w = kaiser(n,beta):输入参数n是窗函数的长度;输入参数beta用于控制旁瓣的高度;输出参数w是由窗函数的值组成的n阶向量。

n一定时,beta越大,其频谱的旁瓣就越小,但主瓣宽度相应的增加;当beta一定时,n发生变化,其旁瓣高度不会发生变化。

应用说明

例1:beta的取值影响频谱的旁瓣高度与主瓣宽度,结果如图5-7所示。

程序

n=50;

w1=kaiser(n,1);

w2=kaiser(n,4);

w3=kaiser(n,9);

[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)),'*');

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);

[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.5 切比雪夫窗

对于给定的旁瓣高度,切比雪夫窗的主瓣宽度最小。这是因为它的旁瓣具有相同的高度,也就是具有等波纹性。切比雪夫窗在边沿的采样点有尖峰。

Chebwin函数:生成切比雪夫窗

调用方式

w = chebwin(n,r):输入参数n是窗函数的长度;输入参数r用于控制旁瓣的峰值低于主瓣的分贝数。

应用说明

例:生成长度为50,频谱的旁瓣峰值低于主瓣50dB的切比雪夫窗,其频率特性如图5-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 小 结

本章主要介绍了数字信号处理领域中窗函数的有关知识。实际中遇到的离散时间信号总是有限长的,因此不可避免地要遇到数据截断问题。而在信号处理中,对离散序列的数据截断是通过序列与窗函数相乘来实现的。而且,有关滤波器的设计、功率谱估计等基本概念也要用到窗函数。

本章对经常用到的下面8个窗函数:矩形窗函数、三角窗函数、巴特利特窗函数、汉宁窗函数、海明窗函函数、布莱克曼窗函数、凯塞窗函数以及切比雪夫窗函数,先是做了基本概念上的阐释,然后对其MATLAB实现函数做出了说明,最后又结合具体的实例,对这些窗函数的频域特性等进行了介绍。

通过本章的学习,相信用户已经切实掌握了窗函数的基本知识及其实际应用的技巧了。

5.7 习 题

1. 简单叙述矩形窗函数、三角窗函数、巴特利特窗函数、广义余弦窗、汉宁窗函数、海明窗函数、布莱克曼窗函数、凯塞窗函数和切比雪夫窗函数的各自特点。

2. 分别生成下列窗函数,并使用归一化的幅值和频率观察其频率特性。

(1) 长度为30的矩形窗

(2) 长度为50的三角窗

(3) 长度为40的巴特利特窗

(4) 长度为60的汉宁窗

(5) 长度为90的海明窗

(6) 长度为80的布莱克曼窗

3. 通过MATLAB程序,观察beta的取值如何影响凯塞窗的频谱旁瓣高度与主瓣宽度。

4. 生成长度为50,频谱的旁瓣峰值低于主瓣50dB的切比雪夫窗。

? PAGE 158 ?

MATLAB在数字信号处理中的应用

? PAGE 159 ?

第5章 窗 函 数

图5-1 矩形窗及其频谱特性

图5-2 三角窗及其频谱特性

图5-3 巴特利特窗及其频谱特性

图5-4 汉宁窗及其频谱特性

图5-5 海明窗及其频谱特性

图5-6 布莱克曼窗及其频谱特性

图5-7 不同beta系数凯塞窗的比较结果图

图5-8 不同长度凯塞窗的比较结果图

图5-9 切比雪夫窗及其频谱特性

***[JimiSoft: Unregistered Software ONLY Convert Part Of File! Read Help To Know How To Register.]***


相关内容

  • 初等函数在定义域中连续
  • 初等函数在定义域中连续 一. 连续的定义 二.常见的初等函数举例 三.以上所举初等函数是否在定义域中连续 并举例证明几个初等函数的连续性 四.以上所举初等函数的复合函数(也是初等函数) 是否有连续性并举例证明 五.我们从中得到的定理 一.连续的定义 (一)设函数f 在某U (X0)内有定义,若lim ...

  • 第五章 C 函数与程序结构
  • 第5章 C++函数与程序结构 本章要点: 1.掌握函数的概念.定义和调用方法. 2.理解C++函数参数传递的方法:值传递和引用传递.掌握函数参数值传递的3.过程,并能够灵活运用.后面的章节中,将进一步学习引用传递. 4.理解内联函数的概念.作用,会定义内联函数. 5.理解函数重载的概念.作用,能够熟 ...

  • 函数性质的综合运用常见题型与解题方法总结
  • 函数性质的综合运用 1. 函数y = ( ) A .2 B .4 C .6 D .8 1的图像与函数y =2sin πx (-2≤x ≤4)的图像所有交点的横坐标之和等于1-x 2. 已知函数y =f (x ) 的周期为2,当x ∈[-1,1]时函数f (x ) =x ,那么函数y =f (x ) ...

  • 函数的对称性应用
  • 函数的对称性应用(一) ──含绝对值函数的图象 内蒙古赤峰市翁牛特旗乌丹一中 熊明军 在学习函数时,若将函数的自变量或应变量带上绝对值" ",再研究其性质就不仅 仅要从函数的角度来考虑,还得结合绝对值的意义来共同探讨. 图象是刻画变量之间关系的一个重要途径.函数图象是函数的一种表 ...

  • 反比例函数教材分析
  • <反比例函数>集体备课发言稿 [备课形式]集体备课 [参加人员]数学组教师 [中心发言人]张勇 [备课时间]2010.3.15 [解决的中心问题] 探究八年级数学下册第17章<反比例函数>教 学 安排,分析教学重难点,教学方法 一.教材分析 本章内容属于<全日制义务教育 ...

  • 函数的定义和调用
  • 函数的定义和调用 7.2函数定义 函数定义的一般形式: 类型标识符 函数名(形式参数表列) 函数定义函数首部不要以分号结尾 { 说明部分 执行部分 } 例: 1类型标识符○2函数名○3形式参数表列 int max(int a,int b) /*函数首部*/ ○ 4 { /*函数体开始*/○ int ...

  • 对数幂函数
  • 一.对数函数及其性质 1.对数函数的概念 (1)定义:一般地,我们把函数a >0,且a ≠1) 叫做对数函数,其中x 是自变量,函数的定义域是(0,+∞) . (2)对数函数的特征: log a x 的系数:1⎧⎪ 特征⎨log a x 的底数:常数,且是不等于1的正实数 ⎪⎩log a x ...

  • 求函数值域的具体方法
  • 一.观察法 通过对函数定义域.性质的观察,结合函数的解析式,求得函数的值域. 例1:求函数y=3+√(2-3x) 的值域. 点拨:根据算术平方根的性质,先求出√(2-3x) 的值域. 解:由算术平方根的性质,知√(2-3x)≥0, 故3+√(2-3x)≥3. ∴函数的值域为 . 点评:算术平方根具有 ...

  • 指数函数定义域及值域
  • 一.观察法 通过对函数定义域.性质的观察,结合函数的解析式,求得函数的值域. 例1求函数y=3+√(2-3x) 的值域. 点拨:根据算术平方根的性质,先求出√(2-3x) 的值域. 解:由算术平方根的性质,知√(2-3x) ≥0, 故3+√(2-3x) ≥3. ∴函数的知域为 . 点评:算术平方根具 ...

  • 高考数学函数问题的题型与方法1
  • 高三数学第二轮复习教案 第1讲 函数问题的题型与方法 (3课时) 一.考试内容 映射.函数.函数的单调性.函数的奇偶性:反函数.互为反函数的函数图象间的关系:指数概念的扩充.有理指数幂的运算性质.指数函数:对数.对数的运算性质.对数函数 函数的应用举例. 二.考试要求 1.了解映射的概念,理解函数的 ...