(fft和dft)matlab源代码

上传人:pu****.1 文档编号:505272342 上传时间:2023-04-15 格式:DOC 页数:3 大小:63KB
返回 下载 相关 举报
(fft和dft)matlab源代码_第1页
第1页 / 共3页
(fft和dft)matlab源代码_第2页
第2页 / 共3页
(fft和dft)matlab源代码_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《(fft和dft)matlab源代码》由会员分享,可在线阅读,更多相关《(fft和dft)matlab源代码(3页珍藏版)》请在金锄头文库上搜索。

1、对于正弦序列进行16点dft和fft变换: k=16; n1=0:1:15; %取点xa1=sin(2*pi*n1/k); %写入输入函数subplot(2,2,1) %输出输入函数plot(n1,xa1) xlabel(t/T);ylabel(x(n); xk1=dft(xa1); %对xa1做dft变换xk1=abs(xk1); %对xa1做dft变换去绝对值subplot(2,2,2) %输出dft变换后的结果stem(n1,xk1) xlabel(k);ylabel(X(k); k=16; n1=0:1:15; %取点xa1=sin(2*pi*n1/k); %写入输入函数subplot

2、(2,2,1) %输出输入函数plot(n1,xa1) xlabel(t/T);ylabel(x(n); xk1=fft(xa1); %对xa1做dft变换xk1=abs(xk1); %对xa1做dft变换去绝对值subplot(2,2,2) %输出dft变换后的结果stem(n1,xk1) xlabel(k);ylabel(X(k); Dft变换 fft变换fft变换过程:function y=myfft(xr,n) p=0:n-1 ; % 开始倒位序nu=log2(n); p1=p; b=zeros(1,n); for t=1:nu; p2=floor(p1/2); b=b*2+(p1-2

3、*p2); p1=p2; end; yr(p+1)=xr(b+1); xr=yr; % 倒位序结束t=0:n/2-1; %计算因子 w 开始 (只计算for v=0:n/2-1; w=exp(-2*i*pi*t/n); end; %计算因子w 结束 for m=1:nu; % 计算x(k)开始 h=2(m-1); k=1; while(kn+1) for t=1:h; y=bitshift(k-1,nu-m,nu)+1; %求w 的幂次数 xch(k)=xr(k)+w(y)*xr(k+h); k=k+1; end; for t=1:h; y=bitshift(k-1-h,nu-m,nu)+1;

4、 %求w 的幂次数 xch(k)=xr(k-h)-xr(k)*w(y); k=k+1; end;end; xr=xch; end; % 计算x(k)结束 y=xr %输出变换后的结果dft和fft时间对比:dft_time=zeros(1,100);for n=1:100 %取1到100点的dftt=clock; a=sin(n)+cos(n);DFTmatlab(a,n); %做不同抽样点的dftdft_time(n)=etime(clock,t); %计算不同点数运行的时间end;n=1:100;subplot(1,2,1) ; %将绘图显示在指定位置plot(n,dft_time,.); %以”.”作时间大小的标记xlabel(N); ylabel(时间 (单位:秒); %制定横纵坐标的显示内容title(DFT执行时间); %绘图的标题fft_time=zeros(1,100);for n=1:1:100t=clock;a1=sin(n)+cos(n);FFTmatlab(a1);fft_time(n)=etime(clock,t);endn=1:100;subplot(1,2,2);plot(n,fft_time,.);xlabel(N); ylabel(时间 (单位:秒)title(FFT执行时间)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号