- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用matlab编的fft变换程序
用matlab编的fft变换程序
用蝶形算法和码位倒置法编写的fft变换程序,并验证之,有兴趣的可以看看。function data=myfft(datat,nn,isign)datat=mybitrevorder(datat,nn);? ?? ?? ?? ?? ? %这个地方也可以用matlab自带的bitrevorder,有兴趣的还是自己编一下for i=0:length(datat)-1? ? data(2*i+1)=datat(i+1);? ? data(2*i+2)=0;end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%n=nn.*2;mmax=2;while nmmax;? ? istep=2.*mmax;? ? theta=6.28318530717959/(isign*mmax);? ? wtemp=sin(0.5*theta);wpr = -2.0*wtemp*wtemp;wpi=sin(theta);wr=1.0;wi=0.0;? ? for m=1:2:mmax? ?? ???for i=m:istep:n? ?? ?? ?? ?j=i+mmax;? ?tempr=wr*data(j)-wi*data(j+1);? ?tempi=wr*data(j+1)+wi*data(j);? ?data(j)=data(i)-tempr;? ?data(j+1)=data(i+1)-tempi;? ?data(i)=data(i)+tempr;? ?data(i+1)=data(i+1)+tempi;? ?? ???end? ?? ???wtemp=wr;? ?? ???wr=wtemp*wpr-wi*wpi+wr;??wi=wi*wpr+wtemp*wpi+wi;? ? end? ? mmax=istep;end??%%%%%%%%%%%%%码位倒置程序%%%%%%%%%%%%%%%%%%%%function??A=mybitrevorder(A,N)j=N./2;for i=2:1:N-1? ? if ij? ?? ???temp=A(i);? ?? ???A(i)=A(j+1);? ?? ???A(j+1)=temp;? ? end? ? k=N/2;? ? while j=k? ?? ???j=j-k;? ?? ???k=k/2;? ? end? ? j=j+k;end%%%%%%%%%%%%%进行验证(matlab自带的fft,自己编写的fft,和函数的解析fft三者的比较%%%%%%%clear all;isign=1;nn=256;t=linspace(0,3,nn);f=2.*exp(-3.*t);data=myfft(f,nn,isign);Ts=t(2)-t(1);Ws=2.*pi./Ts;W=Ws.*(0:nn./2)./nn;for i=0:nn-1? ? datar(i+1)=data(2.*i+1).*Ts;? ? datai(i+1)=data(2.*i+2).*Ts;endfor i=1:nn./2+1? ? co(i)=datar(i);? ? si(i)=datai(i);? ? power(i)=(co(i).^2+si(i).^2).^0.5;endF=fft(f);Fp=F(1:nn./2+1)*Ts;Fpr=real(Fp);Fpi=imag(Fp);W=Ws.*(0:nn./2)./nn;A=abs(Fp);Fa=2./(3+j.*W);B=abs(Fa);plot(W,B,o,W,A,+r,W,power,g);
文档评论(0)