mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP IFFT


Autor: Andreas J. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du nimmst einfach nur den Realteil des Signals.

Autor: Andreas J. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah Ja , Danke schön
Mfg Andreas

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas J. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht 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-35037...

Cheers
Detlef

Autor: Xenu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Andreas J. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Detlef _a (detlef_a)
Datum:

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

Cheers
Detlef

Autor: Andreas J. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Andreas J. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.