41 Stimmen

Ermitteln Sie anhand eines Audiostroms, wann eine Tür zuschlägt (Berechnung des Schalldruckpegels?)

Nicht unähnlich einem Klatschdetektor ("Klatschen Sie! klatschen klatschen Klatschen Sie ab! klatschen klatschen Klatsche ein, klatsche aus, der Clapper! klatschen klatschen ") Ich muss erkennen, wenn sich eine Tür schließt. Dies geschieht in einem Fahrzeug, was einfacher ist als eine Zimmer- oder Wohnungstür:

Zuhören: http://ubasics.com/so/van_driver_door_closing.wav

Sehen Sie:
image of waveform shows steady line, then sudden disruption, settling down to steady line

Es wird mit 16bits 4khz gesampelt, und ich möchte eine Menge Verarbeitung oder Speicherung von Samples vermeiden.

Wenn man sich das in Audacity oder einem anderen Waveform-Tool anschaut, ist es ziemlich ausgeprägt und wird fast immer durch den erhöhten Schalldruck im Fahrzeug geclippt - auch wenn die Fenster und andere Türen geöffnet sind:

Zuhören: http://ubasics.com/so/van_driverdoorclosing_slidingdoorsopen_windowsopen_engineon.wav

Sehen Sie:
alt text

Ich vermute, dass es einen relativ einfachen Algorithmus gibt, der Messwerte mit 4 kHz und 8 Bit erfasst und den "stabilen Zustand" festhält. Wenn der Algorithmus einen signifikanten Anstieg des Schallpegels feststellt, würde er die Stelle markieren.

  • Was denken Sie darüber?
  • Wie würden Sie dieses Ereignis erkennen?
  • Gibt es Code-Beispiele für Schalldruckpegelberechnungen, die hilfreich sein könnten?
  • Kann ich mit einer geringeren Abtastfrequenz auskommen (1 kHz oder noch langsamer)?

Aktualisierung: Ich spiele mit Octave (Open Source für numerische Analyse - ähnlich wie Matlab) und versuche herauszufinden, ob ich mit dem Root Mean Square (Wurzel-Mittelwert-Quadrat) das bekomme, was ich brauche (was zu etwas führt, das dem SPL sehr ähnlich ist)

Update2: Bei der Berechnung des RMS wird die Tür im einfachen Fall leicht geschlossen:
alt text alt text
Jetzt muss ich mir nur noch die schwierigen Fälle ansehen (Radio an, Heizung/Luft auf höchster Stufe usw.). Das CFAR sieht wirklich interessant aus - ich weiß, dass ich einen adaptiven Algorithmus verwenden muss, und CFAR passt auf jeden Fall ins Konzept.

-Adam

0 Stimmen

Ist ein Beschleunigungsmesser eine Option?

0 Stimmen

Ich habe einen Drei-Achsen-Beschleunigungsmesser auf dem Board. Übrigens sind auch ein Drucksensor, ein Lichtsensor, eine Türschaltererkennung, GPS und eine Kamera vorhanden. Obwohl diese Optionen verfügbar sind, wird das Design im Idealfall nur das Mikrofon für die Erkennung der Türschließung benötigen.

0 Stimmen

Nur ein zufälliger Gedanke - wenn es fast immer clippt, wenn es schließt - warum nicht einfach für den Clip erkennen?

3voto

Turnkey Punkte 8958

Ich könnte mir vorstellen, dass die Frequenz und die Amplitude auch von Fahrzeug zu Fahrzeug erheblich variieren. Der beste Weg, dies festzustellen, wäre die Entnahme einer Probe in einem Civic im Vergleich zu einem großen SUV. Vielleicht könnten Sie den Benutzer die Tür in einem "Lernmodus" schließen lassen, um die Amplituden- und Frequenzsignatur zu erhalten. Dann könnten Sie diese zum Vergleich im Nutzungsmodus verwenden.

Sie könnten auch Folgendes in Betracht ziehen Fourier-Analyse um Hintergrundgeräusche zu eliminieren, die nicht mit dem Schließen der Tür zusammenhängen.

0voto

Szundi Punkte 307

Vielleicht sollten Sie versuchen, einen sofortigen signifikanten Anstieg des Luftdrucks zu erkennen, der das Schließen einer Tür anzeigen sollte. Sie können dies mit dieser Wellenform- und Schallpegelanalyse kombinieren, um ein besseres Ergebnis zu erzielen.

0voto

barrowc Punkte 10041

Was die weniger häufige Abtastung betrifft, so liegt die höchste Tonfrequenz, die erfasst werden kann, bei der Hälfte der Abtastrate. Wenn also das Geräusch der Autotür bei 1000 Hz am stärksten ist (zum Beispiel), dann würde bei einer Abtastrate unter 2000 Hz dieses Geräusch vollständig verloren gehen

0 Stimmen

Auch Nyquist-Rate genannt - die Rate, mit der eine Abtastung durchgeführt werden muss, um Aliasing bei einer bestimmten Umwandlung von kontinuierlich in diskret zu vermeiden de.wikipedia.org/wiki/Nyquist_rate .

0voto

Mark Heath Punkte 46572

Ein sehr einfaches Rauschgatter würde in Ihrer Situation wahrscheinlich ausreichen. Warten Sie einfach auf das erste Sample, dessen Amplitude über einem bestimmten Schwellenwert liegt (um ein Auslösen durch Hintergrundgeräusche zu vermeiden). Komplizierter wird es nur, wenn Sie zwischen verschiedenen Arten von Geräuschen unterscheiden müssen (z. B. eine sich schließende Tür im Vergleich zu einem Händeklatschen).

0 Stimmen

Ja, ich habe hier die ganz einfachen Fälle gezeigt. Die Realität ist viel härter - mit dem Radio und der Heizung/Klimaanlage auf hoher Stufe erhalte ich vernünftige Ergebnisse, aber ich erhalte auch einige falsch positive Ergebnisse mit der reinen RMS-Spitzenwert-Erkennung.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X