用Matlab编写fft

  • 格式:docx
  • 大小:22.90 KB
  • 文档页数:2

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FFT算法编写

1、程序

function [A] = myfft(A,M)

N=2^M;

LH=N/2;

J=LH;

N1=N-2;

for I=1:1:N1

if I

T=A(I+1);

A(I+1)=A(J+1);

A(J+1)=T;

end

K=LH;

while J>=K

J=J-K;

K=K/2;

end

J=J+K;

end

for L=1:1:M

B=2^(L-1);

for J=0:B-1

p=J*2^(M-L);

for k=J:2^L:N-1

T=A(k+1)+A(k+B+1)*exp(-i*2*pi*p/N);

A(k+B+1)=A(k+1)-A(k+B+1)*exp(-i*2*pi*p/N);

A(k+1)=T;

end

end

end

end

2、程序检验:

在Matlab中输入如下代码,将自己编写的FFT算法与Matlab自带算法的计算结果进行比较。

A=[0 1 2 3 4 5 6 7];

myfft(A,3)

fft(A,8)

计算结果如下图:

由结果可以看出,编写的myFFT算法得到的结果与Matlab自带算法得到的结果相同,说明编写正确。