INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Soundpegel als Startimpuls bzw. Messwert zu einer Bestimmten zeit zuordnen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

21.03.2011, 19:47
Beitrag #1

Yocto Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Mar 2011

9.0 Studentenversion
2011
DE



Soundpegel als Startimpuls bzw. Messwert zu einer Bestimmten zeit zuordnen
Hi Labviewgemeinde,

ich bin neu hier bei Labview und hab da mal ein paar Fragen.

Ich wollte mal einen Chrony für meinen Paintballmarkierer (die Fluggeschwindigkeit der Paintballkugel bestimmen) bauen und die Daten mit Labview aufzeichnen.

Das Ganze wollte ich, beim Knall des Schusses, mit einem Mikrofon aufnehmen und den Lautstärke Pegel als Startimpuls nutzen. Die Messung wird beim auftreffen auf eine Platte, die einen Kontakt schließt beendet. Daraus kann ich dann ja die Fluggeschwindigkeit berechnen.

Komme ich zu meinen Problemen: Die Flugdauer über die Strecke von einem Meter ist ~15ms und die Übertragung der Pegelmesswerte ist 1s was halt ziehmlich viel ist. Ich bin soweit das die Messung immer ausgelöst wird aber die Kugel ist halt schon da bevor die eigentliche Messung startet (die Verzögerung beim aufnehmen).

Also hab ich mir mal gedacht das ich mit einem Startbutton die Messung starte und die Daten in ein Array schreibe und mit dem "Max. & Min. vom Array" den Messzeitpunkt vom ersten Ausschlag nehme und parallel den Zeitpunkt des Auftreffens messe und dann die beiden Zeiten mit einander verrechne.

Mir fehlt nur für beide Möglichkeiten das Wissen wie ich das machen soll...

Vielen Dank schonmal Smile


Angehängte Datei(en)
2009 .vi  Chrony - Parallel.vi (Größe: 48,09 KB / Downloads: 175)

2009 .vi  Chrony - Ablauf.vi (Größe: 47,23 KB / Downloads: 155)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
22.03.2011, 09:44
Beitrag #2

Kiesch Offline
LVF-Stammgast
***


Beiträge: 401
Registriert seit: Mar 2009

2019, 2018, 2016
2009
DE

04519
Deutschland
RE: Soundpegel als Startimpuls bzw. Messwert zu einer Bestimmten zeit zuordnen
Signalaufnahme und Auswertung sollten auf jeden Fall entkoppelt werden, wenn du überhaupt ne Chance haben willst. Die Laufzeit des Schalls zum Mikro musst du vermutlich aufgrund der kürze der Zeit auch berücksichtigen (alternativ das Mikro irgendwo in der Ebene in der Mitte von Startpunkt der Kugel und Auftreffpunkt platzieren (dann sind die Entfernungen zu beiden gleich ;-) ).

Ansonsten wäre es vielleicht praktisch wenn du mal ein Signal Testweise aufnimmst (Sounddatei) und dir mal anschaust ob dein Equipment dafür überhaupt ausreicht, sprich ob du überhaupt irgendwas in dem File identifizieren kannst.


Was ich dir dazu aus der Physik sagen kann, ist, dass du vermutlich die Impulsantwort deines Raumes rauskriegst (was macht der an Hall etc. pp) da du letztlich mit einem kurzen Impuls anregst. Das heist auch, dass dein Signal nicht unbedingt ein kurzer Puls bleibt sondern eben anschließend noch Echos etc. pp dazukommen. Dadurch könnte es schwierig werden das Auftreffsignal zu detektieren. Am besten hier auf jeden Fall händisch mal den Abstand zwischen Paintballpistole und Auftreffpunkt erhöhen und schauen was sich im Signal verschiebt. Damit solltest du identifizieren können, was vom eigentlichen Schuss kommt und was vom Auftreffen kommt.


Für die Zeitmessung macht es vermutlich Sinn, den höchsten Peak im Signal zu benutzen. Wie du das machst, ist jedoch auch wieder stark von deinem Equipment abhängig. Wenn du auf eine tausendstel Millisekunde genau messen kannst, dann reicht vermutlich der einfache Ansatz das max in dem Array der Amplitudenwerte zu bestimmen (sollte vermutlich den Zeitpunkt des Schusses treffen, wenn keine anderen lauten Geräusche mit drauf sind). Kannst du allerdings nur alle 1ms einen Messpunkt aufnehmen (was aufgenommen wird ist ja letztlich sowas wie ne Amplitude), dann hast du über deine ganze 15ms Messzeit nur 15 Messpunkte - da kann es durchaus sein das du garnix mehr identifizieren kannst. (deswegen ist auch anzuraten die Messaufnahme nicht direkt mit Labview sondern einem Peripheriegerät zu machen das vernünftig autark arbeitet und schnell genug ist, weis wie gesagt aber nicht was du da zur Verfügung hast). Das schwierigere ist dann den zweiten Impuls zu identifizieren. Du könntest nach Identifizierung des Schusses die einmal ermittelte Impulsfunktion an das Schusssignal fitten und anschließend abziehen. So solltest du als einziges weiteres lauteres Signal das Auftreffsignal übrigbehalten.

