wegen Schlaflosigkeit möchte ich euch an meinem "Projekt" teilhaben lassen.
Und zwar möchte ich die Schallgeschwindigkeit mittels des Lautsprechers und des Mikrophon berechnen.
Das habe ich mir folgendermaßen gedacht: ich erzeuge ein Sinus-Sweep als Testsignal, gebe dieses Signal über die Lautsprecher aus und nehme es zeitgleich auf. Anschließend führe ich eine Kreuzkorrelation des Testsignals und des aufgenommenen Signals durch, um die Laufzeit zu ermitteln. Wenn ich jetzt den Abstand zwischen Mic. und Lautsprecher kenne, kann ich die Schallgeschwindigkeit berechnen. Soweit die Theorie.
Leider berechne ich mit meinem Script eine Schallgeschwindigkeit von nur ca. 9 m/s. Jetzt ist die Frage woran die liegen könnte??
Nachfolgend mein Script:
Code:
dur=0.3; % Dauer des Testsignals in s
fs = 44100; % Abtastrate in Hz
t=[0+1/fs : 1/fs : dur]; % Zeitvektor
Als mögliche Ursache für die wesentlich zu kleine Schallgeschwindigkeit habe ich folgende Ansätze:
- Fehler bei der Aufnahme des Signals (muss zusätzlich was bei der Definition des Analogein- bzw. ausgangs berücksichtigt werden?)
- Echtzeitfähigkeit von Matlab und Windows
- Hat sich ein Fehler in die weitere Berechnung geschlichen?
Um den Beitrag nicht zu lang werden zu lassen habe ich mich extra "kurz" gefasst, kann aber gerne bei Bedarf weiter ausholen.
Ansonsten freue ich mich über eure Ideen und vielleicht Lösungsvorschläge.
Weder Matlab noch Windows sind Echtzeit-fähig. Du bekommst sowhl bei der Ausgabe als auch bei der Aufzeichnung des Sounds eine Verzögerung.
Vielleicht wäre es sinnvoller, zwei Mikrophone mit bekanntem Abstand aufzustellen, die das gleiche Signal aufzeichnen, z.B. die zwei Kanäle eines Stereo-Microphons.
ja das die nicht vorhandene Echtzeitfähigkeit von Windows und Matlab das Ergebnis verfälschen würde hatte ich bereits befürchtet. Aber das der Einfluss so groß ist habe ich nicht erwartet...
Grundsätzlich wollte ich eigentlich nur ein Mikrofon und einen Lautsprecher verwenden, da diese praktisch an jedem Laptop vorhanden sind. Aber die Idee mit einem weiteren Mikrofon werde ich im Hinterkopf behalten.
Sind die Verzögerungen bei der Aufnahme und Wiedergabe grundsätzlich reproduzierbar? Wenn dies der Fall wäre könnte man dies ja korrigieren...?!
Gruß
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.