% funktion  [usc,fm,sme,smo]=xfftmatrix(nel,nr)
% produziert zum Nachvollziehen einer FFT im Skript shofftalgo.m
% die Matrizen usc=unscramble, fm=nr-fache Teil-DFT in fm(nel x nel)
% sme=selektiv Bearbeiten even-Terme, sm0=selektiv Bearbeiten odd-Terme 
function [usc,fm,sme,smo]=xfftmatrix(nel,nr) 
     vv= exp(-i*2*pi/nel);
 fmp = zeros(nel);
 smop = fmp;
 smep = fmp;
 uscp = fmp;
 for k=1:nel/2
   smep(k,k)= 1;
   smep(k,k+nel/2)= 1;
 end
 for k=1:nel/2
   smop(k+nel/2,k)= vv^(k-1); 
   smop(k+nel/2,k+nel/2)= -vv^(k-1);
 end
 fmp = [dftmatrix(nel/2) zeros(nel/2) ; zeros(nel/2) dftmatrix(nel/2) ];
 for k=1:nel/2
   uscp(2*k-1,k)= 1;
   uscp(2*k,k+nel/2)= 1;
 end
 fm = zeros(nel*nr);
 smo = fm;
 sme = fm;
 usc = fm;
nini = nel;
for l=1:nr
 for r=1:nel
  for c = 1:nel
    fm(r+(l-1)*nel,c+(l-1)*nel)= fmp(r,c);
    sme(r+(l-1)*nel,c+(l-1)*nel)= smep(r,c);
    smo(r+(l-1)*nel,c+(l-1)*nel)= smop(r,c);
    usc(r+(l-1)*nel,c+(l-1)*nel)= uscp(r,c);
  end
 end
end
