窗函数的实现与分析

窗函数的实现与分析
窗函数的实现与分析

目录

摘要...................................................................... I

1.窗函数 (1)

2.窗函数的种类 (2)

2.1 基本窗函数 (4)

2.2 广义余弦窗 (5)

3.基于matlab的实现 (9)

3.1MATLAB软件简介 (9)

3.2各窗函数的图形 (11)

3.3各窗函数的幅频特性 (13)

4.频谱泄露 (15)

4.1频谱泄漏原理 (15)

4.2 产生机理 (15)

4.3窗函数的频谱泄漏的抑制方法 (16)

4.4窗函数的选择 (18)

5.实验结果分析 (19)

6.心得体会 (20)

参考文献 (21)

摘要

现代图像、语声、数据通信对线性相位的要求是普遍的。正是此原因,使得具有线性相位的FIR数字滤波器得到大力发展和广泛应用。

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

1.窗函数

1.1基本概念

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

窗函数的基本概念。设x (n )是一个长序列,w (n )是长度为N 的窗函数,用w (n )截断

x (n ),得到N 点序列x n (n ),即

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

在频域上则有

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

1.2设计原理

窗函数设计法的基本原理是用有限长单位脉冲响应序列()n h 逼近()n h d 。由于()n h d 往往是无限长序列,而且是非因果的,所以用窗函数()n ω将()n h d 截断,并进行加权处理,得到:

()n h 就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数()

ω

j e H 为

()

()()

()

?--?=

ππj j j d e π

21e θθωθωW e X X N ()()()

n n h n h d ω=()()n

j N n j e

n h e

H ωω

∑-==1

式中,N 为所选窗函数()n ω的长度。用窗函数法设计的滤波器性能取决于窗函数()n ω的类型及窗口长度N 的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。

2.窗函数的种类

对时间序列作傅里叶变换时,实际上要作周期延拓,如果取长序列的一段进行处理,还要先作截断。截断会引起频谱的泄漏问题,这是由于抽样后的离散序列与矩形截断序列相乘,在频域造成两者的频谱卷积形成的。为了避免频谱泄露对结果的影响,在对非周期信号作时间截断时,除尽量增加截断序列的宽度外,也应选其频谱的旁瓣较小的截断窗函数,以减小泄漏的影响。在信号处理中窗函数是一种除在给定区间之外取值均为0的实函数。常用的窗函数很多,例如矩形窗、三角窗、Hanning 窗、Hamming 窗、Parzen 窗、Kaiser 窗、Chebyshev 窗、Tukey 窗、Poisson 窗、Caushy 窗、Gaussian 窗和Blackman 窗等等,定义方式不同,性质也不同,可以根据实际需要来选择合适的截断窗函数减轻泄露问题。

窗函数在光谱分析、滤波器设计以及音频数据压缩等方面有广泛的应用。在这里,应用窗函数对输入数据进行截断(时域加窗),从而得到要处理的数据及其长度。

表2.1 MATLAB 窗函数

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

Chebwin

表2.2各种窗函数的基本参数

窗函数 旁瓣峰值幅度/dB 过渡带宽 阻带最小衰减/dB

矩形窗 -13 4π -12 三角形窗 -25 8π/N -25 汉宁窗 -31 8π/N -44 海明窗 -41 8π/N -53 不莱克曼窗 -57 12π/N -74 凯塞窗(α=7.865)

-57

10π/N

-80

这样选定窗函数类型和长度N 之后,求出单位脉冲响应()()()n n h n h d ω?=,并按照上式求出()ωj e H 。()ωj e H 是否满足要求,要进行演算。一般在()n h 尾部加零使长度满足2的整数次幂,以便用FFT 计算()ωj e H 。如果要观察细节,补零点数增多即可。如果()ωj e H 不满足要求,则要重新选择窗函数类型和长度N ,再次验算,直至满足要求。

如果要求线性相位特性,则()n h 还必须满足

()()n N h n h --±=1

根据上式中的正、负号和长度N 的奇偶性又将线性相位FIR 滤波器分成四类。要根据所设计的滤波特性正确选择其中一类,例如,要设计线性相位低通特性,可以选择

()()n N h n h --=1这一类,而不能选择()()n N h n h ---=1这一类。

主程序框图如图2.1所示。其中幅度特性要求用dB 表示。

画图时,用)(lg 20k H 打印幅度特性。第k 点对应的频率k N

k π

ω2=

。为使曲线包络更接近()ω

j e H 的幅度特性曲线,DFT 变换区间要选大些。例如窗口长度N=33时,可通过在()

n h 末尾补零的方法,使长度变为64,再进行64点DFT ,则可以得到更精确的幅度衰减特性曲线。

2.1 基本窗函数

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

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

??

?-≤≤==其他,010,1)()(N n n R n w N (公式2-1)

它的频域特性为

开始

读入窗口长度N

计算h d (n)

调用窗函数子程序求w(n)

调用子程序(函数)计算H(k)=DFT[h(n)]

调用绘图子程序(函数)绘制H(k)幅度相位曲线

结束

图2.1 主程序框图

计算h(n)= h d (n) w(n)

)

()()()()()()]

