数字信号课程设计 应用FFT对信号进行频谱分析

更新时间:2023-06-04 07:12:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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

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

一、实验目的

1.加深对离散信号的DTFT和DFT的及其相互关系的理解。

2.在理论学习的基础上,通过本次实验,加深对快速傅立叶变换的理解,熟悉FFT算法及其程序的编写。

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

4.了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。 二、实验原理与方法

一个连续信号xa(t)

的频谱可以用他的傅立叶变换表示为:=

如果对该信号进行理想采样,可以得到采样序列:x(n)=Xa(nT) 同样可以对该序列进行Z变换,其中T为采样周期:X(z)=

ω

当Z=ejω的时候,我们就得到了序列的傅立叶变换:X(ej)=

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

X(ejω)=

即序列的频谱是采样信号频谱的周期延拓。从上式可以看出,只要分析采样序列的频谱,就可以得到相应的连续信号频谱,就可以得到相应的连续信号的频谱。注意:这里的信号必须是带限信号,采样也必须满足Nyquist定理。

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

令Z=可以得到

,则有:

=,

=DFT[x(n)]

是Z

平面单位圆上幅角为

的点,就是将单位圆进行N等分以后第K个点。所以,X(k)

是Z变换在单位圆上的等距采样,或者说是序列福利叶变换的等距

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

采样。时域采样在满足Nyquist定理时,就不会发生频率混淆;同样地,在频率域进行采样的时候,只要采样间隔足够小,也不会发生时域序列的混淆。 三、实验内容及步骤

(一) 编制实验用的主程序及相应子程序

1.在试验之前,认真复习DFT和FFT有关的知识,阅读本实验原理与方法和实验附录部分中和本实验有关的子程序,掌握子程序的原理并学习调用方法。

2.编制信号产生子程序及本实验的频谱分析主程序。试验中需要用到的基本信号包括: (1)高斯序列:

(2)衰减正弦序列:

(3)三角波序列:

(4)反三角序列:

(二) 上机实验内容

1.观察高斯序列的时域和频域特性 (1)固定信号xa(n)参数p=8,改变q的值,使q分别等于2,4,8。观察它们的时域和幅频特性,了解q取不同值的时候,对信号时域特性和幅频特性的影响。

>> n=0:15;

>> p=8;q=2;x=exp(-1*(n-p).^2/q);

>> close all;subplot(3,1,1);stem(abs(fft(x))) >> p=8;q=4;x=exp(-1*(n-p).^2/q); >> subplot(3,1,2);stem(abs(fft(x))) >> p=8;q=8;x=exp(-1*(n-p).^2/q); >> subplot(3,1,3);stem(abs(fft(x)))

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

(2)固定q=8,改变P,使P分别等于8,13,14,观察参数P变化对信号序列时域及幅频特性的影响。注意p等于多少时,会发生明显的泄漏现象,绘制相应的时域序列和幅频特性曲线。

>> p=8;q=8;x=exp(-1*(n-p).^2/q);

>> close all;subplot(3,1,1);stem(abs(fft(x))) >> p=13;q=8;x=exp(-1*(n-p).^2/q); >> subplot(3,1,2);stem(abs(fft(x))) >> p=14;q=8;x=exp(-1*(n-p).^2/q);

>> subplot(3,1,3);stem(abs(fft(x)))

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

2.观察衰减正弦序列的时域和幅频特性曲线

(1)令a=0.1,并且f=0.0625,检查谱峰出现的位置是否正确,注意频谱的形状,绘制幅频特性曲线。

>> n=0:15;

>> a=0.1;f=0.0625;x=exp(-a*n).*sin(2*pi*f*n); >> close all;subplot(2,1,1);stem(n,x);

>> subplot(2,1,2);stem(n,abs(fft(x)))

(2)改变f=0.4375,再变化f=0.5625,观察这两种情况下,频谱的形状和谱峰出现的位置,有无混淆和泄漏现象发生?说明产生现象的原因。

>> n=0:15;

>> a=0.1;f=0.4375;x=exp(-a*n).*sin(2*pi*f*n); >> close all;subplot(2,1,1);stem(n,x); >> subplot(2,1,2);stem(n,abs(fft(x)))

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

3.观察三角波序列和反三角序列的时域和幅频特性 (1)用8点FFT分析信号xc(n)和xd(n)的幅频特性,观察两者的序列形状和频谱曲线有什么异同?(注意:这时候的xd(n)可以看作使xc(n)经过圆周位移以后得到的)绘制两者的序列和幅频特性曲线。

>> for i=1:4 x(i)=i; end

>> for i=5:8 x(i)=9-i; end

>> close all;subplot(2,1,1);stem(x); >> subplot(2,1,2);stem(abs(fft(x,16)));

>> for i=1:4 x(i)=5-i; end

>> for i=5:8 x(i)=i-4; end

>> close all;subplot(2,1,1);stem(x); >> subplot(2,1,2);stem(abs(fft(x,16)));

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

(2)在xc(n)和xd(n)补零,用16点FFT分析这两个信号的幅频特性,观察幅频特性发生了什么变化?两个信号之间的FFT频谱还有没有相同之处?这些变化说明了什么?

>> for i=1:4 x(i)=i; end

>> for i=5:8 x(i)=9-i; end

>> for i=9:16 x(i)=0; end

>> close all;subplot(2,1,1);stem(x); >> subplot(2,1,2);stem(abs(fft(x,16)));

>> for i=1:4 x(i)=5-i; end

>> for i=5:8 x(i)=i-4; end

>> for i=9:16 x(i)=0; end

>> close all;subplot(2,1,1);stem(x); >> subplot(2,1,2);stem(abs(fft(x,16)));

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

四、思考题

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

ω

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

答:不相同。反三角序列的低频分量更多一些。

2.对一个有限长序列进行离散傅里叶变换(DFT),等价于将该序列周期延拓后进行傅里叶级数展开。因为DFS也只是取其中一个周期计算,所以FFT在一定条件下也可以用以分析周期信号序列。如果正弦信号sin(2πfn),f=0.1,用16点的FFT来做DFS运算,得到的频谱是信号本身的真实谱吗?

答:不是。

本文来源:https://www.bwwdw.com/article/o7n1.html

Top