Wie könnte man das noch einfacher machen? Hmm...
Eventuell reicht es aus sich die Impulsfunktion anzuschauen, wenn die nur einen Peak hat, könntest du nach einem weiteren Signal in Folge suchen das eine bestimmte Schwelle überschreitet (laut genug ist; sagen wir zum Beispiel 10% des Schusses o.ä.) und dir dann von dem die Position ermitteln (am besten sollte das wohl gehen indem du den Bereich ermittelst indem dein Signal über der Schwelle liegt. Am besten noch dabei nur Bereiche berücksichtigen die mindestens 3 Messpunkte (oder mehr) lang sind um zufällige Messfehler die mal drüber sind zu vernachlässigen.

In dem Bereich dann nen gewichtetes Mittel machen (Zeitpunkt * Amplitude über den ganzen Bereich des ermittelten Peaks aufsummieren; anschließend durch die Summe aller Amplituden Teilen, dann kriegst du sowas wie die Mittelposition des Peaks raus). Könnte man an sich auch bei dem ersten Peak machen - sollte ganz gut funktionieren so lange die Peaks einigermaßen symmetrisch sind und ist eventuell genauer als die maximale Amplitude zu nehmen. (weis nicht genau welchen statistischen Schwankungen Amplitudenmessungen auf kurzen Zeitskalen unterliegen)


Joah, ich hoffe da kannst du ein bisschen was für dich rausziehen ^^
Hab in dem Fall Hauptsächlich als Physiker geantwortet ;-)

Gruß Kiesch

Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.03.2011, 18:34
Beitrag #3

Yocto Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Mar 2011

9.0 Studentenversion
2011
DE



RE: Soundpegel als Startimpuls bzw. Messwert zu einer Bestimmten zeit zuordnen
Danke für die Antwort.

Und zu meinem Equipment, ich hab eine NI USB 6009 (Mit der will ich die Spannung für den Kontakt ausgeben und das Schließen des Kontakts registrieren) und mein Laptopmikrofon bzw. ich hab mir jetzt noch eine Mikrofonkapsel gekauft (MCE200), mit der könnte ich auch ein Signal, über meine Messbox, aufnehmen und das als Startimbuls nehmen.

Das mit der Schallgeschwindigkeit will ich später auch noch herrausrechnen. Ich bin nur im Moment noch Trockenübungen mit klatschen am machen und will erst einmal das Prinzip des Programms fertigstellen. Die Berechnungen sind ja wenn ich so weit bin nur noch eine Kleinichkeit.

Die Messung soll gestartet werden wenn das erste mal der Pegel überschritten wird. Natürlich wird der der Pegel mehrfach überschritten für eine kurze Zeit, aber das sollte mich nicht weiter stören, weil nur der erste Impuls die für die Messung relevant ist. Und das hatte ich in dem Array schon herrausgefunden mit dem "Max. & Min. von Array" aber das Hauptproblem ist das wenn die Spitze am Anfang der gemessenen Sekunde auftritt, sagen wir mal Index 20 von 10000, dann Startet der die Messung zwar, aber die Kugel is dann schon bei ~170 Index angekommen und die Messung startet wegen der Übertragungsverzögerung erst nach dem 10000. Sample und läuft damit zuspät los.

Deswegen hab ich mir gedacht das vielleicht mit der Mikrofonkapsel zu machen und nur mit meiner Messbox die Werte aufzunehmen. Die kann 48kS/s und das dann wegen den 2 Messungen "nur" 24kS/s.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Messwert für eine gewisse Zeit (~5sek.) speichern und dann erst ausgeben niklas2016 8 3.924 31.03.2021 09:35
Letzter Beitrag: GerdW
  2D Array Werte zuordnen Floorhahn 2 5.223 27.01.2020 13:27
Letzter Beitrag: Floorhahn
  Automatisch Messwert-Schwankung ermitteln BlackEagle 6 7.506 10.12.2019 15:18
Letzter Beitrag: BlackEagle
  Messwert in Datei schreiben Version2018 -> Version2012 Tony_D 4 3.627 30.08.2018 11:48
Letzter Beitrag: GerdW
  Jeden mm einen Messwert speichern Tobias.K 1 3.261 26.09.2017 14:52
Letzter Beitrag: Lucki
  Eingabe String nach einen bestimmten Format bearbeiten galilio 18 10.140 27.01.2017 10:58
Letzter Beitrag: jg

Gehe zu: