离散傅里叶变换(DFT).ppt
《离散傅里叶变换(DFT).ppt》由会员分享,可在线阅读,更多相关《离散傅里叶变换(DFT).ppt(68页珍藏版)》请在三一办公上搜索。
1、1,一、DFT的定义 设x(n)是一个长度为M的有限长序列,则定义x(n)的N点离散傅里叶变换为X(k)的离散傅里叶逆变换为式中,N称为DFT变换区间长度,,7.3 离散傅里叶变换(DFT),2,二、DFT和Z变换的关系 设序列x(n)的长度为N,其Z变换和DFT分别为:,比较上面二式可得关系式,()式表明序列x(n)的N点DFT是x(n)的Z变换在单位圆上的N点等间隔采样;()式则说明X(k)为x(n)的傅里叶变换X(ej)在区间0,2 上的N点等间隔采样。,3,实际上,任何周期为N的周期序列 都可以看作长度为N的有限长序列x(n)的周期延拓序列,即,为了以后叙述方便,将(3.1.5)式用如
2、下形式表示:,三、DFT的隐含周期性,均为整数,有限长序列x(n)的离散傅里叶变换X(k),正好是x(n)的周期延拓序列x(n)N的离散傅里叶级数系数 的主值序列,即,4,图 3.1.2 有限长序列及其周期延拓,5,7.3 离散傅里叶变换(DFT),定义DFT:用类似于例7.9中的方法,可把(7.3)式写成矩阵乘法运算。Xk=xn*Wnk其中,xn为序列行向量,Wnk是一 NN 阶方阵,而 称为旋转因子。Wnk 的MATLAB表示:Wnk=WN.(0:N-1*0:N-1),6,用矩阵乘法计算N点DFT的程序如下:MATLAB程序q73a.m%用矩阵乘法计算N点DFTclear;close al
3、lxn=input(请输入序列x=);N=length(xn);%n=0:N-1;k=n;nk=n*k;%生成NN方阵WN=exp(-j*2*pi/N);%旋转因子Wnk=WN.nk;%产生旋转因子矩阵Xk=xn*Wnk;%计算N点DFT 这种方法计算DFT概念清楚、编程简单,但占用内存大、运行速度低,所以不实用。MATLAB基础部分提供了fft、ifft、fft2、ifft2等等快速计算傅里叶变换的函数,使DFT的运算速度量提高了若干数量级,在后面的例题中均直接调用这些函数。,7,例7.15 序列的离散傅立叶变换,求复正弦序列 余弦序列 正弦序列的离散傅立叶变换,分别按N=16和N=8进行计
4、算。绘出幅频特性曲线,进行比较讨论。解:直接产生序列x1n、x2n和x3n,调用fft函数求解,8,%第七章例7.15程序q715%DFT计算clear;close allN=16;N1=8;%产生序列x1(n),计算DFTx1(n)n=0:N-1;x1n=exp(j*pi*n/8);%产生x1(n)X1k=fft(x1n,N);%计算N点DFTx1(n)Xk1=fft(x1n,N1);%计算N1点DFTx1(n)%产生序列x2(n),计算DFTx2(n)x2n=cos(pi*n/8);X2k=fft(x2n,N);%计算N点DFTx2(n)Xk2=fft(x2n,N1);%计算N1点DFTx
5、1(n)%产生序列x3(n),计算DFTx3(n)x3n=sin(pi*n/8);X3k=fft(x3n,N);%计算N点DFTx3(n)Xk3=fft(x3n,N1);%计算N1点DFTx1(n),9,%绘图subplot(2,3,1);stem(n,abs(X1k),.);title(16点 DFTx1(n);xlabel(k);ylabel(|X1(k)|)subplot(2,3,2);stem(n,abs(X2k),.);title(16点 DFTx2(n);xlabel(k);ylabel(|X2(k)|)subplot(2,3,3);stem(n,abs(X3k),.);title
6、(16点 DFTx3(n);xlabel(k);ylabel(|X3(k)|)k=0:N1-1;subplot(2,3,4);stem(k,abs(Xk1),.);title(8点 DFTx1(n);xlabel(k);ylabel(|X1(k)|)subplot(2,3,5);stem(k,abs(Xk2),.);title(8点 DFTx2(n);xlabel(k);ylabel(|X2(k)|)subplot(2,3,6);stem(k,abs(Xk3),.);title(8点 DFTx3(n);xlabel(k);ylabel(|X3(k)|),10,在截取16点时,得到的是完整的余弦
7、波形;而截取8点时,得到的是半截的余弦波形,当然有大量的谐波成分。,11,例7.16 验证N点DFT的物理意义,(1)绘出幅频曲线和相频曲线。(2)计算并图示x(n)的8点DFT。(3)计算并图示x(n)的16点DFT。解:序列x(n)的点DFT的物理意义是 在0,2上进行点等间隔采样。程序先密集采样,绘制出幅频曲线图。然后再分别做8点和16点DFT来验证这个采样关系。程序略。,12,图7.16 离散傅里叶变换与傅里叶变换的采样关系,13,频域采样定理,频域采样是指对有限长序列的傅氏变换在频域离散化得到X(k)的过程。本节讨论两个基本问题:a:频域采样(DFT)不失真的条件,即由 X(k)不失
8、真地恢复x(n)的条件b:用X(k)表示X(z)和 的插值公式(内插公式),14,图3-3-1 时域恢复示意图,结论:若序列长度为L,频域采样点数(DFT的长度)为N,且LN,则频域采样后可不失真地恢复原序列;但若LN,则频域采样后不能不失真地恢复原序列。,15,例7.17 频域与时域采样对偶性,(1)产生三角波序列(2)对M=40,计算x(n)的64点DFT,并图示x(n)和 X(k)=DFTx(n),k=0,1,63。(3)对(2)中所得X(k)在 0,2 上进行32点抽样得(4)求 的32点IDFT,即(5)绘出 的波形图,评述它与x(n)的关系。,16,%第七章例7.17程序q717%
9、时域与频域采样的对偶性验证clear;close allM=40;N=64;n=0:M;%产生M长三角波序列x(n)xa=0:floor(M/2);xb=ceil(M/2)-1:-1:0;xn=xa,xb;Xk=fft(xn,64);%64点FFTx(n)X1k=Xk(1:2:N);%隔点抽取Xk得到X1(K)x1n=ifft(X1k,N/2);%32点IFFTX1(k)得到x1(n)nc=0:3*N/2;%取97点为观察区xc=x1n(mod(nc,N/2)+1);%x1(n)的周期延拓序列subplot(3,2,1);stem(n,xn,.)title(40点三角波序列x(n);xlabe
10、l(n);ylabel(x(n),17,k=0:N-1;subplot(3,2,3);stem(k,abs(Xk),.)title(64点DFTx(n);xlabel(k);ylabel(|X(k)|)k=0:N/2-1;subplot(3,2,4);stem(k,abs(X1k),.)title(X(k)的隔点抽取);xlabel(k);ylabel(|X1(k)|)n1=0:N/2-1;subplot(3,2,2);stem(n1,x1n,.)title(32点IDFTX1(k);xlabel(n);ylabel(x1(n)subplot(3,1,3);stem(nc,xc,.)title
11、(x1(n)的周期延拓序列);xlabel(n);ylabel(x(mod(n,32)set(gcf,color,w),18,19,由于频域在0,2上的采样点数N(N=32)小于x(n)的长度M(M=40),所以,产生时域混叠现象,不能由X1(k)恢复原序列x(n)。只有满足NM时,可由频域采样X1(k)得到原序列x(n)。这就是频域采样定理。对NM的情况,请读者自己编程验证。,20,用DFT计算线性卷积,0kL-1,则由时域循环卷积定理有 Y(k)=DFTy(n)=X1(k)X2(k),0kL-1,如果,21,由此可见,循环卷积既可在时域直接计算,也可以按照图所示的计算框图,在频域计算。由于
12、DFT有快速算法FFT,当N很大时,在频域计算的速度快得多,因而常用DFT(FFT)计算循环卷积。,图 3.4.1 用DFT计算循环卷积,22,在实际应用中,需要计算两个序列的线性卷积,与计算循环卷积一样,为了提高运算速度,也希望用DFT(FFT)计算线性卷积。而DFT只能直接用来计算循环卷积,为此导出线卷积和循环卷积之间的关系以及循环卷积与线性卷积相等的条件。假设h(n)和x(n)都是有限长序列,长度分别是N和M。它们的线性卷积和循环卷积分别表示如下:,(3.4.1),(3.4.2),23,其中,LmaxN,M,所以,对照式(3.4.1)可以看出,上式中,(3.4.3),即,(3.4.3)式
13、说明,yc(n)等于yl(n)以L为周期的周期延拓序列的主值序列。yl(n)长度为N+M-1,只有当循环卷积长度L N+M-1时,yl(n)以L为周期进行周期延拓才无混叠现象。,24,图 3.4.2 线性卷积与循环卷积,25,利用DFT进行线性卷积的步骤如下:1.将序列x(n)和h(n)补零延长,使其长度2.做x(n)和h(n)的长为L点的DFT得到X(k)和H(k),求它们的积Y(k)=X(k)H(k)3.求Y(k)的IDFT并取前 N1 点获得线性卷积的结果为,LN1=N+M-1,y(n)=IDFTY(k),0nN1,26,图 3.4.3 用DFT计算线性卷积框图,27,例7.18 快速卷
14、积,快速卷积就是根据DFT的循环卷积性质,将时域卷积转换为频域相乘,最后再进行IDFT得到时域卷积序列y(n)。其中时域和频域之间的变换均用FFT实现,所以使卷积速度大大提高。框图如下:,28,%第七章例7.18程序q718%快速卷积计算clear;close allxn=input(请输入x(n)序列:xn=书上用 sin(0.4*1:15);hn=input(请输入h(n)长度:hn=书上用 0.9.(1:20);M=length(xn);N=length(hn);nx=1:M;nh=1:N;%循环卷积等于线性卷积的条件:循环卷积区间长度L=M+N-1L=pow2(nextpow2(M+N
15、-1);%取L为大于等于且最接近(N+M-1)的2的正次幂tic,%快速卷积计时开始,29,Xk=fft(xn,L);%L点FFTx(n)Hk=fft(hn,L);%L点FFTh(n)Yk=Xk.*Hk;%频域相乘得Y(k)yn=ifft(Yk,L);%L点IFFT得到卷积结果y(n)toc%快速卷积计时结束subplot(2,2,1),stem(nx,xn,.);ylabel(x(n)subplot(2,2,2),stem(nh,hn,.);ylabel(h(n)subplot(2,1,2);ny=1:L;stem(ny,real(yn),.);ylabel(y(n)tic,yn=conv(
16、xn,hn);%直接调用函数conv计算卷积与快速卷积比较toc,30,31,4.用DFT进行谱分析的误差问题 DFT(实际中用FFT计算)可用来对连续信号和数字信号进行谱分析。(1)混叠现象。(2)栅栏效应。(3)截断效应。根据傅里叶变换的频域卷积定理有,32,幅度谱RN()曲线如图所示(RN()以2为周期,只画低频部分)。图中,|2/N的部分称为主瓣,其余部分称为旁瓣。例如,x(n)=cos(0n),0=/4其频谱为,其中,33,图 3.4.11 矩形窗函数的幅度谱,34,图 3.4.12 加矩形窗前后的频谱,泄露谱间干扰,35,例7.19 用DFT求连续信号频谱,在计算机上用DFT对模拟
17、信号进行谱分析时,只能以有限大的采样频率fs对模拟信号采样有限点样本序列(等价于截取模拟信号一段进行采样)作DFT变换,得到模拟信号的近似频谱。其误差主要来自以下因素:截断效应(频谱泄露和谱间干扰)频谱混叠失真因素使谱分辨率(能分辨开的两根谱线间的最小间距)降低,并产生谱间干扰;因素使折叠频率(fs/2)附近的频谱产生较大失真。,36,例7.19 用DFT求连续信号频谱,加大截取长度Tp可提高频率分辨率;选择合适的窗函数可降低谱间干扰;而频谱混叠失真要通过提高采样频率fs和(或)预滤波(在采样之前滤除折叠频率以外的频率成分)来改善。编写程序q719.m验证截断效应及加窗的改善作用,先选取以下参
18、数:采样频率fs=400Hz,T=1/fs 采样信号序列 对x(n)作4096点DFT作为xa(t)的近似频谱Xa(jf)。,37,%第七章例7.19程序q719%用DFT作谱分析clear;close allfs=400;T=1/fs;%采样频率为400HzTp=0.04;N=Tp*fs;%采样点数NN1=N,4*N,8*N;%设定三种截取长度供调用st=|X1(jf)|;|X4(jf)|;|X8(jf)|;%设定三种标注语句供调用%矩形窗截断for m=1:3 n=1:N1(m);xn=cos(200*pi*n*T)+sin(100*pi*n*T)+cos(50*pi*n*T);%产生采样
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 离散 傅里叶变换 DFT

链接地址:https://www.31ppt.com/p-5807675.html