FFT_matlab代码

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

function y=luyasufft(x)
N=length(x);
L=ceil(log2(N));
if (L>log2(N))
LL=2^L;
for i=N+1:LL
x(i)=0;
end
N=LL;
end
rev_x=zeros(1,N);
for m=0:N-1
bit=dec2bin(m);
if length(bit)Z=zeros(1,(L-length(bit)));
Z_str=num2str(Z);
bit=[Z_str,bit];
end
it_str=fliplr(bit);
rev_x(m+1)=x(bin2dec(it_str)+1);
end
data=zeros(N,L+1);
data(:,1)=rev_x;
for k=2:L+1
for ku=1:2^(L+1-k)
for gp=1:2^(k-2)
W=cos(2*pi*(gp-1)/(2^(k-1)))-sin(2*pi*(gp-1)/(2^(k-1)))*j;
G=data((ku-1)*2^(k-1)+gp,k-1);
H=data((ku-1)*2^(k-1)+gp+2^(k-2),k-1);
data((ku-1)*2^(k-1)+gp,k)=G+W*H;%蝶形运算
data((ku-1)*2^(k-1)+gp+2^(k-2),k)=G-W*H;%蝶形运算

end
end
end

y=data(:,L+1);
% 附录

%str=dec2bin(d)把十进制整数d转换成2进制形式表示,并存在一个字符串中。d必须是一个非负的比2^52次方小的整数

%str=num2str(A)把数组A中的数转换成字符串表示形式

%fliplr(X)功能:matlab中的fliplr函数实现矩阵的左右翻转fliplr(X)使矩阵X沿垂直轴左右翻转。



相关文档
最新文档