收藏 分享(赏)

实验二 三.doc

上传人:weiwoduzun 文档编号:4294372 上传时间:2018-12-21 格式:DOC 页数:7 大小:43.50KB
下载 相关 举报
实验二 三.doc_第1页
第1页 / 共7页
实验二 三.doc_第2页
第2页 / 共7页
实验二 三.doc_第3页
第3页 / 共7页
实验二 三.doc_第4页
第4页 / 共7页
实验二 三.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、1、用三种不同的 DFT 程序计算 x(n)=R8(n)的傅里叶变换 X(ejw),并比较三种程序计算机运行时间。(1) 用 for loop 语句的 M 函数文件 dft1.m,用循环变量逐点计算 X(k);(2) 编写用 MATLAB 矩阵运算的 M 函数文件 dft2.m,完成上述运算;(3) 编写函数 dft3.m,调用 FFT 库函数,直接计算 X(k);(4) 分别利用上述三种不同方式编写的 DFT 程序计算序列 x(n)的傅立叶变换 X(ejw),并画出相应的幅频和相频特性,再比较各个程序的计算机运行时间。M函数文件如下:dft1.m:functionAm,pha=dft1(x)

2、N=length(x);w=exp(-j*2*pi/N);for k=1:Nsum=0;for n=1:Nsum=sum+x(n)*w(k-1)*(n-1);endAm(k)=abs(sum);pha(k)=angle(sum);enddft2.m:functionAm,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);dft3.m:functionAm,pha=dft3(x)Xk=fft(x);Am=abs(Xk);pha=a

3、ngle(Xk);源程序及运行结果:(1) x=ones(1,8),zeros(1,248);t=cputime;Am1,pha1=dft1(x);t1=cputime-tn=0:(length(x)-1);w=(2*pi/length(x)*n;figure(1)subplot(2,1,1), plot(w,Am1,b); grid;title(Magnitude part);xlabel(frequency in radians);ylabel(|X(exp(jw)|);subplot(2,1,2), plot(w,pha1,r); grid;title(Phase Part);xlabe

4、l(frequency in radians);ylabel(argXexp(jw)/radians);(2) x=ones(1,8),zeros(1,248);t=cputime;Am2,pha2=dft2(x);t2=cputime-tn=0:(length(x)-1);w=(2*pi/length(x)*n;figure(2)subplot(2,1,1), plot(w,Am2,b); grid;title(Magnitude part);xlabel(frequency in radians);ylabel(|X(exp(jw)|);subplot(2,1,2), plot(w,pha

5、2,r); grid;title(Phase Part);xlabel(frequency in radians);ylabel(argXexp(jw)/radians);(3) x=ones(1,8),zeros(1,248);t=cputime;Am3,pha3=dft3(x);t3=cputime-t;n=0:(length(x)-1);w=(2*pi/length(x)*n;figure(3)subplot(2,1,1), plot(w,Am3,b); grid;title(Magnitude part);xlabel(frequency in radians);ylabel(|X(e

6、xp(jw)|);subplot(2,1,2), plot(w,pha3,r); grid;title(Phase Part);xlabel(frequency in radians);ylabel(argXexp(jw)/radians)从以上运行结果可以看出,调用FFT库函数直接计算 X(k)速度最快,矩阵运算次之,用循环变量逐点计算运行速度最慢。因此FFT算法大大提高了DFT的实用性。2、利用DFT实现两序列的卷积运算,并研究DFT点数与混叠的关系。给定x(n)=nR 16(n),h(n)=R 8(n),用FFT 和IFFT分别求线性卷积和混叠结果输出,并用函数stem(n,y)画出相应

7、图形。源程序如下:N=16;x=0:N-1;h=ones(1,8);线性卷积:Xk1=fft(x,23); %做23点fftHk1=fft(h,23);Yk1=Xk1.*Hk1;y1=ifft(Yk1);n=0:22;figure(1)stem(n,y1)混叠:Xk2=fft(x);Hk2=fft(h,16); %做16点fftYk2=Xk2.*Hk2;y2=ifft(Yk2);n=0:15;figure(2)stem(n,y2)将两个信号的DFT相乘,再做反变换,相当于时域做循环卷积。而循环卷积是线性卷积以N为周期周期性延拓的结果,其中 N为离散傅立叶变换的点数。若x1(n)是N1 点序列,

8、x2(n)是N2点序列,则其线性卷积为 N1+N2-1点,做N=max(N1,N2)点的傅立叶变换,则结果中将有N2-1 点是混叠的。题目中N1=16,N2=8,由程序运行结果可以看出,第二张图的前 7(N2-1)个点为混叠结果,后9个点是线性卷积的结果。所以,要用DFT来做线性卷积,DFT的点数必须大于或等于线性卷积的结果。本题中取N1+N2-1=23 为DFT的点数,即可得到正确的线性卷积结果。3、研究高密度频谱与高分辨率频谱。设有连续信号Xa(t)=cos(26.5103t)+cos(27103t)+cos(29103t)以采样频率fs=32kHz 对信号Xa(t) 采样,分析下列三种情

9、况的幅频特性。(1) 采集数据长度 N=16点,做N=16点的DFT,并画出幅频特性。(2) 采集数据长度N=16点,补零到256点,做N=256点的DFT ,并画出幅频特性。(3) 采集数据长度 N=256点,做N=256 点的DFT,并画出幅频特性。观察三幅不同频率特性图,分析和比较它们的特点以及形成的原因。源程序如下:fs=32000; %采样频率N=16; %采集16点n=0:N-1; %做16点DFTxa=cos(2*pi*6.5*103*n/fs)+cos(2*pi*7*103*n/fs)+cos(2*pi*9*103*n/fs);Am1,pha1=dft3(xa);n=0:(le

10、ngth(xa)-1);w=(2*pi/length(xa)*n;figure(1)plot(w,Am1,b); grid;title(Magnitude part);xlabel(frequency in radians);ylabel(|X(exp(jw)|);x=xa(1:16),zeros(1,240); %补零到 256Am2,pha2=dft2(x); %做256点DFTn=0:(length(x)-1);w=(2*pi/length(x)*n;figure(2)plot(w,Am2,b); grid;title(Magnitude part);xlabel(frequency i

11、n radians);ylabel(|X(exp(jw)|);N0=256; %采集256点n0=0:N0-1; %做256点DFTxa0=cos(2*pi*6.5*103*n0/fs)+cos(2*pi*7*103*n0/fs)+cos(2*pi*9*103*n0/fs);Am3,pha3=dft3(xa0);n=0:(length(xa0)-1);w=(2*pi/length(xa0)*n;figure(3)plot(w,Am3,b); grid;title(Magnitude part);xlabel(frequency in radians); ylabel(|X(exp(jw)|);运行结果:N=16点DFT 幅频特性:高密度频谱:高分辨率频谱:观察运行结果可知,N=16点时的DFT,由于点数太少,很难反映出频谱的细节特征,只能分辨出两个频率分量。将16点DFT补零到256点,做256点DFT,由结果可以看出,频率间隔缩小(由2/16 减小为2256 ),得到了比较平滑的连续曲线,此为高密度频谱。它是由16点经过补零所得到的,并没有增加任何信息,频率分辨率并未提高,仍然只能看出两个频率分量。第三次做的是 256 点的 DFT,采集点数大大增加,分辨率提高,可以清楚看到三根谱线的位置,是为高分辨率频谱。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 中学实验

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报