([)(22k H k H k H k jH k H k H n h DFT k H I R I R +=+==

()?

?? ????? ??=??

? ??--2sin 2sin e

e 21j j ωωωωN W N R 公式(2-2)

Boxcar 函数:生成矩形窗

调用方式w = boxcar (n):输入参数n 是窗函数的长度;输出参数w 是由窗函数的值组成的n 阶向量。从功能上讲,该函数又等价于w = ones(n,1)。 2.1.2 三角窗函数

三角窗是最简单的频谱函数)W(e j ω

为非负的一种窗函数。三角窗函数的时域形式可以

表示为: 当n 为奇数时

?????≤≤+++-+≤≤+=n

k n n k n n k n k

k w 21,1)1(2211,1

2)( 公式(2-3)

当n 为偶数时

?????≤≤+-≤≤-=n

k n n k n n k n

k k w 2,)1(221,1

2)( 公式(2-4)

它的频域特性为:

()()2

21j j 2sin 41sin 12e

e

??

????

?

???? ????? ??--=?

?

? ??--ωωωω

N N W N R (公式2-5) 三角窗函数的主瓣宽度为N

π

8,比矩形窗函数的主瓣宽度增加了一倍,但是它的旁瓣宽

度却小得多。

Triang 函数:生成三角窗

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

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

2.2 广义余弦窗

汉宁窗、海明窗和布莱克曼窗,都可以用一种通用的形式表示,这就是广义余弦窗。这些窗都是广义余弦窗的特例,汉宁窗又被称为余弦平方窗或升余弦窗,海明窗又被称为

改进的升余弦窗,而布莱克曼窗又被称为二阶升余弦窗。采用这些窗可以有效地降低旁瓣的高度,但是同时会增加主瓣的宽度。

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

-**-= (公式2-8)

ind)*cos(2C cos(ind)B A window *+*-= (公式2-9)

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

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

???? ?

???? ??

+-=1π2cos 15.0)(n k k w N k ,,2,1 = (公式2-10) 它的频域特性为:

()()??

?

?

?

--????

??????????? ??

-++??? ??--+=21j e 1π21π225.05.0N R R R N W N W W W ωωωωω (公式2-11)

其中,)(ωR W 为矩形窗函数的幅度频率特性函数。

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

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

注意:此函数不返回是零点的窗函数的首尾两个元素。 (2) w = hanning(n,'symmetric'):与上面相类似。

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

2.2.2 海明窗函数

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

?

?? ??

--=1π2cos 46.054.0)(N k k w N k ,,2,1 = (公式2-12)

它的频域特性为

???????

?? ??

-++??? ??--+=1π21π223.0)(54.0)(N W N W W W R R R ωωωω (公式2-13)

其中,)(ωR W 为矩形窗函数的幅度频率特性函数。

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

Hamming 函数:生成海明窗 调用方式

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

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

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

)

(1211)(020ββI N k I k w ??

?????

???? ??

---= 10-≤≤N k (公式2-16)

其中,)(0βI 是第1类变形零阶贝塞尔函数,β是窗函数的形状参数,由下式确定:

??

?

??<≤≤-+->-=21,050

21),21(07886.0)21(5482.050),7.8(1102

.04.0ααααααβ (公式2-17)

其中,α为凯塞窗函数的主瓣值和旁瓣值之间的差值(dB)。改变β的取值,可以对主

瓣宽度和旁瓣衰减进行自由选择。β的值越大,窗函数频谱的旁瓣值就越小,而其主瓣宽度就越宽。

Kaiser函数:生成凯塞窗

调用方式w = kaiser(n,beta):输入参数n是窗函数的长度;输入参数beta用于控制旁瓣的高度;输出参数w是由窗函数的值组成的n阶向量。n一定时,beta越大,其频谱的旁瓣就越小,但主瓣宽度相应的增加;当beta一定时,n发生变化,其旁瓣高度不会发生变化。

2.2.4 切比雪夫窗

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

Chebwin函数:生成切比雪夫窗

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

3.基于matlab的实现

3.1matlab软件简介

MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink 两大部分。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,代表了当今国际科学计算软件的先进水平。

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连matlab开发工作界面接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB具有以下六个特点:

1.编程效率高

用MATLAB编写程序犹如在演算纸上排列出公式与求解问题,MATLAB语言也可通俗地称为演算纸式的科学算法语言。由于它编写简单,所以编程效率高,易学易懂。

2.用户使用方便

MATLAB语言把编辑、编译、连接和执行融为一体,其调试程序手段丰富,调试速度快,需要学习时间少。它能在同一画面上进行灵活操作快速排除输入程序中的书写错误、语法错误以至语意错误,从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中它是一种比VB还要简单的语言。

3.扩充能力强

高版本的MATLAB语言有丰富的库函数,在进行复杂的数学运算时可以直接调用,而且MATLAB的库函数同用户文件在形成上一样,所以用户文件也可作为MATLAB的库函数来调用。因而,用户可以根据自己的需要方便地建立和扩充新的库函数,以便提高MATLAB使用效率和扩充它的功能。

4.语句简单,内涵丰富

MATLAB语言中最基本最重要的成分是函数,其一般形式为(a,6,c…)= fun(d,e ,f,…),即一个函数由函数名,输入变量d,e,f,…和输出变量a,b,c… .组成,同一函数名F,不同数目的输入变量(包括无输入变量)及不同数目的输出变量,代表着不同

的含义。这不仅使MATLAB的库函数功能更丰富,而大大减少了需要的磁盘空间,使得MATLAB编写的M文件简单、短小而高效。

5.高效方便的矩阵和数组运算

MATLAB语言像Basic、Fortran和C语言一样规定了矩阵的一系列运算符,它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。

6.方便的绘图功能

MATLAB的绘图是十分方便的,它有一系列绘图函数(命令),使用时只需调用不同的绘图函数(命令),在图上标出图题、XY轴标注,格绘制也只需调用相应的命令,简单易行。另外,在调用绘图函数时调整自变量可绘出不变颜色的点、线、复线或多重线。

3.2各窗函数的图形

用MATLAB编程绘制各种窗函数的形状,窗函数的长度为21。程序如下:clf;Nwin=21;n=0:Nwin-1;

figure(1)

for ii=1:4

switch ii

case 1

w=boxcar(Nwin); %矩形窗函数

stext='矩形窗函数';

case 2

w=hanning(Nwin); %hanning窗函数

stext='hanning窗函数 ';

case 3

w=hamming(Nwin); %hamming窗函数

stext='hamming窗函数';

case 4

w=triang(Nwin); %三角窗函数

stext='triang窗函数';

end

posplot=['2,2,' int2str(ii)];

subplot(posplot);

stem(n,w); %绘出窗函数

hold on

plot (n,w,'r'); %绘出包络线

xlabel('n');ylabel('w(n)');title(stext);

hold off;grid on;

end

程序运行结果如下图:

3.1各窗函数的图形

3.3各窗函数的幅频特性

用MATLAB编程,采用512个频率点绘制各窗函数的幅频特性。程序如下:clf;Nf=512; %窗函数复数频率特性的数据点数

Nwin=20; %窗函数数据长度

figure(1)

for ii=1:4

switch ii

case 1

w=boxcar(Nwin); %矩形窗

stext='矩形窗函数幅频';

case 2

w=hanning(Nwin); %汉宁窗

stext='hanning窗函数幅频';

case 3

w=hamming(Nwin); %海明窗

stext='hamming窗函数幅频';

case 4

w=triang(Nwin); %三角窗

stext='triang窗函数幅频 ';

end

[y,f]=freqz(w,1,Nf); %求解窗函数的幅频特性

mag=abs(y); %求得窗函数幅频特性

posplot=['2,2,' int2str(ii)];

subplot(posplot);

plot(f/pi,20* log10(mag/max(mag))); %绘制窗函数的幅频特性

xlabel('归一化频率');ylabel('振幅/dB');

title(stext);grid on;

end

程序运行结果如下图:

3.2各窗函数的幅频特性

4.频谱泄露

4.1频谱泄漏原理

对于频率为fs的正弦序列,它的频谱应该只是在fs处有离散谱。但是,在利用DFT 求它的频谱做了截短,结果使信号的频谱不只是在fs处有离散谱,而是在以fs为中心的频带范围内都有谱线出现,它们可以理解为是从fs频率上“泄露”出去的,这种现象称为频谱“泄露”。

在实际问题中遇到的离散时间序列x(n)通常是无限长序列,因而处理这个序列的时候需要将它截短。截短相当于将序列乘以窗函数w(n)。根据频域卷积定理,时域中x(n)和w(n)相乘对应于频域中它们的离散傅立叶变换X(jw)和W(jw)的卷积。

4.2 产生机理

窗函数修正了由于信号的非周期性并减小了频谱中由于泄露而带来的测量不准确性。快速傅里叶变换假定了时间信号是周期无限的。但在分析时,我们往往只截取其中的一部分,因此需要加窗以减小泄露。窗函数可以加在时域,也可以加在频域上,但在时域上加窗更为普遍。截断效应带来了泄漏,窗函数是为了减小这个截断效应,其设计成一组加权系数。例如,一个窗函数可以定义为:

w(t)=g(t) -T/2

w(t)=0 其他

g(t)是窗函数,T是窗函数的时间

待分析的数据x(t)则表示为:

x(t)=w(t)*x(t)'

x(t)'表示原始信号x(t)表示待分析信号。

加窗在时域上表现的是点乘,因此在频域上则表现为卷积。卷积可以被看成是一个平滑的过程。这个平滑过程可以被看出是由一组具有特定函数形状的滤波器,因此,原始信号中在某一频率点上的能量会结合滤波器的形状表现出来,从而减小泄漏。基于这个原理,人们通常在时域上直接加窗。

大多数的信号分析仪一般使用矩形窗(rectangular),汉宁(hann),flattop和其他的一些窗函数。

矩形窗函数:

w(k)=1

汉宁窗:

w(k)=0.5*(1-cos(2*pi*k/(N-1))) 0<=k<=N-1

由于加窗计算中衰减了原始信号的部分能量,因此对于最后的结果还需要加上修正系数。在线性谱分析中,一般使用幅度系数(amplitude correction),在功率谱中,一般使用能量系数(energy correction)。

4-2频谱泄漏

上图阐述了非整周期信号采样时造成泄露的理论原因。

4.3窗函数的频谱泄漏的抑制方法

如果一个信号由两个不同频率的正弦波叠加而成,则泄露可能使用户无法区分其各自的频率分量。如果它们的频率相差很多,而其中的一个分量的能量远大于另外一个,则能量小的那个频率可能完全会被从能量大的频率分量泄露过来的能量所覆盖。若它们的频率相近,则它们双方泄露的能量可能会使它们之间的频率点和它们原有频率点的能量保持一致,就是说,可能会使用户只看到一个频率峰值。

有两种方法可以避免泄露的发生。第一个方法是采集信号足够长,基本上可以覆盖到整个有效信号的时间跨度。这种方法经常在瞬态捕捉中被使用到,比如说冲击试验,如果捕捉的时间够长,捕捉到的信号可以一直包括了振动衰减为零的时刻。在这种情况下,可以不加窗函数。

第2种方法是对于信号的采样时间正好能和信号整周期倍数吻合,即一帧数据的长度正好是原始信号中频率的整数倍。比如一个正弦波的频率在1000Hz,因此采样频率就需

要设到8000Hz..每个正弦周期有8个采样点。1024点的数据正好涵盖了8个整周期。在这种情况下,没有窗函数也可以避免泄露的情况。

以下的图片显示了一个1000Hz频率的正弦波的频谱,其中没有泄露。

4-3-1

下图显示了一个1010Hz的正弦波,但是其频率谱中有一个较宽的泄露情况。该频率谱在1010Hz以外的地方也有着明显的能量值。可以看到,泄露的能量总是围绕着其原始的峰值。

4-3-2

很多种的窗函数被设计出来以减小这种泄露情况,以下的图就展示了对1010Hz正弦波加floattop窗之后得到的功率谱。

4-3-3

加上floattop窗之后,泄露明显的减小。正弦频率和噪音可以被很好的区别开。但是,这个窗函数仍然使得频率点的估计不是那么的精确。

4.4窗函数的选择

如果在测试中可以保证不会有泄露的发生,则不需要用任何的窗函数(在软件中可选择uniform)。但是如同刚刚讨论的那样,这种情况只是发生在时间足够长的瞬态捕捉和一帧数据中正好包含信号整周期的情况。

如果测试信号有多个频率分量,频谱表现的十分复杂,且测试的目的更多关注频率点而非能量的大小。在这种情况下,需要选择一个主畔够窄的窗函数,汉宁窗是一个很好的选择。

如果测试的目的更多的关注某周期信号频率点的能量值,比如,更关心其EUpeak,EUpeak-peak,EUrms或者EUrms2,那么其幅度的准确性则更加的重要,可以选择一个主畔稍宽的窗,flattop窗在这样的情况下经常被使用。

对冲击实验的数据进行分析时,因为在数据帧开始段的一些重要信息会被一般的窗函数所衰减,因此可以使用force/exponential窗。Force窗一移去了数据帧末端的噪声,对激励信号有用。而exponential窗则确保响应信号在末端的振动衰减为零值。

如果被测信号是随机或者未知的,选择汉宁窗

频谱分析中如何选择合适的窗函数

频谱分析中如何选择合适的窗函数 1、信号截断及能量泄漏效应 数字信号处理的主要数学工具是傅里叶变换。应注意到,傅里叶变换是研究整个时间域和频率域的关系。然而,当运用计算机实现工程测试信号处理时,不可能对无限长的信号进行测量和运算,而是取其有限的时间片段进行分析。做法是从信号中截取一个时间片段,然后用观察的信号时间片段进行周期延拓处理,得到虚拟的无限长的信号,然后就可以对信号进行傅里叶变换、相关分析等数学处理。 周期延拓后的信号与真实信号是不同的,下面从数学的角度来看这种处理带来的误差情况。设有余弦信号x(t)在时域分布为无限长(- ∞,∞),将截断信号的谱XT(ω)与原始信号的谱X(ω)相比,它已不是原来的两条谱线,而是两段振荡的连续谱。这表明原来的信号被截断以后,其频谱发生了畸变,原来集中在f0处的能量被分散到两个较宽的频带中去了,这种现象称之为频谱能量泄漏(Leakage)。 信号截断以后产生的能量泄漏现象是必然的,因为窗函数w(t)是一个频带无限的函数,所以即使原信号x(t)是限带宽信号,而在截断以后也必然成为无限带宽的函数,即信号在频域的能量与分布被扩展了。又从采样定理可知,无论采样频率多高,只要信号一经截断,就不可避免地引起混叠,因此信号截断必然导致一些误差,这是信号分析中不容忽视的问题。 如果增大截断长度T,即矩形窗口加宽,则窗谱W(ω)将被压缩变窄(π/T减小)。虽然理论上讲,其频谱范围仍为无限宽,但实际上中心频率以外的频率分量衰减较快,因而泄漏误差将减小。当窗口宽度T趋于无穷大时,则谱窗W(ω)将变为δ(ω)函数,而δ(ω)与X(ω)的卷积仍为H(ω),这说明,如果窗口无限宽,即不截断,就不存在泄漏误差。 为了减少频谱能量泄漏,可采用不同的截取函数对信号进行截断,截断函数称为窗函数,简称为窗。泄漏与窗函数频谱的两侧旁瓣有关,如果两侧p旁瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱,为此,在时间域中可采用不同的窗函数来截断信号。 2、常用窗函数 实际应用的窗函数,可分为以下主要类型: 幂窗:采用时间变量某种幂次的函数,如矩形、三角形、梯形或其它时间函数x(t)的高次幂;三角函数窗:应用三角函数,即正弦或余弦函数等组合成复合函数,例如汉宁窗、海明窗等;指数窗。:采用指数时间函数,如e-st形式,例如高斯窗等。

几种常见窗函数及其MATLAB程序实现

几种常见窗函数及其MATLAB程序实现 2013-12-16 13:58 2296人阅读评论(0) 收藏举报 分类: Matlab(15) 数字信号处理中通常是取其有限的时间片段进行分析,而不是对无限长的信号进行测量和运算。具体做法是从信号中截取一个时间片段,然后对信号进行傅里叶变换、相关分析等数学处理。信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的。在FFT分析中为了减少或消除频谱能量泄漏及栅栏效应,可采用不同的截取函数对信号进行截短,截短函数称为窗函数,简称为窗。 泄漏与窗函数频谱的两侧旁瓣有关,对于窗函数的选用总的原则是,要从保持最大信息和消除旁瓣的综合效果出发来考虑问题,尽可能使窗函数频谱中的主瓣宽度应尽量窄,以获得较陡的过渡带;旁瓣衰减应尽量大,以提高阻带的衰减,但通常都不能同时满足这两个要求。 频谱中的如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱。不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。信号的加窗处理,重要的问题是在于根据信号的性质和研究目的来选用窗函数。图1是几种常用的窗函数的时域和频域波形,其中矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低,如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用矩形窗,例如测量物体的自振频率等;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高;如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。表1 是几种常用的窗函数的比较。 如果被测信号是随机或者未知的,或者是一般使用者对窗函数不大了解,要求也不是特别高时,可以选择汉宁窗,因为它的泄漏、波动都较小,并且选择性也较高。但在用于校准时选用平顶窗较好,因为它的通带波动非常小,幅度误差也较小。

窗函数作用

数字信号处理的主要数学工具是博里叶变换.而傅里叶变换是研究整个时间域和频率域的关系。不过,当运用计算机实现工程测试信号处理时,不可能对无限长的信号进行测量和运算,而是取其有限的时间片段进行分析。做法是从信号中截取一个时间片段,然后用观察的信号时间片段进行周期延拓处理,得到虚拟的无限长的信号,然后就可以对信号进行傅里叶变换、相关分析等数学处理。无线长的信号被截断以后,其频谱发生了畸变,原来集中在f(0)处的能量被分散到两个较宽的频带中去了(这种现象称之为频谱能量泄漏)。 为了减少频谱能量泄漏,可采用不同的截取函数对信号进行截断,截断函数称为窗函数,简称为窗。 信号截断以后产生的能量泄漏现象是必然的,因为窗函数w(t)是一个频带无限的函数,所以即使原信号x(t)是限带宽信号,而在截断以后也必然成为无限带宽的函数,即信号在频域的能量与分布被扩展了。又从采样定理可知,无论采样频率多高,只要信号一经截断,就不可避免地引起混叠,因此信号截断必然导致一些误差。 泄漏与窗函数频谱的两侧旁瓣有关,如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱,为此,在时间域中可采用不同的窗函数来截断信号。 实际应用的窗函数,可分为以下主要类型: a) 幂窗--采用时间变量某种幂次的函数,如矩形、三角形、梯形或其它时间(t)的高次幂; b) 三角函数窗--应用三角函数,即正弦或余弦函数等组合成复合

