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;