mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP FFT optimierung (Anfängerfrage & eilig!)


Autor: Dennis Meyer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich will eine FFT mit Butterfly berechnen. Dazu kann ich nun die n
Eingabedaten in zwei Teile (also n/2) unterteilen und die FFT(n) durch
2 FFT(n/2) berechnen und diese danach zusammensetzen. Das ganze geht
auch öferts nacheinander, bis nur noch 2 Eingabeelemente vorhanden
sind. So weit alles klar!

Wenn ich jetzt allerdings die FFT berechne nutze ich als Eingabedaten
nur Realwerte (benutze die FFT um Polynome zu multiplizieren ->
Realwerte entsprechen koeffizienten. Sollte aber nichts zur Sache tun).
Imaginäranteil der Eingabedaten ist also auf null. Allerdings berechne
ich die FFT mit Einheitswurzeln, welche je Komplexe Zahlen sind.
-> Kann ich nun nicht zwei Transformationen gleichzeitig berechnen,
indem ich die n Eingabewerte der ersten n Daten auf den Realanteil der
Eingabe lege und die zweiten n Eingabedaten auf den Imaginäranteil. Das
sollte doch funktionieren, oder?
Ich berechne ja sowieso schon Komplexe Additionen, da sollte das auch
keine Performance einbußen oder?

Hinweis: Geht nur um die Theorie, keine praxisbezogenen Optimierungen!

Vielen Dank,
Dennis

Autor: Björn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja das geht, weiß aber nicht mehr wie es ganau geht. Wenn du die
Möglichkeit hast, dann schau mal in dieses Buch, da wird es
beschrieben:

FFT-Anwendungen
von Elbert O. Brigham
ISBN: 3486215671

Gruß
Björn

Autor: icke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann mir spontan nicht vorstellen, daß das geht, das Ergebnis einer fft
ist komplex, auch wenn die Zeitdaten rein real sind.
Oder ich habe deine Absicht nicht verstanden.

Autor: Björn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie gesagt, Brigham beschreibt das Verfahren in seinem Buch.

Gruß

Autor: André (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, Real- und Imaginärteil am Eingang zu nutzen, geht auf jeden Fall
(in diesem Fall sind die gerden Werte der Realteil und die ungeraden
Werte bilden den Imaginärteil), das Ergebnis ist aber neu zu
Rekombinieren, wenn die Transformierte Aussagekraft haben soll. Ich
nehme an, dass eine Rücktransformation erfolgt, die im Ergebnis wieder
nur real ist (genau deswegen funktioniert dieses Verfahren auch, icke).

Autor: a. mittelfinger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das geht !!! Mal ausm Kopf:
Wenn die Koeffizienten real sind, dann sind die positiven Frequenzen
(also e hoch plus alpha) und die negativen Frequenzen (e hoch minus
alpha) gleich, so dass sich der Imaginärteil auslöscht. D.h bei
komplexen Koeffizienten, bei denen der Imaginärteil eigentlich real
ist, sind die beiden Analysen zum einen als komplexe Summe und zum
anderen als komplexe Differenz übereinandergelagert. Also muß man die
korrespondierenden Frequenzen addieren und subtrahieren, um die beiden
Analysen zu erhalten. Wahrscheinlich muß man beide Analysenwerte noch
halbieren, um die korrekten Gewichte zu erhalten. Außerdem müssen die
jeweils negativen Frequenzen durch einfache Spiegelungen ergänzt
werden, damit bei einer Rücktransformation das Ergebnis wieder real
ist. Also alles zwingend logisch...

Autor: Thomas Pototschnig (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht reicht dir die Diskrete Cosinus-Transformation.
Da kommen nur reelle Werte raus und sie ist auch recht schnell. Wird in
z.B. in JPEG, MPEG usw benutzt.

Du kriegst halt dann keine Informationen über die Phase - aber wenn man
die nicht braucht ist es egal.

Formeln gibt es wie Sand im Meer - einfach Tante Gugl fragen :-)

Mfg
Thomas

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.