Forum: Digitale Signalverarbeitung / DSP / Machine Learning gemessene Daten in Frequenzbereich und wieder in Zeitbereich transformieren


von Neg (Gast)


Lesenswert?

hallo Leute,
ich habe die gemessene Daten ( Kraft und Zeit)
und ich will zuerst mit fft im Frequenzbereich transformieren und dann 
mit Ifft in Zeitbereich transformieren aber rücktransformierte Sinnal 
sieht nicht wie Orginal Signal aus.
bitte helfen Sie mir.
Danke von allen.

Force_Sim = sqrt(helpMinSearch_Fx.^2 + helpMinSearch_Fy.^2 + 
helpMinSearch_Fz.^2);
figure(1); % Darstellung im Zeitbereich
plot(t_Sim,Force_Sim)
% Fouriertransformation
T    = (t_Sim(end)-t_Sim(1))/(length(t_Sim)-1); %sampling time
Fs   = 1/T;               %sampling frequency
L    = length(t_Sim);         %length of the signal
NFFT = 2^nextpow2(L);     %next higher power of 2 of the length L
f    = Fs/2*linspace(0,1,NFFT/2);
Y    = fft(Force_Sim,NFFT)/NFFT;     %FFT of Force_Sim
Force_Sim_fft = 2*abs((Y));
figure(2);
plot(f,Force_Sim_fft)
% Inverse Fouriertransformation
Force_Sim_Ifft=(ifft(Force_Sim_fft,L));
figure(3)
plot(t_Sim,Force_Sim_Ifft,'r')

von chris (Gast)


Lesenswert?

L ist das Problem, würde ich sagen.

von Alexander L. (lippi2000)


Lesenswert?

Also das Problem ist recht einfach.

Force_Sim_fft = 2*abs((Y));
figure(2);
plot(f,Force_Sim_fft)
% Inverse Fouriertransformation
Force_Sim_Ifft=(ifft(Force_Sim_fft,L));


Die Rücktransformation muss mit dem komplexen Spektralanteilen erfolgen, 
hier wird allerdings das Betragsspektrum rücktransformiert.

Bemerkung: Ein rein reeles Spektrum ergibt ein komplexes Signal!

Lösung:  Force_Sim_Ifft= ifft( y,L);

Gruß Alexander

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.