资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
对于正弦序列进行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,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*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; %求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执行时间)
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号