Forum: Digitale Signalverarbeitung / DSP / Machine Learning IFFT


von Andreas J. (Gast)


Lesenswert?

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

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Du nimmst einfach nur den Realteil des Signals.

von Andreas J. (Gast)


Lesenswert?

Ah Ja , Danke schön
Mfg Andreas

von Detlef _. (detlef_a)


Lesenswert?

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

von Detlef _. (detlef_a)


Lesenswert?

>>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

von Andreas J. (Gast)


Lesenswert?

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

von Detlef _. (detlef_a)


Lesenswert?

>>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

von Xenu (Gast)


Lesenswert?

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).

von Andreas J. (Gast)


Lesenswert?

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

von Detlef _. (detlef_a)


Lesenswert?

Wenn bei der FFT und der folgenden IFFT nicht dasselbe rauskommt, was Du
reinsteckst, funkt die FFT oder die IFFT nicht.

Cheers
Detlef

von Andreas J. (Gast)


Lesenswert?

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?

von Andreas J. (Gast)


Lesenswert?

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

von Michael P. (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.