您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > DFT和FFT频谱分析
上海第二工业大学实验报告DFT和FFT频谱分析课程名称数字信号处理姓名刘万军班级13通信A1学号201348213332015年12月25日DFT和FFT频谱分析一.实验目的1.掌握DFT频谱分析的原理与编程方法。2.理解FFT算法的编程思想。3.熟练掌握利用FFT对信号做频谱分析,包括正确地进行参数选择,画频谱及读频谱图。4.利用FFT频谱分析进行快速卷积。二.实验环境1.Windowsxp2操作系统2.安装MATLAB2007a软件三.实验原理1.离散傅里叶变换(DFT)DFT的定义是针对任意的离散序列)(nTsx中的有限个离散抽样)0(Nn的,它并不要求该序列具有周期性。由DFT求出的离散谱)()(ZkNTkHHkHSk是离散的周期函数,周期为sssfTNTNTNNf1/00、离散间隔为0011fTNfNTss。离散谱关于变元k的周期为N。在时域和频域N~0范围内的N点分别是各自的主值区间或主值周期。X(n)的的N点离散傅里叶变换:X(K)的傅里叶反变换:2.快速傅里叶变换(FFT)FFT是一种DFT的高效算法,称为快速傅立叶变换(fastFouriertransform)。有限长序列通过离散傅里叶变换(DFT)将其频域离散化成有限序列.但其计算量太大(与N的平方成正比,4N2次实数相乘和2N(2N-1)次实数相加),很难实时地处理问题,因此引出了快速傅里叶变换(FFT)。FFT并不是一种新的变换形式,它只是DFT的一种快速算法.并且根据对序列分解与选取方法的不同而产生了FFT的多种算法。8点DNT-FFT蝶形运算图:四.程序设计(1)根据公式设计DFT原理程序如下:clearallxn=input('x(n)=');M=length(xn);N=input('变换区间N=');xn=[xnzeros(1,N-M)];n=0:N-1;k=0:N-1;nk=n'*k;wn=exp(-j*2*pi/N);wnK=wn.^nk;xk=xn*wnKsubplot(211);stem(k,abs(xk),'.');gridon;subplot(212);plot(k,abs(xk));gridon;(2)FFT谱分析程序如下:clear00.511.522.530123400.511.522.53012340102030405060700123401020304050607001234clcfs=1000t=0:1/fs:0.25;N=512;f1=50;f2=600;s=sin(2*pi*f1*t)+sin(2*pi*f2*t);x=s+randn(size(t));Y=fft(x,N);PSD=Y.*conj(Y)/N;f=fs/N*(0:N/2-1);k=0:N/2-1;subplot(311);plot(x);subplot(312);plot(k,abs(Y(1:N/2)));subplot(313);plot(f,PSD(1:N/2));五.实验小结通过数字信号处理课程设计,我自己学习很多知识。MATLAB类的编程书籍,各类信号处理类的书籍等,不仅丰富了自己的知识范围,而且对与自己所学的知识有了更深的了解和认识。在整个课程设计的过程中,我不仅学习很多知识,也帮助其他小组分析设计题目,不仅锻炼自己的学习能力,也加强了我与其他同学合作的能力。查找资料的过程中我也增强自己学习的能力。提高了我遇到问题分析问题解决问题的能力。这些都是我在以后的学习、生活和工作中的宝贵财富。050100150200250300-5050501001502002503000501001500501001502002503003504004505000102030
本文标题:DFT和FFT频谱分析
链接地址:https://www.777doc.com/doc-2909908 .html