Matlab FFT / IFFT

Gast #646045
Lesenswert?

Hallo!
Ich spiele gerade etwas mit Matlab rum und habe mir eine Zeitfunktion 
bestehend aus drei Sinunsfunktionen unterschiedlicher Frequenz 
generiert. Diese Wandele ich ins Spektrum und wieder in den Zeitbereich 
und wieder ins Spektrum. Nun wundere ich mich, warum die Amplitudenhöhen 
nicht übereinstimmen! ...richtig, ich wandele ins 
Leistungsdichtespektrum (also keine Phaseninfo)! Also ist mein 
Zeitsignal aus der Rücktransformation natürlich Phasenfalsch - was aber 
doch auf mein daraus entstehendes Spektrum keinen Einfluss hat.
Hier skizziere ich mal den Code:

%Wahl des Testsignals (oben auch ändern)
ZeitSig=10*sin(2*pi*Frequenz*t)+5*sin(2*pi*Frequenz2*t)+8*sin(2*pi*Frequ 
enz3*t);

%FFT vom Signal x
Y= fft(ZeitSig,8192);
% Leistungsdichte Pyy
Pyy=Y.*conj(Y)/8192;

ZeitSigRueck = ifft(Y,8192);
ZeitSigAusPyy = real(ifft(Pyy,8192));

%FFT vom Signal ZeitSigAusPyy
Y= fft(ZeitSigAusPyy,8192);
Pyyy=Y.*conj(Y)/8192;

Ergebnis: Pyy ungleich Pyyy!!! Warum?? ...1000 Dank!
Gast #646097
Lesenswert?

Die Phase schmeiße ich weg (oder besser: In meiner späteren Anwendung 
habe ich sie gar nicht, da ein Spektrumanalyser sie nicht messen kann) - 
möchte quasi nur ein Zeitsignal, was ebenfalls das selbe Spektrum hat 
wie das Spektrum der original-Zeitfunktion!
Bei einem Zeitsignal, welches aus mehreren Sinusfunktionen gleicher 
Amplitude besteht klappt das! ...doch wehe sie haben unterschiedliche 
Amplituden! ...wie kommt das? Danke für weitere Tipps
Gast #744139
Lesenswert?

Matthias hat Recht. Mit dem Imaginärteil schmeißt man NICHT (NUR) die 
Phase weg! Das sind komplexe Werte, und keine Polarkoordinaten! Also 
statt real einfach abs benutzen, und natürlich sqrt nicht vergessen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren