实验二 三.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二 三

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: function[Am,pha]=dft1(x) N=length(x); w=exp(-j*2*pi/N); for k=1:N sum=0; for n=1:N sum=sum+x(n)*w^((k-1)*(n-1)); end Am(k)=abs(sum); pha(k)=angle(sum); end dft2.m: 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); dft3.m: function[Am,pha]=dft3(x) Xk=fft(x); Am=abs(Xk); pha=angle(Xk); 源程序及运行结果: (1) x=[ones(1,8),zeros(1,248)]; t=cputime; [Am1,pha1]=dft1(x); t1=cputime-t n=[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); xlabel(frequency in radians); ylabel(argX[exp(jw)]/radians); (2) x=[ones(1,8),zeros(1,248)]; t=cputime; [Am2,pha2]=dft2(x); t2=cputime-t n=[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,pha2,r); grid; title(Phase Part); xlabel(frequency in radians); ylabel(argX[exp(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(exp(jw))|); subplot(2,1,2), plot(w,pha3,r); grid; title(Phase Part); xlabel(frequency in radians); ylabel(argX[exp(jw)]/radians) 从以上运行结果可以看出,调用FFT库函数直接计算X(k)速度最快,矩阵运算次之,用循环变量逐点计算运行速度最慢。因此FFT算法大大提高了DFT的实用性。 2、利用DFT实现两序列的卷积运算,并研究DFT点数与混叠的关系。 给定x(n)=nR16(n),h(n)=R8(n),用FFT和IFFT分别求线性卷积和混叠结果输出,并用函数stem(n,y)画出相应图形。 源程序如下: N=16; x=[0:N-1]; h=ones(1,8); 线性卷积: Xk1=fft(x,23); %做23点fft Hk1

文档评论(0)

zijingling + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档