www.pudn.com > jaguar2s.zip > jaguar.m


function y = jaguar(x,fwd) 
   
% fwd = 1 DFT 
% fwd = 0 IDFT 
 
%******************************************************** 
%*****Start with one radix-4 stage(Cost=256 cycles)****** 
for n=1:256 
   rama(n) = x(n); 
   ramb(n) = x(n+256); 
   ramc(n) = x(n+512); 
   ramd(n) = x(n+768); 
end; 
radix=4; 
for n=1:256 % Note:inplace computation 
      stagetmp = rad2_4([rama(n) ramb(n) ramc(n) ramd(n)],n,1024,fwd,radix); 
      rama(n)=stagetmp(1); 
      ramb(n)=stagetmp(2); 
      ramc(n)=stagetmp(3); 
      ramd(n)=stagetmp(4); 
end; 
 
%******************************************************** 
%*** Now do 4 concurrent radix-2 256point FFT's ********* 
%        (Cost = 8*128=1024 cycles) 
 
 
[rama,ramb]=fft256s(rama,ramb,fwd);% share the radix4 resource 
ramc=fft256(ramc,fwd); 
ramd=fft256(ramd,fwd); 
 
rama=bitrev(rama); 
ramb=bitrev(ramb); 
ramc=bitrev(ramc); 
ramd=bitrev(ramd); 
 
%******************************************************** 
stage = [rama ramb ramc ramd]; 
 
if (fwd==1) 
    y=bitrev2(stage); 
else 
    y=bitrev2(stage)/1024; 
end;