Forum: PC-Programmierung MathLab FFT-Programmierung


von Gökhan C. (ghood92)


Lesenswert?

Hallo alle miteinander,
Ich hab ein kleines Problem in MathLab und zwar:
ich muss die fft selber programmieren!

das ausrechnen der Twiddle faktoren is ja nicht so ein Hindernis, da 
diese fast gleich sind wie bei der DFT

Ich würde ja gerne die fft Funktion aus der Library verwenden jedoch 
müssen wir sie selber ausprogrammieren.
Ich hoffe, dass ein MathLab Profi mir helfen kann :)
Hier mein Source Code


f = 100;                  % Frequenz Sinus
Fs = 8;               % Abtastrate
Ts = 1/Fs;              % Dauer pro Sample
t = 0:Ts:1-Ts;        %Zeit Vektor
N = length(t);          %Anzahl der Samples
x = sin(2*pi*f*t)+sin(2*pi*f*4*t)      %Sinus berechnen

for (k=1:1:N)
H=0;
for (n=1:1:N/2)
H = H+x(2*n)*exp((-1i*k*2*n*2*pi/N))+x(n)*exp((-1i*k*(2*n)*2*pi/N))
end
X(k) = abs(H);
stem(X)
title('Spektrum')
xlabel('Frequenz [Hz]')
ylabel('Amplitude')
end

Bei der Auswertung bekomme ich dann eine Amplitude von 10^-13
ich hoffe dass mir jemand helfen kann
mfg

von J. S. (bb84)


Lesenswert?

H = H+x(2*n)*exp((-1i*k*2*n*2*pi/N))+x(n)*exp((-1i*k*n*2*pi/N))

Amplituden sind relativ zueinander, könnte man noch normieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.