|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 cjsb37 于 2013-4-29 08:58 编辑
这是64点的FFT,我用的是库利图基算法,分成8*8,算出的结果与matlab自带的函数算出的不一致,请高手指点错在什么地方。
matlab程序如下:
clear;
r=rand(1,64);
data_in=r;
data_in = reshape(d_in,8,8);
re0=fft(r);
W = exp(-2*pi*1i/64); %twiddle factors
num = 1;
tw = zeros(1,64);
for x = 0:7
for y = 0:7
tw(num) = W^(x*y);
num = num +1;
end
end
tw = reshape(tw,8,8);
data_a = zeros(8,8); %first 8-point fft
for n = 1:8
%data_a(:,n) = fft(data_in(:,n));
data_a(:,n) = butterfly(data_in(:,n));
end
data_b = zeros(8,8); %multiplication
for m = 1:8
data_b(:,m) = data_a(:,m).*tw(:,m);
end
data_c = zeros(8,8); %second 8-point fft
for k = 1:8
%data_c(k, = fft(data_b(k,);
data_c(k, = butterfly(data_b(k,:));
end
result=reshape(data_c,1,64);
其中butterfly是做8点FFT的函数(这个函数没问题),可是最后结果result 与 re0不一致,有的差很多,不知程序哪里出错了,求高手指点,谢谢。
|
|