www.pudn.com > jaguar2s.zip > FFT256.M


function y = fft256(x,fwd) 
   
% 8 executions of a rad-2 = 1024 cycles 
% fwd = 1 DFT 
% fwd = 0 IDFT 
% size(x) = 256 
N=256; 
 
M=128; 
E=1; 
for s=1:E 
   offset=(s-1)*(M*2); 
   for n=1:M 
      stagetmp = rad2([x(n+offset) x(n+offset+M)],E*(n-1),N,fwd); 
      stage1(n+offset)=stagetmp(1); 
      stage1(n+offset+M)=stagetmp(2); 
   end; 
end; 
 
%size(stage2) = 128 
M=64; 
E=2; 
for s=1:E 
   offset=(s-1)*(M*2); 
   for n=1:M 
      stagetmp = rad2([stage1(n+offset) stage1(n+offset+M)],E*(n-1),N,fwd); 
      stage2(n+offset)=stagetmp(1); 
      stage2(n+M+offset)=stagetmp(2); 
   end; 
end; 
 
%size(stage2) = 64 
M=32; 
E=4; 
for s=1:E 
   offset=(s-1)*(M*2); 
   for n=1:M 
      stagetmp = rad2([stage2(n+offset) stage2(n+offset+M)],E*(n-1),N,fwd); 
      stage3(n+offset)=stagetmp(1); 
      stage3(n+M+offset)=stagetmp(2); 
   end; 
end; 
 
%size(stage3) = 32 
M=16; 
E=8; 
for s=1:E 
   offset=(s-1)*(M*2); 
   for n=1:M 
      stagetmp = rad2([stage3(n+offset) stage3(n+offset+M)],E*(n-1),N,fwd); 
      stage4(n+offset)=stagetmp(1); 
      stage4(n+M+offset)=stagetmp(2); 
   end; 
end; 
 
%size(stage4) = 16 
M=8; 
E=16; 
for s=1:E 
   offset=(s-1)*(M*2); 
   for n=1:M 
      stagetmp = rad2([stage4(n+offset) stage4(n+offset+M)],E*(n-1),N,fwd); 
      stage5(n+offset)=stagetmp(1); 
      stage5(n+M+offset)=stagetmp(2); 
   end; 
end; 
 
%size(stage5) = 8 
M=4; 
E=32; 
for s=1:E 
   offset=(s-1)*(M*2); 
   for n=1:M 
      stagetmp = rad2([stage5(n+offset) stage5(n+offset+M)],E*(n-1),N,fwd); 
      stage6(n+offset)=stagetmp(1); 
      stage6(n+M+offset)=stagetmp(2); 
   end; 
end; 
 
%size(stage6) = 4 
M=2; 
E=64; 
for s=1:E 
   offset=(s-1)*(M*2); 
   for n=1:M 
      stagetmp = rad2([stage6(n+offset) stage6(n+offset+M)],E*(n-1),N,fwd); 
      stage7(n+offset)=stagetmp(1); 
      stage7(n+M+offset)=stagetmp(2); 
   end; 
end; 
 
%size(stage7) = 2 
M=1; 
E=128; 
for s=1:E 
   offset=(s-1)*(M*2); 
   for n=1:M 
      stagetmp = rad2([stage7(n+offset) stage7(n+offset+M)],E*(n-1),N,fwd); 
      stage8(n+offset)=stagetmp(1); 
      stage8(n+offset+M)=stagetmp(2); 
   end; 
end; 
 
y=stage8;