一,实验名称: DFT的频谱分析
二,实验目的:
1.加深对 DFT 原理的理解,熟悉DFT的性质。
2. 掌握离散傅里叶变换的有关性质,利用Matlab实现DFT变换
3.深刻理解利用 DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法
三,实验原理:
所谓信号的频谱分析就是计算信号的傅里叶变换。连续信号与系统的傅里叶分析显然不便于直接用计算机进行计算,使其应用受到限制,而DFT是一种时域和频域均离散化的变换,适合数值运算,成为分析离散信号和系统的有力工具。工程实际中,经常遇到的连续信号Xa(t),其频谱函数Xa(jW)也是连续函数。数字计算机难于处理,因而我们采用DFT来对连续时间信号的傅里叶变换进行逼近,进而分析连续时间信号的频谱。
离散傅里叶变换是有限长序列的傅里叶变换,它相当于把信号的傅里叶变换进行等频率间隔采样,并且有限长序列的离散傅里叶变换和周期序列的离散傅里叶级数本质是一样的。快速傅里叶变换(FFT)并不是一种新的变换,它是离散傅里叶变换的一种快速算法,并且主要是基于这样的思路而发展起来的:(1)把长度为N的序列的DFT逐次分解成长度较短的序列的DFT来计算。(2)利用WN(nk)的周期性和对称性,在DFT运算中适当的分类,以提高运算速度。(对称性,;周期性,r为任意整数)
离散傅里叶变换的推导:
短时傅里叶变换matlab程序离散傅里叶级数定义为 (1-1) 将上式两端乘以并对n在0~N-1求和可得
因为
所以 这样用k代替m得 (1-2)
令,则(1-2)成为DFS (1-3)
(1-1)成为 IDFS (1-4)
式(1-3)、(1-4)式构成周期序列傅里叶级数变换关系。其中都是周期为N的周期序列,DFS[·]表示离散傅里叶级数正变换,IDFS[·]表示离散傅里叶级数反变换。习惯上,对于长为N的周期序列,把0nN-1区间称为主值区,把称为的主值序列,同样也称为的主值序列。由于,对于周期序列仅有N个独立样值,对于任何一个周期进行研究就可以得到它的全部信息。在主值区研究与是等价的,因此在主值区计算DFS和DFT是相等的,所以DFT计算公式形式与DFS基本相同。其关系为
,所以离散傅里叶正变换
0kN-1
离散傅里叶变换(DFT)定义:设有限长序列x (n) 长为N(0nN-1),其离散傅里叶变换是一个长为N的频率有限长序列(0kN-1),其正变换为
0kN-1 ()
离散傅里叶变换的实质是:把有限长序列当做周期序列的主值序列进行DFS变换,x(n)、X(k)的长度均为N,都是N个独立值,因此二者具有的信息量是相等的。已知x(n)可以唯一确定X(k),已知X(k)可以唯一确定x(n)。
虽然离散傅里叶变换是两个有限长序列之间的变化,但它们是利用DFS关系推导出来的,因而隐含着周期性
四,实验内容与程序:
1,对离散确定信号 作如下谱分析:
截取使成为有限长序列N(),(长度N自己选)写程序计算出的N点DFT ,画出时域序列图xn~n和相应的幅频图。
解:
1)求x(n)的前10点数据对应的X(ejw)、X(k)。
MATLAB程序:
N=10;
n=0:1:N-1;
xn=cos(0.48*pi*n)+cos(0.52*pi*n);
Xk=dft(xn,N);
subplot(3,1,1)
stem(n,xn,'.k');
title('时域序列图xn');
xlabel('n');
axis([0,10,-2.5,2.5]);
w=2*pi*(0:1:2047)/2048;
Xw=xn*exp(-j*n'*w);
subplot(3,1,2);
plot(w/pi,abs(Xw));
title('幅频特性曲线X(ejw)');
xlabel('w');
axis([0,1,0,10]);
subplot(3,1,3)
k1=0:1:9;w1=2*pi/10*k1;
stem(w1/pi,abs(Xk),'.k');
title('频域序列图Xk');
xlabel('频率(单位:pi)');
axis([0,1,0,10]);
x(n)的前10点数据对应的x(n)、X(ejw)、X(k)如图1-1所示。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论