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
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.
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.
Das ist eine Näherung für die Berechnung der Vektorlänge, also keine Wurzel mehr ziehen.
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.
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.
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!)
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.