FFT i Matlab
Jeg skal kode en fft algoritme i Matlab. Det jeg har lavet indtil videre virker ikke. Nogen der kan finde min fejl?%Vores FFT
r=0:N-1;
W=exp(-i*2*pi/N*r)
nr = bitpladsspejl(N);
step=1;
for m=1:log2(N)
c=1;
while c<=N
a=1;
for n=c:(c+step-1)
x(nr(n+step))=x(nr(n+step))*W(a);
temp = x(nr(n)) + x(nr(n+step));
x(nr(n+step)) = x(nr(n)) - x(nr(n+step));
x(nr(n)) = temp;
a = a + N./(2.^m);
end
c=c+2*step;
end
step=step*2;
end
%Vores FFT - Slut
X er vores input og output signal. Funktionen bitpladsspejl ser sådan ud:
function nr = bitpladsspejl(N)
nr = zeros(N,1);
for c=1:log2(N);
nr(2.^(c-1)+1 : 2.^c) = nr(1 : 2.^(c-1)) + (N./(2.^c));
end
nr = nr+1; %Da matlab er 1 indexeret
Jeg beklager at der ikke er mange kommentarer der beskriver koden.
