Audiosignal -> Frequenzbereiche

Loopo

Admiral
Dabei seit
Juli 2002
Beiträge
7.611
Ich möchte ein Audiosignal in Frequenzbereiche umwandeln. Also gibt's irgendwo im Netz eine genauere Erklärung über den Vorgang von Signal->Frequenz?
 

chr1stoph

Ensign
Dabei seit
Nov. 2002
Beiträge
145
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:
 

Loopo

Admiral
Ersteller dieses Themas
Dabei seit
Juli 2002
Beiträge
7.611
Zitat von the Interceptor:
Ich habe das Wort "genaue" nicht umsonst hervorgehoben. ;)

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

Zitat von chr1stoph:
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...
 

chr1stoph

Ensign
Dabei seit
Nov. 2002
Beiträge
145
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?
 

Morgoth

Captain
Dabei seit
Juli 2002
Beiträge
3.889
Zitat von Loopo:
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:
Top