您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > DFT-变换的性质及应用
实验卡和实验报告信息科学与工程学院课程名称数字信号处理实验课时4学时实验项目名称和编号DFT变换的性质及应用同组者姓名实验目的1、实现信号的DFT变换2、了解DFT应用:(1)用DFT计算卷积(2)用DFT对序列进行谱分析设计型实验,综合型实验实验环境MATLAB实验内容和原理任务1、用三种不同的DFT程序计算x(n)(0.9)n(n=0,1,2,…,7)的傅立叶变换X(k),并比较三种程序的计算机运行时间。步骤:a.用for循环语句编制函数文件,实现循环计算X(k);b.编写矩阵运算的函数文件,实现矩阵计算X(k);c.调用FFT函数直接计算X(K)任务2、给定x(n)=nR16(n),h(n)=R8(n)利用DFT实现两序列的线性卷积运算,并研究DFT的点数与混叠的关系,并用stem(n,y)画出相应的图形。任务3、讨论序列补零及增加数据长度对信号频谱的影响(1)求出序列x(n)=cos(0.48n)+cos(0.52n)基于有限个样点n=10的频谱;(2)求n=100时,取x(n)的前10个,后90个设为零,得到x(n)的频谱;(3)增加x(n)有效的样点数,取100个样点得到x(n)的频谱实验卡和实验报告信息科学与工程学院实验步骤方法关键代码一、任务1a.用for循环语句编制函数文件,实现循环计算X(k);function[am,pha]=dft1(x)N=length(x);w=exp(-1i*2*pi/N);fork=1:Nsum=0;forn=1:Nsum=sum+x(n)*w^((k-1)*(n-1));endam(k)=abs(sum);pha(k)=angle(sum);endb.编写矩阵运算的函数文件,实现矩阵计算X(k);function[am,pha]=dft2(x)N=length(x);n=[0:N-1];k=[0:N-1];w=exp(-j*2*pi/N);nk=n'*k;wnk=w.^(nk);Xk=x*wnk;am=abs(Xk);pha=angle(Xk);c.调用FFT函数直接计算X(K)function[amfft,phafft]=dft3(x)N=length(x);Xk=fft(x);amfft=abs(Xk);phafft=angle(Xk);三种程序的计算机运行时间x=ones(1,8);figure(1)[am,pha]=det1(x);t1=cputime实验卡和实验报告信息科学与工程学院subplot(3,1,1);stem(x);subplot(3,1,2);stem(am);subplot(3,1,3);stem(pha);figure(2)[am,pha]=dft2(x)t2=cputimesubplot(3,1,1);stem(x);subplot(3,1,2);stem(am);subplot(3,1,3);stem(pha);figure(3)[amfft,phafft]=dft3(x)t3=cputimesubplot(3,1,1);stem(x);subplot(3,1,2);stem(am);subplot(3,1,3);stem(pha);二、任务2%N1+N2-1=2332N=32;x=[0:15];xx=[x,zeros(1,16)];h=[ones(1,8),zeros(1,24)];Xk=fft(xx,N);Hk=fft(h,N);Yk=Xk.*Hk;y=ifft(Yk,N);n=0:N-1;实验卡和实验报告信息科学与工程学院stem(n,y);holdon%N=N1=16N1=16;x1=[0:15];h1=[ones(1,8),zeros(1,8)];Xk1=fft(x1,N1);Hk1=fft(h1,N1);Yk1=Xk1.*Hk1;y1=ifft(Yk1,N1);n1=0:N1-1;stem(n1,y1,'.','m');(接上页)实验步骤方法关键代码三、任务3%x(n)基于10个样点的频谱figure(1)n=[0:1:99];x=cos(0.48*pi*n)+cos(0.52*pi*n);n1=[0:1:9];y1=x(1:1:10);subplot(2,1,1);stem(n1,y1);title('signalx(n),0=n=9');xlabel('n')axis([0,10,-2.5,2.5])Y1=fft(y1);magY1=abs(Y1(1:1:6));k1=0:1:5;w1=2*pi/10*k1;subplot(2,1,2);stem(w1/pi,magY1);title('10点DET');xlabel('w/pi')axis([0,1,0,10])%在10个样点的基础上添90个零,得到密度高的频谱figure(2)n3=[0:1:99];y3=[x(1:1:10)zeros(1,90)];%添90个零,得到100个数据subplot(2,1,1);stem(n3,y3);title('signalx(n),0=9=9+90zeros');xlabel('n')axis([0,100,-2.5,2.5])Y3=fft(y3);magY3=abs(Y3(1:1:51));k3=0:1:5;w3=2*pi/100*k3;subplot(2,1,2);stem(w3/pi,magY1);title('100点DET');xlabel('w/pi')axis([0,1,0,10])%增加x(n)有效的样点数,取100个样点figure(3)实验卡和实验报告信息科学与工程学院n=[0:1:99];x=cos(0.48*pi*n)+cos(0.52*pi*n);subplot(2,1,1);stem(n,x);title('signalx(n),0=n=99');xlabel('n')axis([0,100,-2.5,2.5])X=fft(x);magX=abs(X(1:1:51));k=0:1:50;w=2*pi/100*k;subplot(2,1,2);stem(w/pi,magX);title('100点DFT');xlabel('(w/pi)')axis([0,1,0,60])测试记录分析结论一、任务1a.用for循环语句编制函数文件,实现循环计算X(k);b.编写矩阵运算的函数文件,实现矩阵计算X(k);实验卡和实验报告信息科学与工程学院c.调用FFT函数直接计算X(K)三种程序的计算机运行时间实验卡和实验报告信息科学与工程学院二、任务2051015202530350102030405060708090100实验卡和实验报告信息科学与工程学院0510150102030405060708090100实验卡和实验报告信息科学与工程学院三、任务3实验卡和实验报告信息科学与工程学院实验卡和实验报告信息科学与工程学院小结本次实验总共包括三个任务。在第一个任务实验中,用不同的DFT程序运算傅里叶变换,通过观察计算机的运行时间来判别运算的复杂度。本次我选择的样点个数为8,通过实验可知在循环计算过程中总共计时t1=118.7500,矩阵计算中运算时间t3=118.8906,而在FFT函数直接计算时运算时间t3=119.0156,由此可知以上三种运算的复杂程度由低到高分别是循环计算、矩阵计算、FFT函数直接运算。在第二个任务实验中,利用DFT实现两个序列的线性卷积运算,并观察DFT的点数与混叠现象,实验结果显示,DFT的混叠现象与两个取样点的点数有关,当L=M+N=1时没有混叠现象,当L1/2=L=L1时存在部分混叠,当LL1/2就会发生完全混叠现象。因此,可总结出一个结论,即在一定条件下,圆周卷积和线性卷积是相等的,可以采用计算圆周卷积来代替线性卷积的计算。在第三个任务实验中,讨论了补零及增加数据长度对信号频谱的影响,通过实验结果显示可知:在原运算的基础上补零可以发现其频谱图发生了明显的变化,由于x=cos(0.48*pi*n)+cos(0.52*pi*n)其频率分别是0.48和0.52,可发现补零后频谱图中集中在0.4到0.6之间。但在后面增加数据的有效长度后发现,频谱图依然发生了明显的变化,其频谱图实验卡和实验报告信息科学与工程学院十分准确的显示了其频率0.48和0.52。通过本次综合性实验,探究了DFT变换的性质和应用,巩固了我们平时课堂上学习的有关离散傅里叶变换的知识点。通过实际动手编写程序以及观察实验结果可让我们发现自己平时学习过程中的盲点、误点以及遗漏,对微码掌握知识点是一个不断更新和完善的过程。这次课程设计使我了解了MATLAB的使用方法,提高了分析和动手实践能力,同时我相信,进一步加强对MATLAB的学习与研究对我今后的学习将会起到很大的帮助!以下由实验教师填写记事评议成绩评定平时成绩_______实验报告成绩________综合成绩_________指导教师签名:
本文标题:DFT-变换的性质及应用
链接地址:https://www.777doc.com/doc-4698039 .html