www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Umrechnung in db nach FFT


Autor: max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

ich habe das Ergebnis einer FFT vorliegen (komplex, fixed-point) und 
will das so errechnete Frequenzspektrum logarithmisch darstellen.

Dazu muss ich ja zuerst die beiden komplexen Anteile quadrieren, 
addieren, die wurzel ziehen und den log10 berechnen.

Geht das irgendwie elleganter, schneller, schöner? Gibts irgend eine 
Näherung dafür oder sonstige Tricks?

Vielen Dank schon mal für eventuelle Antworten.
Einen schönen Abend

  Max

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

Bewertung
0 lesenswert
nicht lesenswert
max schrieb:
> Dazu muss ich ja zuerst die beiden komplexen Anteile quadrieren,
> addieren, die wurzel ziehen und den log10 berechnen.
>
> Geht das irgendwie elleganter, schneller, schöner? Gibts irgend eine
> Näherung dafür

Für den Absolutwert kann man |Re| + |Im| als Näherung nehmen, für log am 
einfachsten eine Tabelle. Kommt alles darauf an wie schnell und genau du 
das Ergebnis brauchst.

Autor: Helmut S. (helmuts)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Schwarz schrieb:
> max schrieb:
>> Dazu muss ich ja zuerst die beiden komplexen Anteile quadrieren,
>> addieren, die wurzel ziehen und den log10 berechnen.
>>
>> Geht das irgendwie elleganter, schneller, schöner? Gibts irgend eine
>> Näherung dafür
>
> Für den Absolutwert kann man |Re| + |Im| als Näherung nehmen, für log am
> einfachsten eine Tabelle. Kommt alles darauf an wie schnell und genau du
> das Ergebnis brauchst.

Also das Quadrieren und Addieren ist das kleinste Problem. Die Wurzel 
und der Logarithmus sind die Zeitfresser.

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

Bewertung
0 lesenswert
nicht lesenswert
Das ist eine Näherung für die Berechnung der Vektorlänge, also keine 
Wurzel mehr ziehen.

Autor: Helmut S. (helmuts)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Schwarz schrieb:
> Das ist eine Näherung für die Berechnung der Vektorlänge, also keine
> Wurzel mehr ziehen.

Hallo Andreas,

danke für die Aufklärung. Ich hatte das falsch verstanden.

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Betrag der größeren Zahl (Re oder Im) plus 0,4(142) * der Betrag der 
kleineren Zahl, das stimmt exakt auf 8 Punkten des Kreises, also alle 45 
Grad.

Autor: max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die sehr hilfreichen Antworten!

Ich werde Christoph Kesslers Vorschlag mit der von Andreas Schwarz 
vorgeschlagenen Tabelle kombinieren.

Ich frag mich noch immer, warum ich auf die Tabelle nicht gleich von 
alleine gekommen bin, vor allem weil die Genauigkeit die hinten 
rauskommen soll eh nur 8 Bit sind. ;) (Das Ergebnis kommt in nen 
Dual-Port-Ram und wird dann vom VGA-Controller ausgelesen. Mehr als 256 
Pixel in der Höhe hab ich dafür eh nicht Platz!)

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]
  • [vhdl]VHDL-Code[/vhdl]
  • [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.