函数,例如汉宁窗、海明窗等; c) 指数窗--采用指数时间函数,如形式,例如高斯窗等。 下面介绍几种常用窗函数的性质和特点。 1) 矩形窗 矩形窗属于时间变量的零次幂窗。矩形窗使用最多,习惯上不加窗就是使信号通过了矩形窗。这种窗的优点是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,导致变换中带进了高频干扰和泄漏,甚至出现负谱现象。 2) 三角窗 三角窗亦称费杰(Fejer)窗,是幂窗的一次方形式。与矩形窗比较,主瓣宽约等于矩形窗的两倍,但旁瓣小,而且无负旁瓣。 3) 汉宁(Hanning)窗 汉宁窗又称升余弦窗,汉宁窗可以看作是3个矩形时间窗的频谱之和,或者说是3个 sine(t)型函数之和,而括号中的两项相对于第一个谱窗向左、右各移动了π/T,从而使旁瓣互相抵消,消去高频干扰和漏能。可以看出,汉宁窗主瓣加宽并降低,旁瓣则显著减小,从减小泄漏观点出发,汉宁窗优于矩形窗.但汉宁窗主瓣加宽,相当于分析带宽加宽,频率分辨力下降。 4) 海明(Hamming)窗 海明窗也是余弦窗的一种,又称改进的升余弦窗。海明窗与汉宁窗都是余弦窗,只是加权系数不同。海明窗加权的系数能使旁瓣达到更小。分析表明,海明窗的第一旁瓣衰减为一42dB.海明窗的频谱

FIR滤波器的窗函数设计法及性能比较

MATLAB课程设计报告 学院:地球物理与石油资源学院 班级: 姓名: 学号: 班内编号: 指导教师: 完成日期: 2013年6月3日

一、 题目 FIR 滤波器的窗函数设计法及性能比较 1. FIR 滤波器简介 数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR )滤波器和有限冲激响应(FIR )滤波器。与IIR 滤波器相比,FIR 滤波器的主要特点为: a. 线性相位;b.非递归运算。 2. FIR 滤波器的设计 FIR 滤波器的设计方法主要有三种:a.窗函数设计法;b.频率抽样发;c.最小平法抽样法; 这里我主要讨论在MA TLAB 环境下通过调用信号分析与处理工具箱的几类窗函数来设计滤波器并分析与比较其性能。窗函数法设计FIR 滤波器的一般步骤如下: a. 根据实际问题确定要设计的滤波器类型; b. 根据给定的技术指标,确定期望滤波器的理想频率特性; c. 求期望滤波器的单位脉冲响应; d. 求数字滤波器的单位脉冲响应; e. 应用。 常用的窗函数有 同。 时与布莱克曼窗结果相当时与海明窗结果相同; 时与矩形窗一致;当当885.84414.50]!)2/([1)(120===+=∑∞ =x x x m x x I m m 3.窗函数的选择标准 1. 较低的旁瓣幅度,尤其是第一旁瓣; 2. 旁瓣幅度要下降得快,以利于增加阻带衰减; 3. 主瓣宽度要窄,这样滤波器过渡带较窄。 函数,可定义为是零阶式中Bessel x I n R I N n I n w window Kaiser n R N n N n n w window Balckm an n R N n n w window Ham m ing n R N n n w window Hanning N N N N )()5.2.9()(]) (})]1/(2[1{[)()4()4.2.9()()]14cos(08.0)12cos( 5.042.0[)()3()3.2.9()()]12cos( 46.054.0[)()2() 2.2.9()()]1cos( 5.05.0[)()1(0020ββππππ--=-+--=--=--=

实验三窗函数的特性分析

数字信号处理及实验实验报告 实验题目窗函数的特性分析 姓名MYT 组别班级学号 【实验目的】 分析各种窗函数的时域和频率特性,灵活运用窗函数分析信号频谱和设计FIR数字滤波器。 【实验原理】 在确定信号谱分析、随机信号功率谱估计以及FIR数字滤波器设计中,窗函数的选择对频谱分析和滤波器设计都起着重要的作用。在确定信号谱分析和随机信号功率谱估计中,截短无穷长的序列会造成频率泄漏,影响频谱分析的精度和质量。合理选取窗函数的类型,可以改善泄漏现象。在FIR数字滤波器设计中,截短无穷长的系统单位脉冲序列会造成FIR滤波器的幅度特性产生波动,且出现过渡带。 【实验结果与数据处理】 1、分析并绘出常用窗函数的时域特性波形。 程序如下: clc,clear,close all N=50 figure(1) W1=boxcar(N); stem([0:N-1],W1); figure(2) W2=hanning(N); stem([0:N-1],W2); figure(3) W3=hamming(N); stem([0:N-1],W3); figure(4) W4=blackman(N); stem([0:N-1],W4); figure(5) W5=bartlett(N); stem([0:N-1],W5); figure(6) W6=kaiser(N,2*N); stem([0:N-1],W6);

时域波形图如下: 图 1 矩形窗 图 2 汉宁窗 图 3 汉明窗

图 4 布莱克曼窗 图 5 Bartlett窗 图 6 凯泽窗

2、研究凯泽窗(Kaiser)的参数选择对其时域和频域的影响。 (1)固定beta=4,分别取N=20,60,110。 clc,clear,close all N1=20;N2=60;N3=110; beat=4; figure(1) subplot(3,2,[1,2]) W=kaiser(N1,beat); stem([0:N1-1],W); subplot(3,2,[3,4]); Ww=kaiser(N2,beat); stem([0:N2-1],Ww); subplot(3,2,[5,6]); WW=kaiser(N3,beat); stem([0:N3-1],WW); figure(2) subplot(3,2,[1,2]) W1=fft(W,N1) plot([0:N1-1],abs(fftshift(W1))) subplot(3,2,[3,4]); W2=fft(Ww,N2) plot([0:N2-1],abs(fftshift(W2))) subplot(3,2,[5,6]); W3=fft(WW,N3) plot([0:N3-1],abs(fftshift(W3))) 图7 凯泽窗频域图图8 凯泽窗时域图 (2)固定N=60,分别取beta=1,5,11。 clc,clear,close all beat1=1;beat2=5;beat3=11; N=60; figure(1) subplot(3,2,[1,2])

Parzen窗方法的分析和研究

对Parzen窗/PNN算法的学习和研究报告 姓名:吴潇学号:1333755 1、Parzen窗方法综述、发展历史及现状 模式识别领域的非参数估计方法大致可以分为两类。第一种类型是先估计出概率密度函数的具体形式,然后再利用这个估计出来的概率密度函数对样本进行分类。第二种类型是,不估计具体的概率密度函数,而直接根据样本进行分类。Parzen窗方法就是属于第一种类型的非参数估计方法,概率神经网络(PNN)是它的一种实现方式。Parzen窗方法的基本思想是利用一定范围内的各点密度的平均值对总体密度函数进行估计。 Parzen窗(Parzen window)又称为核密度估计(kernel density estimation),是概率论中用来估计未知概率密度函数的非参数方法之一。该方法由Emanuel Parzen于1962年在The Annals of Mathematical Statistics杂志上发表的论文“On Estimation of a Probability Density Function and Mode”中首次提出。Nadaraya和Watson最早把这一方法用于回归法中。Specht把这一方法用于解决模式分类的问题,并且在1990年发表的论文“Probabilistic neural networks”中提出了PNN网络的硬件结构。Ruppert和Cline基于数据集密度函数聚类算法提出了修订的核密度估计方法,对Parzen窗做了一些改进。 Parzen窗方法虽然是在上个世纪60年代提出来的,已经过去了45年的时间,看上去是一种很“古老”的技术,但是现在依然有很多基于Parzen窗方法的论文发表。这说明Parzen 窗方法的确有很强的生命力和实用价值,虽然它也存在很多缺点。 2、Parzen窗方法和概率神经网络 Parzen窗方法就是基于当样本个数n非常大的时候,有公式成立这样的一个事实而提出的。通过计算在一个区域R内的频数k/n,用这个频数来估计这一点的频率,从而得到这一点的概率。当n趋于无穷大的时候,p(x)等于该点的实际概率。这种方法就是模式识别领域中的非参数估计方法。 Parzen窗方法就是通过构造一系列的区域:,在这些区域内计算k/n。记V n为区域R n的体积,k n为落在区域R n中的样本个数,表示对的第n次估计,于是有: 为了保证能够收敛到,必须满足以下3个条件: 1)2)3) Parzen窗方法的实质就是通过对上面的区域R n,每次按照来构造区域序列,使区域逐渐收缩到一个给定的初始区间。它不断收缩区域,按照公式把区域不断缩小,而不关心该

实验六、用窗函数法设计FIR滤波器分析解析

实验六 用窗函数法设计 FIR 滤波器 一、实验目的 (1) 掌握用窗函数法设计FIR 数字滤波器的原理和方法。 (2) 熟悉线性相位FIR 数字滤波器特性。 (3) 了解各种窗函数对滤波特性的影响。 二、实验原理 滤波器的理想频率响应函数为H d (e j ω ),则其对应的单位脉冲响应为: h d (n) = ?-π π ωωωπ d e e H n j j d )(21 窗函数设计法的基本原理是用有限长单位脉冲响应序列h(n)逼h d (n)。由于h d (n)往往是无 限长序列,且是非因果的,所以用窗函数。w(n)将h d (n)截断,并进行加权处理: h(n) = h d (n) w(n) h(n)就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数H(e j ω )为: H(e j ω ) = ∑-=-1 )(N n n j e n h ω 如果要求线性相位特性,则h (n )还必须满足: )1()(n N h n h --±= 可根据具体情况选择h(n)的长度及对称性。 用窗函数法设计的滤波器性能取决于窗函数w(n)的类型及窗口长度N 的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。 三、实验步骤 1. 写出理想低通滤波器的传输函数和单位脉冲响应。 2. 写出用四种窗函数设计的滤波器的单位脉冲响应。 3. 用窗函数法设计一个线性相位FIR 低通滤波器,用理想低通滤波器作为逼近滤波器,截止频率ωc =π/4 rad ,选择窗函数的长度N =15,33两种情况。要求在两种窗口长度下,分别求出h(n),打印出相应的幅频特性和相频特性曲线,观察3dB 带宽和阻带衰减; 4 用其它窗函数(汉宁窗(升余弦窗)、哈明窗(改进的升余弦窗)、布莱克曼窗) 设计该滤波器,要求同1;比较四种窗函数对滤波器特性的影响。 四、实验用MATLAB 函数 可以调用MATLAB 工具箱函数fir1实现本实验所要求的线性相位FIR-DF 的设计,调用一维快速傅立叶变换函数fft 来计算滤波器的频率响应函数。

实验六 用窗函数设计FIR滤波器(附思考题程序)

实验六 用窗函数设计FIR 滤波器 1.实验目的 (1) 熟悉FIR 滤波器设计的方法和原理 (2) 掌握用窗函数法设计FIR 滤波器的方法和原理,熟悉滤波器的特性 (3) 了解各种窗函数滤波器特性的影响 2.实验原理 FIR 滤波器的设计方法主要有三种:窗函数法、频率取样法、切比雪夫等波纹逼近法。FIR 滤波器的设计是要寻求一系统函数)(z H ,使其频率响应)(ωj e H 逼近滤波器要求的理想频率响应()j d H e ω,其对应的单位脉冲响应)(n h d 。 (1)用窗函数设计FIR 滤波器的基本方法 在时域用一个窗函数截取理想的)(n h d 得到)(n h ,以有限长序列)(n h 近似逼近理想的)(n h d ;在频域用理想的)(ωj d e H 在单位圆上等角度取样得到h(k),根据h(k)得到H(z)将逼近理想的Hd(z)。 设理想滤波器)(ωj d e H 的单位脉冲响应为)(n h d 。以低通线性相位FIR 数字滤波器为 例。 )(n h d 一般是无限长的、非因果的,不能直接作为FIR 滤波器的单位脉冲响应。要想得到一个因果的有限长的滤波器h(n),最直接的方法是截断)()()(n w n h n h d =,即截取为有限长因果序列,并用合适的窗函数进行加权作为FIR 滤波器的单位脉冲响应。按照线性相位滤波器的要求,h(n)必须是偶对称的。对称中心必须等于滤波器的延时常数,即 用矩形窗设计的FIR 低通滤波器,所设计滤波器的幅度函数在通带和阻带都呈现出振荡现象,且最大波纹大约为幅度的9%,(现象称为吉布斯(Gibbs )效应)。 (2)典型的窗函数 (a )矩形窗(Rectangle Window) 其频率响应和幅度响应分别为: 21)2/sin()2/sin()(--=N j j e N e W ωωωω,) 2/sin()2/sin()(ωωωN W R = 在matlab 中调用w=boxcar(N)函数,N 为窗函数的长度 (b )三角形窗(Bartlett Window) 其频率响应为:212])2/sin()4/sin([2)(--=N j j e N N e W ωω ωω 在matlab 中调用w=triang(N)函数,N 为窗函数的长度 (c )汉宁(Hanning)窗,又称升余弦窗 其频率响应和幅度响应分别为:

(实验三窗函数的特性分析)

实验报告 实验课程:数字信号处理实验开课时间:2020—2021 学年秋季学期 实验名称:窗函数的特性分析实验时间:2020年9月16日星期三 学院:物理与电子信息学院年级:大三班级:182 学号:1843202000234 姓名:武建璋 一、实验预习

(2)固定N=60,分别取beta=1,5,11。clc,clear,close all beat1=1;beat2=5;beat3=11; N=60; figure(1) subplot(3,2,[1,2]) W=kaiser(N,beat1); stem([0:N-1],W); subplot(3,2,[3,4]); Ww=kaiser(N,beat2); stem([0:N-1],Ww); subplot(3,2,[5,6]); WW=kaiser(N,beat3); stem([0:N-1],WW); figure(2) subplot(3,2,[1,2]) W1=fft(W,N) plot([0:N-1],abs(fftshift(W1))) subplot(3,2,[3,4]); W2=fft(Ww,N) plot([0:N-1],abs(fftshift(W2))) subplot(3,2,[5,6]); W3=fft(WW,N) plot([0:N-1],abs(fftshift(W3)))

4、某序列为x[k] = (11πk/20) + cos(9πk/20),使用fft函数分析其频谱。(1) 利用不同宽度N的矩形窗截短该序列,N分别为20,40,160,观察不同长度N 的窗对谱分析结果的影响。 clc,clear,close all N1=20;N2=40;N3=160; k1=0:N1;k2=0:N2;k3=0:N3; X1=0.5.*cos((11*pi*k1)/20)+cos((9*pi*k1)/20) X2=0.5.*cos((11*pi*k2)/20)+cos((9*pi*k2)/20) X3=0.5.*cos((11*pi*k3)/20)+cos((9*pi*k3)/20) figure(1) subplot(3,2,[1,2]) W1=fft(X1,N1) plot([0:N1-1],abs(fftshift(W1))) subplot(3,2,[3,4]); W2=fft(X2,N2) plot([0:N2-1],abs(fftshift(W2))) subplot(3,2,[5,6]); W3=fft(X3,N3) plot([0:N3-1],abs(fftshift(W3))) figure(2) subplot(3,2,[1,2]) W=abs(fftshift(W1)) stem([0:N1-1],W); subplot(3,2,[3,4]); Ww=abs(fftshift(W2))

典型环境传递函数及模拟电路的构成方式资料

姓名:指导老师:成绩: 学院:专业:班级: 实验内容: 年月日其他组员及各自发挥作用: 独立完成实验内容,并进行了验证。 一、实验时间: 2014年9月22日 二、实验地点: 课外Multisim进行仿真,课堂上用labACT试验箱进行验证 三、实验目的: 1、了解labACT试验箱的模拟电路的基本组成、工作原理及使用方法 2、掌握典型环境传递函数及模拟电路的构成方式 3、熟悉各种典型环境的阶跃响应曲线 4、理解各个典型环境在系统中所起的作用 四、实验设备与软件 1、Multisim12电路设计与仿真软件 2、labACT实验台与虚拟示波器 五、实验原理 在实际生产中系统往往很复杂,但不管多么复杂的系统,在分析时都可以看成是由不同的基本环节构成。例如:由电子线路组成的放大器是最常见的比例环节;在机械系统中的齿轮减速器是一个比例环节。积分和惯性环节也是非常常见的,如:液位控制系统中阀控液压缸可看成积分环节,而直流电机的励磁回路就是一个惯性环节。比例环节可以改变输入信号的放大倍数;积分环节具有记忆功能,常用来改善系统的稳定性能;微分环节则常用来改善系统的动态特性。

六、实验内容、方法、过程与分析 1、实验内容:分别在Multisim12和labACT模拟试验箱观测记录比例(K)、积分((T i s)-1)、比例积分(1+(T i s)-1)、惯性环节((1+T i s)-1)的阶跃响应曲线。 2、实验方法: (1)Multisim仿真(2)labACT试验箱验证 3、实验过程与分析 A、单位阶跃 (1)比例环节一般采用反响输入的方式,Multisim原理图及仿真结果如下; 图1 比例环节原理图

典型环节及其阶跃响应.

自动控制原理实验 典型环节及其阶跃相应 .1 实验目的 1. 学习构成典型环节的模拟电路,了解电路参数对环节特性的影响。 2. 学习典型环节阶跃响应的测量方法,并学会由阶跃响应曲线计算典型环节的传递函数。 3. 学习用Multisim 、MATLAB 仿真软件对实验内容中的电路进行仿真。 .2 实验原理 典型环节的概念对系统建模、分析和研究很有用,但应强调典型环节的数学模型是对各种物理系统元、部件的机理和特性高度理想化以后的结果,重要的是,在一定条件下, 典型模型的确定能在一定程度上忠实地描述那些元、部件物理过程的本质特征。 1.模拟典型环节是将运算放大器视为满足以下条件的理想放大器: (1) 输入阻抗为∞。流入运算放大器的电流为零,同时输出阻抗为零; (2) 电压增益为∞: (3) 通频带为∞: (4) 输入与输出之间呈线性特性: 2.实际模拟典型环节: (1) 实际运算放大器输出幅值受其电源限制是非线性的,实际运算放大器是有惯性的。 (2) 对比例环节、惯性环节、积分环节、比例积分环节和振荡环节,只要控制了输入量的大小或是输入量施加的时间的长短(对于积分或比例积分环节),不使其输出工作在工作期间内达到饱和值,则非线性因素对上述环节特性的影响可以避免.但对模拟比例微分环节和微分环节的影响则无法避免,其模拟输出只能达到有限的最高饱和值。 (3) 实际运放有惯性,它对所有模拟惯性环节的暂态响应都有影响,但情况又有较大的不同。 3.各典型环节的模拟电路及传递函数 (1) 比例环节的模拟电路如图.1所示,及传递函数为: 1 2)(R R S G -=

.1 比例环节的模拟电路 2. 惯性环节的模拟电路如图.2所示,及传递函数为: 其中1 2R R K = T=R 2 C 图.2 惯性环节的模拟电路 3. 积分环节的模拟电路如图.3所示,其传递函数为: 1 11R /1/)(21212212+-=+-=+-=-=TS K CS R R R CS R CS R Z Z S G

窗函数的实现与分析

目录 摘要...................................................................... I 1.窗函数 (1) 2.窗函数的种类 (2) 2.1 基本窗函数 (4) 2.2 广义余弦窗 (5) 3.基于matlab的实现 (9) 3.1MATLAB软件简介 (9) 3.2各窗函数的图形 (11) 3.3各窗函数的幅频特性 (13) 4.频谱泄露 (15) 4.1频谱泄漏原理 (15) 4.2 产生机理 (15) 4.3窗函数的频谱泄漏的抑制方法 (16) 4.4窗函数的选择 (18) 5.实验结果分析 (19) 6.心得体会 (20) 参考文献 (21)

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

实验三 窗函数的特性分析

本科学生实验报告 学号*************** 姓名*************** 学院物电学院 专业、班级*************** 实验课程名称数字信号分析与处理 教师及职称*************** 开课学期2015 至2016学年下学期 填报时间2016 年 3 月25 日

云南师范大学教务处编印 一、验设计方案 实验序号实验三实验名称窗函数的特性分析 实验时间2016/3/25 实验室同析楼三栋313实验室 1.实验目的 分析各种窗函数的时域和频域特性,灵活应用窗函数分析信号频谱和设计FIR数字滤波器。

2. 实验原理、实验流程或装置示意图 在确定信号谱分析、随机信号功率谱估计以及FIR 数字滤波器设计中,窗函数的选择对频谱分析和滤波器设计都起着重要的作用。在确定信号谱分析和随机信号功率谱估计中,截短无穷长的序列会造成频率泄露,影响频率普分析的精确度和质量。合理选取窗函数的类型,可以改善泄露现象。在FIR 数字滤波器设计中,截短无穷长的系统单位脉冲序列会造成FIR 滤波器的幅度特性产生波动,且出出现过渡带。 【例1.3.1】 写出分析长度N=51点矩形窗的时域波行和频谱的MATLAB 程序。 [解] N=51; w=boxcar(N); W=fft(w,256); subplot(2,1,1); stem([0:N-1],w); subplot(2,1,2); plot([-128:127],abs(fftshift(W))); 运算结果如图1.3.1所示 5 10 15 20 25 30 35 40 45 50 00.20.40.60.81-150 -100-50050100150 020 40 60 图1.3.1 矩形窗的时域波形和频谱 3.实验设备及材料 计算机,MATLAB 软件 4.实验方法步骤及注意事项 注意事项: (1)在使用MATLAB 时应注意中英输入法的切换,在中文输入法输入程序时得到的程序是错误的;

实验六 窗函数及其对信号频谱的影响

实验六窗函数及其对信号频谱的影响 一. 实验目的 1. 掌握几种典型窗函数的性质、特点,比较几种典型的窗函数对信号频谱的影响。 2. 通过实验认识它们在克服FFT 频谱分析的能量泄漏和栅栏效应误差中 的作用,以便在实际工作中能根据具体情况正确选用窗函数 二. 实验原理 1. 信号的截断及能量泄漏效应 数字信号处理的主要数学工具是博里叶变换.应注意到,傅里叶变换是研究整个时间域和频率域的关系。然而,当运用计算机实现工程测试信号处理时,不可能对无限长的信号进行测量和运算,而是取其有限的时间片段进行分析。做法是从信号中截取一个时间片段,然后用观察的信号时间片段进行周期延拓处理,得到虚拟的无限长的信号,然后就可以对信号进行傅里叶变换、相关分析等数学处理。 图6.1 信号的周期延拓 周期延拓后的信号与真实信号是不同的,下面我们就从数学的角度来看这种处理带来的误差情况。设有余弦信号x(t)在时域分布为无限长(- ∞,∞),当用矩形窗函数w(t)与其相乘时,得到截断信号xT(t) =x(t)w(t)。根据博里叶变换关系,余弦信号的频谱X(ω)是位于ω。处的δ函数,而矩形窗函数w(t)的谱为sinc(ω)函数,按照频域卷积定理,则截断信号xT(t) 的谱XT(ω) 应为: 将截断信号的谱XT(ω)与原始信号的谱X(ω)相比较可知,它已不是原来的两条谱线,而是两段振荡的连续谱.这表明原来的信号被截断以后,其频谱发生了畸变,原来集中在f0处的能量被分散到两个较宽的频带中去了,这种现象称之为频谱能量泄漏(Leakage)。

信号截断以后产生的能量泄漏现象是必然的,因为窗函数w(t)是一个频带无限的函数,所以即使原信号x(t)是限带宽信号,而在截断以后也必然成为无限带宽的函数,即信号在频域的能量与分布被扩展了。又从采样定理可知,无论采样频率多高,只要信号一经截断,就不可避免地引起混叠,因此信号截断必然导致一些误差,这是信号分析中不容忽视的问题。 如果增大截断长度T,即矩形窗口加宽,则窗谱W(ω)将被压缩变窄(π/T 减小)。虽然理论上讲,其频谱范围仍为无限宽,但实际上中心频率以外的频率分量衰减较快,因而泄漏误差将减小。当窗口宽度T趋于无穷大时,则谱窗W(ω)将变为δ(ω)函数,而δ(ω)与X(ω)的卷积仍为X(ω),这说明,如果窗口无限宽,即不截断,就不存在泄漏误差。 图6.2 信号截断与能量泄露现象 为了减少频谱能量泄漏,可采用不同的截取函数对信号进行截断,截断函数称为窗函数,简称为窗。泄漏与窗函数频谱的两侧旁瓣有关,如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱,为此,在时间域中可采用不同的窗函数来截断信号。 2. 窗函数 实际应用的窗函数,可分为以下主要类型: a)幂窗--采用时间变量某种幂次的函数,如矩形、三角形、梯形或其它时间(t)的高次幂; b) 三角函数窗--应用三角函数,即正弦或余弦函数等组合成复合函数,例如汉宁窗、海明窗等; c) 指数窗--采用指数时间函数,如形式,例如高斯窗等。 不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的,但是我们可以通过选择不同的窗函数对它们的影响进行抑制。图6.5是几

