信号的产生、时域变换及卷积计算(信号和图像给学生) 联系客服

发布时间 : 星期三 文章信号的产生、时域变换及卷积计算(信号和图像给学生)更新完毕开始阅读ff0591700b4e767f5acfceaa

实验五 应用FFT对信号进行频谱分析

一.实验目的

1.在理论学习的基础上,通过本次实验,加深对FFT的理解,熟悉FFT算法及其程序的编写。

2.熟悉应用FFT对典型信号进行频谱分析的方法。

3.了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。

二.实验内容

用FFT对如下典型信号进行离散傅里叶变换,并观察其图形

??(n?p)q?xa(n)??e??0(1)高斯序列:

20?n?15else

?e?n?sin2?fn0?n?15xb(n)??0else ?(2)衰减正旋序列:

(3)三角波序列

?n?10?n?3?xc(n)??8?n4?n?7?0else??4?n0?n?3?xd(n)??n?34?n?7?0else?

(4)反三角序列

三、试验预备知识

一个连续信号的频谱可以用它的傅立叶变换表示为

??Xa(j?)?

???j?txa(t)edt? (2-1)

如果对该信号进行理想采样,可以得到采样序列

x(n)?xa(nT) (2-2)

同样可以对该序列进行Z变换,其中T为采样周期

X(Z)?

n????x(n)z???n (2-3)

j?当z?e的时候,我们就得到了序列的傅立叶变换

X(e)?j?n????x(n)e???j?n (2-4)

其中?为数字角频率,和模拟域频率的关系为

???T??/fs (2-5)

式中的fs是采样频率。上式说明数字角频率是模拟频率对采样速率fs的归一化。同模拟域的情况相似,数字角频率代表了序列值变化的速率,而序列的傅立叶变换称为序列的频谱。序列的傅立叶变换和对应的采样信号频谱具有下式的对应关系:

1????2?mX(e)??Xa(j)T??T (2-6)

j?即序列的频谱是采样信号频谱的周期延拓。从式(2-6)可以看出,只要分析采样序列的频谱,就可以得到相应的连续信号的频谱。

在各种信号序列中,有限长序列在数字信号处理中占有很重要的地位。无限长的序列也往往可以用有限长序列来逼近。对于有限长的序列我们可以使用离散傅立叶变换(DFT),这一变换可以很好的反映序列的频域特性,并且容易利用快速算法在计算机上实现。当序列的长度为N时,定义DFT为:

nkX(k)??x(n)WNn?0N?1 (2-7)

其中WN?e?j2?N,它的反变换定义为:

1N?1?nkx(n)??X(k)WNNk?0 (2-8)

?kN令z?WX(z),则有:

?kz?WNnk??x(n)WNn?0N?1 (2-9)

?k可以得到,X(k)?X(z)z?WN,z?W?kN是Z平面单位圆上幅角为

??2?kN的点,

就是将单位圆进行N等分以后第K个点。所以,X(K)是Z变换在单位圆上的等距采样,或者说是序列傅立叶变换的等距采样。时域采样在满足Nyquist定理时,就不会发生频谱混叠。

DFT是对序列傅立叶变换的等距采样,因此可以用于序列的频谱分析。如同理论课教材所讨论的,在运用DFT进行频谱分析的时候可能有三种误差,即:

(1)混叠现象

2?从中可以看出,序列的频谱时采样信号频谱的周期延拓,周期是T,因此当采样速率

不满足定理Nyquist,经过采样就会发生频谱混叠。这导致采样后的信号序列频谱不能真实的反映原信号的频谱。所以,在利用DFT分析连续信号频谱的时候,必须注意这一问题。避免混叠现象的唯一方法是保证采样的速率足够高,使频谱交叠的现象不出现。这告诉我们,在确定信号的采样频率之前,需要对频谱的性质有所了解。在一般的情况下,为了保证高于折叠频率的分量不会出现,在采样之前,先用低通模拟滤波器对信号进行滤波。 (2)泄漏现象

实际中的信号序列往往很长,甚至是无限长。为了方便,我们往往用截短的序列来近似它

们。这样可以使用较短的DFT来对信号进行频谱分析。这种截短等价于给原信号序列乘以一个矩形窗函数。值得一提的是,泄漏是不能和混叠完全分离开的,因为泄漏导致频谱的扩展,从而造成混叠。为了减少泄漏的影响,可以选择适当的窗函数使频谱的扩散减到最小。 (3)栅栏效应

因为DFT是对单位圆上Z变换的均匀采样,所以它不可能将频谱视为一个连续函数。这样就产生了栅栏效应,从某种角度看, 用DFT来观看频谱就好像通过一个栅栏来观看一幅景象,只能在离散点上看到真是的频谱。这样的话就会有一些频谱的峰点或谷点被“栅栏”挡住,不能被我们观察到。减小栅栏效应的一个方法是在源序列的末端补一些零值,从而变动DFT的点数。这种方法的实质是改变了真是频谱采样的点数和位置,相当于搬动了“栅栏”的位置,从而使得原来被挡住的一些频谱的峰点或谷点显露出来。注意,这时候每根谱线所对应的频和原来的已经不相同了。

从上面的分析过程可以看出,DFT可以用于信号的频谱分析,但必须注意可能产生的误差,在应用过程中要尽可能减小和消除这些误差的影响。

FFT并不是DFT不相同的另一种变换,而是为了减少DFT运算次数的一种快速算法。它是对变换式进行一次次的分解,使其成为若干小店数DFT的组合,从而减小运算量。常

M用的FFT是以2为基数的,其长度为N?2。它的运算效率高,程序比较简单,使用也

十分的方便。当需要进行变换的序列的长度不是2的整数次方的时候,为了使用以2为基的FFT,可以用末尾补零的方法,使其长度延长至2的整数次方。IFFT一般也可以通过FFT程序来完成,比较式和,只要对取共轭,进行FFT运算,然后再去共轭,并乘以因子,就可以完成IFFT。

四.思考题

1.实验中的信号序列xc(n)和xd(n),在单位圆上的Z变化频谱

Xc(ej?)和

Xd(ej?)和会相同吗?如果不同,你能说出哪一个低频分量更多一些吗?为什么?

2.对一个有限长序列进行离散傅立叶变换(DFT),等价于将该序列周期延拓后进行傅立叶级数展开(DFS)。因为DFS也只是取其中一个周期来运算,所以FFT 在一定条件下也可以用以分析周期信号序列。如果实正弦信号sin(2?fn),f?0.1,用16点的FFT来作DFS运算,得到的频谱是信号本身的真是谱吗? 3.观察高斯序列的时域和频域特性 4.观察衰减正旋序列的时域和幅频特性

5.观测三角波序列和反三角波序列的时域和幅频特性