Hallo Eine Frage zur IFFT Die IFFT liefert ja im Ergebnis ein komplexes Signal.(real u. Imag.) Wie bekommt man das wieder reelwertig so das am Ende ein Sinus zusehen ist. Danke
Die FFT eines rein reellen Signals liefert Dir ein Spektrum, das konjugiert komplex ist. Wenn Du ein beliebiges bekomms Du kein rein reelles Signal. Natürlich kanns Du den Imaginärteil wegschmeissen, das Spektrum dieses reellen Signals ist allerdings nicht Dein ursprüngliches. Also, in der Verarbeitungsfolge: X(f)->IFFT->x(t)->Imag(x(t))=0->FFT->Y(f) sind die Spektren Y(f) und X(f) ungleich. Cheers Detlef
>>Wenn Du ein beliebiges bekomms Du kein rein reelles Signal. <<
Ähm:
"Wenn Du ein beliebiges Spektrum transformierts bekomms Du kein rein
reelles Signal."
solls wohl heißen.
Cheers
Detlef
Vor meiner IFFT setze ich in dem Reellen Spektrumanteil z.B. den 2.Wert auf 10000 alles andere auf Null. Imaginäre Anteile alle auf Null. Nach der IFFT habe ich im Real Teil eine vollständige Cos. Schwingung und im imag. Teil eine vollst Sin. Schwingung. Das letztere dürfte da doch aber nicht drinnstehen Oder? Mfg Andreas
>>Das letztere dürfte da doch aber nicht drinnstehen Oder?<< So ist es. Dein Spektrum ist ja auch keines eines rein reelen Signals, dazu muß Du den Realteil des letten Wertes Deines Fensters auch auf 10000 setzen. In Matlab sieht das so aus:H=zeros(1,512);H(2)=1000;H(512)=1000;t=ifft(H); Habe ich auch mal hier schon erheblich dargelegt: http://www.mikrocontroller.net/forum/read-10-350375.html#351320 Cheers Detlef
Ein reales Zeitsignal hat ein konjugiert-komplexes Spektrum und umgekehrt, also reelles Spektrum <-> konjugiert-komplexes Zeitsignal. Mathematisch gesehen, eben weil man sich ein reelles Signal als Addition zweier konjugier-komplexer Drehzeiger (e^jwt und e^-jwt) vorstellen kann. Wenn Du bei einer IFFT ein Zeitsignal bekommen willst, das rein real sein soll, musst Dein Spektrum konjugiert-komplex sein. Es gibt übrigens auch FFT-Funktionen die speziell auf reelle Signale ausgelegt sind (z.B. bei der FFTW-Bibliothek, die auch bei MATLAB benutzt wird).
Wenn ich z.B. einen um 20 Grad verschobenen Sinus als Sampel ein- gelesen habe und diesen einer FFT zuführe ,dann anschliessend die IFFT mache erhalte ich im reel Array ein cosinus und im Imag Array einen Sinus .Die müssen doch aber beide irgendwie verrechnet werden ,so das der um 20 Grad verschoben Sinus wieder erzeugt wird ? In den beiden Arrays ist zwar die richtige Frequenz aber nicht die Richtige Phasenlage vorhanden. Gruss Andreas
Wenn bei der FFT und der folgenden IFFT nicht dasselbe rauskommt, was Du reinsteckst, funkt die FFT oder die IFFT nicht. Cheers Detlef
Ich kann doch das Re.Array und ds Im. Array am Ende der IFFT addieren . Ist des Re Array dominanter wird die Phase zu Cos hin verschoben und umgekehrt. oder sehe ich das zu einfach?
Habe den Fehler im Code gefunden. Jetzt ist das imaginär Array am Ende der IFFT immer 0. Und die Zugehörige Funktion des Spektrums ist im Reellen Array vorhanden. Danke für die Tips Mfg Andreas
Das Leistungsspektrum ist Realteil + Imaginärteil zum Quadrat. p(x) = sqr(real(x)^2 + imag(x)^2) Das ergibt bei einem Sinus und einen Cosinus ein Konstanter Wert, das ist Richtig! Das im Frequenzspektrum eines Impules kommen alle Frequenzen gleich vor. Mfg Michael
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.