2第二节传递函数解析

第二节控制系统的传递函数

传递函数是经典控制理论中最重要的数学模型之一。利用传递函数,在系统的分析和综合中可解决如下问题: 不必求解微分方程就可以研究初始条件为零的系统在输入信号作用下的动态过程。 可以研究系统参数变化或结构变化对系统动态过程的影响,因而使分析系统的问题大为简化。 可以把对系统性能的要求转化为对系统传递函数的要求,使综合问题易于实现。

一、传递函数的基本概念 令初始值为零,将上式求拉氏变换,得 ) ()...()()...(01110111s X b s b s b s b s Y a s a s a s a m m m m n n n n ++++=++++----当传递函数和输入已知时,Y (s )=G (s ) X (s )。通过拉氏反变换可求传递函数的定义:线性定常系统在零初始条件下输出量的拉氏变换与输入量的拉氏变换之比。 0 11 10 11 1......)()()(a s a s a s a b s b s b s b s X s Y s G n n n n m m m m ++++++++==----称为元件和系统的传递函数 )~0,~0(,m j n i b a j i ==式中:x (t ) — 输入,y (t ) — 输出 为常系数 ) ()(...)()()()(...)()(01) 1(1)(01) 1(1) (t x b t x b t x b t x b t y a t y a t y a t y a m m m m n n n n +'+++=+'+++----设系统或元件的微分方程为:

[关于传递函数的几点说明] ?传递函数的概念适用于线性定常系统,它与线性常系数微分 方程一一对应。且与系统的动态特性一一对应。 ?传递函数不能反映系统或元件的学科属性和物理性质。物理 性质和学科类别截然不同的系统可能具有完全相同的传递函数。而研究某传递函数所得结论可适用于具有这种传递函数的各种系统。 ?传递函数仅与系统的结构和参数有关,与系统的输入无关。 只反映了输入和输出之间的关系,不反映中间变量的关系。 ?传递函数的概念主要适用于单输入单输出系统。若系统有多 个输入信号,在求传递函数时,除了一个有关的输入外,其它的输入量一概视为零。 ?传递函数忽略了初始条件的影响。 ?传递函数是s的有理分式,对实际系统而言分母的阶次n大于 分子的阶次m,此时称为n阶系统。

MATLAB设计数字带通FIR滤波器的几种窗函数的比较

课题介绍 通过平时所学、书本内容和网络上了解的知识,我们小组讨论决定对MATLAB结合窗函数设计一个数字带通FIR滤波器工程中涉及的几个窗函数方法优劣好坏用图形形象的进行比较,以MATLAB软件为工具探讨出一个失真小高效的设计方法。数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。与IIR滤波器相比,FIR的实现是非递归的,总是稳定的;更重要的是,FIR滤波器在满足幅频响应要求的同时,可以获得严格的线性相位特性。根据FIR滤波器的原理,提出了FIR滤波器的窗函数设计法,给出了在MATLAB环境下,用窗函数法设计FIR滤波器的过程和设计实例。通过利用不同的窗函数方法设计FIR滤波器,对所设计的滤波器进行分析比较,得出各种方法设计的滤波器的优缺点及其不同的使用场合,从而可以在设计滤波器时能够正确的选择FIR数字滤波器的窗函数的选取及设计方法。 数字滤波技术 数字滤波,就是通过一定的计算或判断程序减少干扰在有用信号中的比重,所以故实质上是一种程序滤波。与此对应的就是模拟滤波,模拟滤波主要无源绿波(直接用电阻、电容、电感等不外接电源的元件组成的)与有源滤波(如运算放大器等需要外接电源组成的),其目的是将信号中的噪音和干扰滤去或者将希望得到的频率信号滤出为我所用。数字滤波的出现克服了模拟滤波的很多不足,具有以下优点: 1.是用程序实现的,不需要增加硬设备,所以可靠性高,稳定性好。 2.可以对频率很低的信号实现滤波,克服了模拟滤波的缺陷。 3.可以根据信号的不同,采用不同的滤波方法或参数,具有灵活、方便、功能强的特点。 本文主要对FIR滤波器加以介绍。

信号谱分析——窗函数

实验三、信号的谱分析 五、窗函数window 1.通过MATLAB的help功能,探究一下window可以支持的窗函数类型。 输入help window,举例出现的函数类型如下: @bartlett - Bartlett window. @barthannwin - Modified Bartlett-Hanning window. @blackman - Blackman window. @blackmanharris - Minimum 4-term Blackman-Harris window. @bohmanwin - Bohman window. @chebwin - Chebyshev window. @flattopwin - Flat Top window. @gausswin - Gaussian window. @hamming - Hamming window. @hann - Hann window. @kaiser - Kaiser window. @nuttallwin - Nuttall defined minimum 4-term Blackman-Harris window. @parzenwin - Parzen (de la Valle-Poussin) window. @rectwin - Rectangular window. @tukeywin - Tukey window. @triang - Triangular window. 2.用window产生的各种窗函数(可以设N=128),观察各个窗函数的波形。N=128; w=window(@bartlett,N); plot(1:N,w)

数字信号处理实验三窗函数的特性分析

实验报告 课程名称:数字信号处理 实验二:时域抽样与频域抽样 班级:通信1403 学生姓名:强亚倩 学号:1141210319 指导教师:范杰清 华北电力大学(北京)

一、实验目的 加深理解连续时间信号的离散化过程中的数学概念和物理概念,掌握时域抽样定理的基本内容。掌握由抽样序列重建原连续信号的基本原理与实现方法,理解其工程概念。加深理解频谱离散化过程中的数学概念和物理概念,掌握频域抽样定理的基本内容。 二、 实验原理 时域抽样定理给出了连续信号抽样过程中信号不失真的约束条件:对于基带信号,信号抽样频率fsam 大于等于2倍的信号最高频率fm ,即 fsam 2fm 。 时域抽样是把连续信号x(t)变成适于数字系统处理的离散信号x[k] ;信号重建是将离散信号x[k]转换为连续时间信号x(t)。 非周期离散信号的频谱是连续的周期谱。计算机在分析离散信号的频谱时,必须将其连续频谱离散化。频域抽样定理给出了连续频谱抽样过程中信号不失真的约束条件。 三、实验内容 1.利用MATLAB 实现对信号 的抽样 (1)编程 clear all clc t=0:0.0001:0.1; x=cos(2*pi*20*t); plot(t,x,'r'); hold on k=0:0.01:0.1; x=cos(2*pi*20*k); stem(k,x); hold off title('连续信号与抽样信号') (2)结果: )20π2cos()(t t x ? =

2. 已知序列 对其频谱X(ejW)进行抽样,分别取N=2,3,10,观察频域抽样造成的混叠现象 (1)编程: x=[1,1,1]; P=256; omega=[0:P-1]*2*pi/P; X0=1+exp(-j*omega)+exp(-2*j*omega); N=input('Type in N= '); omegam=[0:N-1]*2*pi/N; Xm=1+exp(-j*omegam)+exp(-2*j*omegam); subplot(2,1,1); plot(omega./pi,abs(X0)); xlabel('Omega/PI'); hold on stem(omegam./pi,abs(Xm),'r','o'); }2,1,0 ;1 ,1 ,1{][==k k x

4窗函数及频谱分析

窗函数及频谱分析 实验目的: 1. 掌握各类窗函数的时域和频率特性; 2. 掌握合理运用窗函数分析信号频谱的方法; 3. 掌握利用DFT 分析连续信号频谱的方法; 4. 掌握谱分析中参数的选取方法。 实验原理: 一、窗函数分析 在确定信号谱分析中,截短无穷长的序列会造成频率泄漏,合理选取窗函数的类型,可以改善泄露现象。 1. 常用窗函数 矩形窗 w=boxcar(N) 汉明窗 w=hamming(N) 汉宁窗 w=hanning(N) 布莱克曼窗 w=blackman(N) 凯泽窗 w=Kaiser(N,beta) 例: N=50; w=boxcar(N); W=fft(w,256); subplot(2,1,1); stem([0:N-1],w); subplot(2,1,2); plot([-128:127],abs(fftshift(W))) MATLAB 中提供了fft 函数,FFT 是DFT 的快速算法。 X=fft(x,n):补零或截短的n 点傅立叶变换; fftshift(x)将fft 计算输出的零频移到输出的中心。 例: N=50; w=hamming(N); W=fft(w,256); subplot(2,1,1); stem([0:N-1],w); subplot(2,1,2); plot([-128:127],abs(fftshift(W))) 例:已知一连续信号为12()cos(2)cos(2)x t f t f t ππ=+ 其中f 1=100Hz ,f 2=120Hz ,若以抽样频率fsam=600Hz 对该信号进行抽样,试用DFT 近似分析其频谱:利用不同宽度N 的矩形窗截短该序列,N 分别取15,40,80观察不同长度的窗对谱分析结果的影响;利用汉明窗重做(1)。 用矩形窗分析: N=input('请输入N 的值:'); L=512;

相关文档
最新文档