您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > fft源代码(matlab)
对于正弦序列)(8sin)(3nRnnxN进行16点的dft仿真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);xk1=abs(xk1);subplot(2,2,2)stem(n1,xk1)xlabel('k');ylabel('X(k)');n2=[0:1:7];xa2=sin(2*pi*n2/k);subplot(2,2,3)plot(n2,xa2)xlabel('t/T');ylabel('x(n)');xk2=fft(xa2);xk2=abs(xk2);subplot(2,2,4)stem(n2,xk2)xlabel('k');ylabel('X(k)');functiony=myfft(xr,n)p=0:n-1;%开始倒位序nu=log2(n);p1=p;b=zeros(1,n);fort=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开始(只计算forv=0:n/2-1;w=exp(-2*i*pi*t/n);end;%计算因子w结束form=1:nu;%计算x(k)开始h=2^(m-1);k=1;while(kn+1)fort=1:h;y=bitshift(k-1,nu-m,nu)+1;%求w的幂次数xch(k)=xr(k)+w(y)*xr(k+h);k=k+1;end;fort=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%输出变换后的结果
本文标题:fft源代码(matlab)
链接地址:https://www.777doc.com/doc-5964925 .html