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
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.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.