资源描述:
《十一、按频率抽取基2-FFT原理及实现.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验题目按频率抽取基2-FFT原理及实现 实验时间 实验台号 实验目的基2-FFT按时间抽取的程序实现;运算量的核算;实验仪器PC台式机,软件MATLAB实验预习实验预习:1、DFT及其性质;2、FFT算法原理; 实验原理:1、DFT:2、一些性质:共轭性:可约性:周期性:3、算法原理:4、算法流程图:实验步骤应用函数for();题目11-1:一、根据原理图编写DIF-FFT算法程序?解:对应MATLAB代码为:functionXk=diffft(xn)M=nextpow2(length(xn));N=2^M;
2、%N=length(xn);A=[xn,zeros(1,N-length(xn))];%A=xn;v=floor(log2(N));WN=exp(-j*2*pi/N);form=1:vfork=0:2^(v-m+1):N-1forK=0:2^(v-m)-1p=k+K;q=p+2^(v-m);r=2^(m-1)*mod(p,2^(v-m+1));B(p+1)=A(p+1)+A(q+1);B(q+1)=(A(p+1)-A(q+1))*WN^r;endendA=B;disp(A);endNI=N/2;forI=1:N
3、-1ifI=TNI=NI-T;T=T/2;endNI=NI+T;enddisp('X[k]:');disp(A);题目11-2:二、对序列进行DFT变换时,比较直接计算法计算DFT和DIT-FTT算法和DIF-FFT计算DFT时间的差异?(需要先定义第十次实验DIT-FFT,第八次实验DFTmat和DFTfor函数)Nmax=256;ditfft_time=zeros(1,Nmax);forn=1:Nma
4、xx=rand(1,n);t=clock;ditfft(x);ditfft_time(n)=etime(clock,t);endk=1:Nmax;diffft_time=zeros(1,Nmax);forn=1:Nmaxx=rand(1,n);t=clock;diffft(x);diffft_time(n)=etime(clock,t);endfigure(1);subplot(2,1,1);plot(k,ditfft_time,'--');ylabel('t/s');title('DIT-FFT执行时间');
5、subplot(2,1,2);plot(k,diffft_time,'--');ylabel('t/s');title('DIF-FFT执行时间');%结果11-1DFTfor_time=zeros(1,Nmax);forn=1:Nmaxx=rand(1,n);t=clock;DFTfor(x);DFTfor_time(n)=etime(clock,t);endfigure(2);subplot(2,1,1);plot(k,DFTfor_time,'--');ylabel('t/s');title('DFTfo
6、r执行时间');DFTmat_time=zeros(1,Nmax);forn=1:Nmaxx=rand(1,n);t=clock;DFTmat(x);DFTmat_time(n)=etime(clock,t);endsubplot(2,1,2);plot(k,DFTmat_time,'--');xlabel('n');ylabel('t/s');title('DFTmat执行时间');%结果11-2实验数据结果及分析11-111-2结果分析:1、从图像中可以看出DIF-FFT和DIT-FFT计算时间相同,比直接
7、计算DFT消耗时间短。直接计算DFT中DFTmat矩阵法要比DFTfor循环法耗时短。思考题教师评语 成绩: 日期: