Audiosignal -> Frequenzbereiche

Loopo

Admiral
Registriert
Juli 2002
Beiträge
7.617
Ich möchte ein Audiosignal in Frequenzbereiche umwandeln. Also gibt's irgendwo im Netz eine genauere Erklärung über den Vorgang von Signal->Frequenz?
 
Erklär mal bitte ein bisschen genauer, was du machen möchtest.
Ein Audiosignal besteht aus mehreren sich überlagernden Frequenzen.

Wie möchtest du also ein Audiosignal in Frequenzen umwandeln :freak:
 
the Interceptor schrieb:
Ich habe das Wort "genaue" nicht umsonst hervorgehoben. ;)

Ich habe inzwischen schon mal diese Seite gefunden, die schon sehr hilfreich ist.

chr1stoph schrieb:
Ein Audiosignal besteht aus mehreren sich überlagernden Frequenzen.

Wie möchtest du also ein Audiosignal in Frequenzen umwandeln :freak:
Du zweifelst im 2. Satz an, was du im 1. Satz noch selbst behauptest. ;)

Was ich vorhabe? Zunächst eine Art EQ programmieren...
 
War vielleicht n bisschen doof ausgedrückt.

Was ich meinte ist, wenn ein Audiosignal schon aus mehreren Frequenzen besteht, wie willst du es dann in Frequenzen umwandeln?
 
Loopo schrieb:
Zunächst eine Art EQ programmieren...

Da gibt es zwei Wege:

Entweder über die FFT das Signal in den Bildbereich transformieren, dann die gewünschte Filterwirkung einstellen und wieder zurücktransformieren.

Oder Du bastelst Dir einen FIR/IIR-Filter.

Beides hat Vor- und Nachteile. Bei wenig komplexen Filtern liegt die zweite Möglichkeit vorn, bei schwierigen Sachen, die lange Filterpolynome benötigen würden, kommt die FFT besser zurecht.

Noch etwas zu dem Zeitaufwand:

FIR/IIR-Filter benötigen exakt so viele komplexe (!) Fließkomma-Multiplikationen wie sie Filterpolynome besitzen. Das heißt, die maximale Filterlänge ist durch die Geschwindigkeit des ausführenden Systems begrenzt.

Eine FFT (und ein iFFT) benötigt (N/2)*ld(N) Multiplikationen (mit N als der Länge der FFT). Hin und Rückweg (FFT und später iFFT) bedeuten also N*ld(N) Multiplikationen. Dazu kommen noch die Multiplikationen durch den Filter, die betragen exakt N. Insgesamt erhält man also N+N*ld(N) Multiplikationen.

Wie man sieht, skaliert die FIR/IIR-Lösung linear, die FFT-Lösung logarithmisch (allerdings mit anderen Variablen). Ab einem bestimmten Filteraufwand ist immer die FFT-Lösung im Vorteil. Die FIR/IIR-Lösung ist allerdings erheblich einfacher zu realisieren, besonders FIR, die benötigt nur ein statisches Array und ein Schieberegister (Tipp: Schieberegister durch einen Ringpuffer realisieren).

Gruß
Morgoth
 
Zuletzt bearbeitet:
Zurück
Oben