Frequenzen einpegeln

20/07/2012 - 23:50 von Philipp Kraus | Report spam
Hallo,

ich habe folgendes Problem. Ich habe ein Audiosignal von der
Soundkarte, das ich mit Hilfe des Goerztel Algorithmus untersuche. Ich
möchte wissen,
ob bestimmte Frequenzen in dem Signal enthalten sind, also z.B. die
Frequenz 1200 Hz und 1800 Hz.
Wenn ich auf meine Daten den Goertzel los lasse, dann liefert er mir in
db die Stàrke der Frequenz zurück, je nach
Lautstàrke bzw Rauschen variert aber diese Zahl. Ich muss entscheiden
können, ob die Frequenz vorhanden ist
oder nicht z.B. if (goerztel(signal, 1200) > x)
x wàre dann so etwas wie ein Schwellwert ab wann diese Frequenz als
gefunden dedektiert wird. Das x ist aber
von vielen Faktoren abhàngig, ich denke mit der Zeit kann ich das
entsprechend fitten, aber wie legt man
das zu Beginn fest? Also wie kann man am besten aus den Daten einen
automatischen Pegelwert generieren?
Die Möglichkeit das System anzulernen geht nicht, die einzige
Möglichkeit wàre den Wert hàndisch fest zu legen
und dann mit eingehenden Daten zu optimieren.

Ich hoffe die Frage ist für Mathe nicht OT, aber vielleicht gibt es da
eine Möglichkeit über Frequenzanalyse
einen groben Richtwert zu finden.

Danke

Phil
 

Lesen sie die antworten

#1 Christian Gollwitzer
21/07/2012 - 07:51 | Warnen spam
Hallo Philipp,

Am 20.07.12 23:50, schrieb Philipp Kraus
ich habe folgendes Problem. Ich habe ein Audiosignal von der Soundkarte,
das ich mit Hilfe des Goerztel Algorithmus untersuche. Ich möchte wissen,
ob bestimmte Frequenzen in dem Signal enthalten sind, also z.B. die
Frequenz 1200 Hz und 1800 Hz.
Wenn ich auf meine Daten den Goertzel los lasse, dann liefert er mir in
db die Stàrke der Frequenz zurück, je nach
Lautstàrke bzw Rauschen variert aber diese Zahl. Ich muss entscheiden
können, ob die Frequenz vorhanden ist
oder nicht z.B. if (goerztel(signal, 1200) > x)
x wàre dann so etwas wie ein Schwellwert ab wann diese Frequenz als
gefunden dedektiert wird.



Wenn ich das richtig verstanden habe, liefert Goertzel einen einzelnen
Bin der FFT. Dann würde ich den Wert mit der Varianz des ganzen Arrays
vergleichen, was nach dem Parseval-Theorem dasselbe ist wie die Summe
der Intensitàten über alle Frequenzen. Natürlich müssen die Einheiten
gleich sein, sprich die Varianz muss auch in dieselbe db-Skala
konvertiert werden.

Christian

Ähnliche fragen