(仅供参考)各种窗函数设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
不同长度凯塞窗的比较结果图
3小 结
本章主要介绍了数字信号处理领域中窗函数的有关知识。实际中遇到的离散时间信 号总是有限长的�因此不可避免地要遇到数据截断问题。而在信号处理中�对离散序列 的数据截断是通过序列与窗函数相乘来实现的。而且�有关滤波器的设计、功率谱估计 等基本概念也要用到窗函数。
本章对经常用到的 6 个窗函数�矩形窗函数、三角窗函数、汉宁窗函数、海明窗函 数、布莱克曼窗函数和凯塞窗函数�先是做了基本概念上的阐释�然后对其 MATLAB 实 现函数做出了说明�最后又结合具体的实例�对这些窗函数的频域特性等进行了介绍。
�
I0 �� w(k ) � ��
1 � ��1 �
2k
� �
2
� �
� N � 1 � ��
I0(� )
0 � k � N �1
其中� I0 (� ) 是第 1 类变形零阶贝塞尔函数� � 是窗函数的形状参数�由下式确定�
�0.1102 (� � 8.7),
� � 50
� � ��0.5482 (� � 21) 0.4 � 0.07886 (� � 21), 21 � � � 50
w(k )
�
0.54
�
0.46
cos
� �
�
2π
k�
N
�
1
� �
它的频域特性为
k � 1,2,�, N
W
(� )
�
0.54W R
(� )
�
0.23
��W
R
� �
�
��
�
2 N
π �
1
� � �
�
W
R
� �
�
�
�
2π ��
N
�
1
� �
� �
其中�WR (�) 为矩形窗函数的幅度频率特性函数。 哈明窗函数的最大旁瓣值比主瓣值低 40dB�但它和汉宁窗函数的主瓣宽度是一样大的。 调用方式
断是必需的�因此泄漏效应也是离散傅立叶变换所固有的�必须进行抑制。而要对频谱
泄漏进行抑制�可以通过窗函数加权抑制 DFT 的等效滤波器的振幅特性的副瓣�或用窗 函数加权使有限长度的输入信号周期延拓后在边界上尽量减少不连续程度的方法实现。
而在后面的 FIR 滤波器的设计中�为获得有限长单位取样响应�需要用窗函数截断无限 长单位取样响应序列。另外�在功率谱估计中也要遇到窗函数加权问题。由此可见�窗
�π
由此可见�窗函数 w(n)不仅仅会影响原信号 x(n)在时域上的波形�而且也会影响到频
域内的形状。
窗 矩形窗 三角窗 布莱克曼窗 海明窗 汉宁窗 凯塞窗
表 1 MATLAB 窗函数
Boxcar Triang Blackman Hamming Hanning Kaiser
窗函数
2 窗函数
下面就对这些窗函数展开介绍。
汉宁窗函数的时域形式可以表示为�
w(k
)
�
0.5���1 �
�
cos
� � �
2π
n
k �
1
� � �
� �� �
它的频域特性为�
k � 1,2,�, N
W
�� �
�
�
�0.5WR �� � �
�
0.25
��W
R
� �
�
��
�
2 N
π �
1
� � �
�
W
R
� � �
�
�
2 N
π �
1
� � �
� � �
n 发生变化时不会影响频谱的旁瓣高度�结果如图所示。
程序
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');
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))));
汉宁窗及其频谱特性
2.4 哈明窗函数
哈明窗函数的时域形式可以表示为
调用方式
(1) w = blackman (n)�输入参数 n 是窗函数的长度�输出参数 w 是由窗函数的值组成 的 n 阶向量。
(2) w = blackman (n,sflag)�参数 sflag 用来控制窗函数首尾的两个元素值�其取值为 symmetric 或 periodic�默认值为 symmetric。
2.1 矩形窗函数
矩形窗(Rectangular Window)函数的时域形式可以表示为�
w(n) �
RN (n)
�
�1, ��0,
0�n
其他
�
N
�1
它的频率响应为
� � WR e j�
�
e�
j�� �
N �1 2
��� �
sin
� � �
�N 2
� � �
sin
� � �
� 2
� � �
矩形窗函数的主瓣宽度为 4π �第一副瓣比主瓣低 13dB。 N
调用方式 w = boxcar (n)�输入参数 n 是窗函数的长度�输出参数 w 是由窗函数的值组成的 n
阶向量。 从功能上讲�该函数又等价于 w = ones(n,1)。
例�生成一个长度为 50 的矩形窗�并观察其频率特性(使用归一化的幅值和 频率)�结果如下�
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))));
�
� �
2k � n
1
,
� �
2(n
�
k
�
1)
,
1� k � n 2
n�k�n
�n
2
它的频率响应为�
2
� � WR e j�
�
�
j�
� �
e�
N �1 � �
2�
�
2
� �
N �1� �
�
sin
� � �
�
�
N 4
�
1�
� � �
sin
� � �
� 2
� � �
� � � � � �
8π
三角窗函数的主瓣宽度为 N �比矩形窗函数的主瓣宽度增加了一倍�但是它的旁瓣宽度
却小得多。
调用方式
w = triang(n)�输入参数 n 是窗函数的长度�输出参数 w 是由窗函数的值组成的 n 阶 向量。
三角窗也是两个矩形窗的卷积。
三角窗函数的首尾两个数值通常是不为零的。当 n 是偶数时�三角窗的傅立叶变换总是 非负数。
例�生成一个长度为 50 的三角窗�并观察其频率特性(使用归一化的幅值和频率)�结果 如下图所示。
��0,
� � 21
其中�� 为凯塞窗函数的主瓣值和旁瓣值之间的差值(dB)。改变 β 的取值�可以对主瓣宽 度和旁瓣衰减进行自由选择。β 的值越大�窗函数频谱的旁瓣值就越小�而其主瓣宽度就 越宽。
调用方式 w = kaiser(n,beta)�输入参数 n 是窗函数的长度�输入参数 beta 用于控制旁瓣的高度�输 出参数 w 是由窗函数的值组成的 n 阶向量。 n 一定时�beta 越大�其频谱的旁瓣就越小�但主瓣宽度相应的增加�当 beta 一定时�n 发生变化�其旁瓣高度不会发生变化。
程序
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))));
三角形窗及其频谱特性
2.3 汉宁窗函数
例�生成一个长度为 50 的布莱克曼窗�并观察其频率特性(使用归一化的幅值和频 率)�结果如图所示。
程序
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))));
布莱克曼窗及其频谱特性
2.6 凯 塞 窗
上面所讨论的几种窗函数�在获得旁瓣抑制的同时却增加了主瓣的宽度。而凯塞窗定义
了一组可调的窗函数�它是由零阶贝塞尔函数构成的�其主瓣能量和旁瓣能量的比例是
近乎最大的。而且�这种窗函数可以在主瓣宽度和旁瓣高度之间自由选择它们的比重�
使用户的设计变得非常灵活。 凯塞窗函数的时域形式可表示为
程序
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))));
哈明窗及其频谱特性
2.5 布莱克曼窗函数
1 窗函数基本概念
在实际进行数字信号处理时�往往需要把信号的观察时间限制在一定的时间间隔内�
只需要选择一段时间信号对其进行分析。这样�取用有限个数据�即将信号数据截断的
过程�就等于将信号进行加窗函数操作。而这样操作以后�常常会发生频谱分量从其正
常频谱扩展开来的现象�即所谓的“频谱泄漏”。当进行离散傅立叶变换时�时域中的截
(1) w = hamming(n)�输入参数 n 是窗函数的长度�输出参数 w 是由窗函数的值组成的 n 阶向量。
(2) w = hamming(n,sflag)�参数 sflag 用来控制窗函数首尾的两个元素值�其取值为 symmetric 或 periodic�默认值为 symmetric。 例�生成一个长度为 50 的哈明窗�并观察其频率特性(使用归一化的幅值和频率)�结果 如图所示。
�
�
�
2� ��
N
�
1
�� ��
�
0
.04
��W
R
� �
�
��
�
4 N
π �
1
� � �
�
W
R
� � �
�
�
4π ��
N
�
1
�� ��
其中�WR (�) 为矩形窗函数的幅度频率特性函数。 布莱克曼窗函数的最大旁瓣值比主瓣值低 57dB�但是主瓣宽度是矩形窗函数的主瓣宽度 的 3 倍�为 12π/N。
函数加权技术在数字信号处理中的重要地位。
下面介绍窗函数的基本概念。设 x(n)是一个长序列�w(n)是长度为 N 的窗函数�用 w(n)截断 x(n)�得到 N 点序列 xn= x(n) w(n)
� � � � � � � X N e j�
1 �
2π
π X e j� � W e j�� �� � d�
� � �
e
�
j�
� � �
N �1 �
2
� �
其中�WR (�) 为矩形窗函数的幅度频率特性函数。 汉宁窗函数的最大旁瓣值比主瓣值低 31dB�但是主瓣宽度比矩形窗函数的主瓣宽度增加 了 1 倍�为 8π/N。
调用方式 (1) w = hanning(n)�输入参数 n 是窗函数的长度�输出参数 w 是由窗函数的值组成的 n 阶向量。 (2) w = hanning(n,'symmetric')�与上面相类似。 (3) w = hanning(n,'periodic')�此函数返回包括为零点的窗函数的首尾两个元素。 例�生成一个长度为 50 的汉宁窗�并观察其频率特性(使用归一化的幅值和频率)� 结果如图所示。 程序
矩形窗及其频谱特。
2.2 三角窗函数
三角窗是最简单的频谱函数 W(e j� ) 为非负的一种窗函数。三角窗函数的时域形式可以表
示为� 当 n 为奇数时
当 n 为偶数时
w(k )
�
� � � �
2k , n �1 2(n �
k
� 1)
,
1� k n �1
� �
n �1 2
k�n
� n�1
2
w(k )
而要对频谱泄漏进行抑制可以通过窗函数加权抑制dft的等效滤波器的振幅特性的副瓣或用窗函数加权使有限长度的输入信号周期延拓后在边界上尽量减少不连续程度的方法实现
窗函数
本文对数字信号处理过程中用到的有关窗函数进行了说明�这些窗函数主要有�矩形 窗函数、三角窗函数、汉宁窗函数、海明窗函数、布莱克曼窗函数和凯塞窗函数等。
布莱克曼窗函数的时域形式可以表示为
w(k )
�
0.42
�
0.5
cos
� �
2
π
�
k N
�1 �
�
1
� �
�
0.08
cos
� �
4π
�
k �1 �
N
�
1
� �
它的频域特性为
k � 1,2,�, N
W (� )
�
0.42
WR �� �
�
0.25
��W R �
� �
�
�
�
2� N�
1
� � �
�
W
R
� �