LabVIEWForum.de - Soundmessung und Vergleich von Melodien

LabVIEWForum.de

Normale Version: Soundmessung und Vergleich von Melodien
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo.

ich bin Neuling in der Programmierung von LabView und setze mich derzeit mit Soundmessung via Labview (NI-PXI-4462 und Messmikrofon) auseinander. Ich verwende LV2011 als FULL DEVELOPMENT SYSTEM.

Ziel ist es, eine kurze Melodie (< 3 Sekunden) von sehr einfachen Pieptönen zu erkennen und herausfinden, ob diese mit einem hinterlegten Sollmelodie (die mit der selben Messtechnik aufgenommen wurde) zu vergleichen. Sind IST und SOLL gleich, soll dies durch setzen eines bool's singalisiert werden.

Kann mir dazu jmd. Tipps geben?

Bahn



Gruß Markus
Herzlich willkommen MaW.

Der erste Schritt ist erst einmal - unabhängig von LabVIEW - zu überlegen, anhand welcher Merkmale (auch "Features" genannt) du die Melodien unterscheiden möchtest. Einfallen würden mir da spontan Lautstärkeverlauf, Abstand zwischen Tönen, Tonhöhe...
Was Erkennung von Tönen/Melodien angeht bin ich aber ebenso Neuling.

Man gibt dem Computer dann bekannte Melodien vor (bzw. die Merkmale selbiger) und die neu aufgenommenen werden mit bekanntem verglichen und dem ähnlichstem zugeordnet - auch dafür gibt es verschiedene Verfahren (Stichwort Mustererkennung und Klassifizierung).

Du solltest dich in die Thematik einlesen (spannendes Thema!) und dann etwas konkretere Fragen stellen würde ich vorschlagen.


Gruß
Clyde
Hallo,

ich nehme die Töne, wie beschrieben, per Messmirkofon auf. Dafür nutze icg den "DAQ-ASSISTANT".
Ich habe bereits etwas mit Filtern experimentiert (Tiefpass, Bandpass, etc) und auch schon mit der TONE MEASUREMENTS herumprobiert. Das scheint aber nicht der richtige Weg zu sein.

Meine jetztige Überlegung ist, den Datenstrom, welcher die Samplepunkte der Amplitude bereit stellt (in meinem Falle Werte zw. -6 / 6 Amplitudenhöhe) aufzunehmen und als Muster zu hinterlegen. Dann die Messung erneut starten und das Muster darin "suchen". Hier scheint FFT bzw. Kreuzkorrelation das Richtige zu sein, leider komme ich hier einfach nicht weiter.

Wie schon erwähnt reicht es aus, 3-4 Pieptöne miteinander zu vergleichen.

z.B. BIOS-Pieptöne 1xkurz 1xlang = Fehler xy 2hands
Hallo MaW,

Zitat:z.B. BIOS-Pieptöne 1xkurz 1xlang
Dann mach doch einen einfachen Schwellwert-Vergleich mit der Einhüllenden (hier tut es wohl auch ein RunningAverage auf den Absolutwert). Damit bekommst du schon mal raus, ob PIEP oder Ruhe. Dann nur noch die Flanken der PIEP bestimmen und deren Abstände, damit hast du die PIEP-Länge. Jetzt nur noch zählen, wie oft lang und kurz…
Mein erster Gedanke wäre FFT und dann eine zulässige Abweichung festlegen.

Mittlere Lautstärke analysieren. -> evtl. anpassen. -> Beginn der Melodie mittels Schwellwert ermitteln -> FFT ->innerhalb zulässiger Abweichung?

Normalerweise macht man solche erkennunssachen über neuronale Netze. (Gibts dafür egtl. LV-Packages?)
Kann mir vll. jmd. ein kleines Beispiel zur FFT geben?

Übrigens, die Pieps haben unterschiedliche Tonlagen, also NUR zählen reicht leider nicht aus.
Hallo MaW,

Zitat:Übrigens, die Pieps haben unterschiedliche Tonlagen, also NUR zählen reicht leider nicht aus.
Was hindert dich daran, jeden erkannten Pieps zwecks Frequenzerkennung (einzeln) durch die FFT (oder irgendeine andere Funktion zur Frequenzbestimmung) zu jagen?
Über ein kleines Beispiel zur FFT würde ich mich sehr freuen, ich steig da leider nicht durch.
Hallo MaW,

Beispiele suchen -> Analyse,Signalverarbeitung,Mathematik -> FFT- und Frequenzanalyse.
Da gibt es ein ganzes Dutzend Beispiel-VIs!
Ich habe nun mal eine Frequenz von 300Hz (Amplitude 2Vpp) gemessen (Sample / Rate jeweils 2000) => siehe dazu Anhang

Dabei kann man ja ganz gut erkennen, das in der Zeitleiste bei 300 das Ergebnis der FFT das Maximum hat, was mir ja quasi sagt, dass sich um 300Hz-Frequenz handelt.

Das scheint ja soweit schon ganz gut zu funktionieren. Kann ich durch den Einsatz andere math. Funktionen das Rauschen des Signals Am Anfang (siehe Waveform im Bereich 0-200) rausfiltern. Den teilweise ist die Amplitude in diesem Bereich sehr groß.


Desweiteren überlege ich nun, wie ich mehrere Signale dank FFT miteinander vergleiche:

z.B:
500ms 300Hz
1000ms aus
750ms 600Hz
500ms aus
- wiederhole -

Sorry fürs Nerven, steh aber total auf dem Schlauch Blush
Seiten: 1 2
Referenz-URLs