Funktionen > Lesen und Schreiben von Dateien > Beispiel: Mit WAV-Dateien arbeiten und Spektrogramme erstellen
  
Beispiel: Mit WAV-Dateien arbeiten und Spektrogramme erstellen
Verwenden Sie die Funktionen READWAV und GETWAVINFO, um WAV-Dateien zu lesen und Formatinformationen aus diesen Dateien abzurufen.
WAV-Information abrufen
1. Verwenden Sie GETWAVINFO, um Informationen von einer Sounddatei abzurufen. Diese Sounddatei ist ein Beispiel für die Wiedergabe der Laute von Stenella-Walen. Sie können sie mit jedem Musikwiedergabeprogramm abspielen.
Zum Kopieren dieses Ausdrucks klicken
Der Vektor enthält die Kanalzahl, die Abtastfrequenz, die Auflösung (Anzahl Bits pro Sample) und die durchschnittliche Anzahl von Bytes pro Sekunde, die ein Audiowiedergabegerät verarbeiten muss, um den Ton in Echtzeit wiederzugeben.
2. Werten Sie die Vektorvariablen aus.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Eine Sounddatei einlesen
1. Verwenden Sie die Funktion READWAV, um die Sounddatei zu lesen, und speichern Sie sie in einem Vektor.
Zum Kopieren dieses Ausdrucks klicken
Wenn READWAV eine Matrix zurückgibt, stellen aufeinanderfolgende Spalten die unabhängigen Datenkanäle dar.
2. Verwenden Sie die Funktion length, um die Gesamtzahl der Samples zu berechnen.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
3. Plotten Sie das Signal.
Zum Kopieren dieses Ausdrucks klicken
4. Verwenden Sie die Funktionen match, max und min, um die Samples mit dem maximalen und minimalen Betrag zu ermitteln, und ermitteln Sie dann die entsprechende Samplezeit.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
5. Plotten Sie die ersten 25000 Samples, und verwenden Sie Markierer, um das Sample mit dem maximalen Betrag anzuzeigen.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Ein Spektrogramm erstellen
Analysieren Sie die Sounddaten, indem Sie die Daten in kleine Zeitabschnitte aufteilen und den Frequenzinhalt jedes Abschnitts anzeigen. In diesem Beispiel wird ein Abschnitt mit 128 Samples verwendet.
1. Definieren Sie einen Vektor von Abschnittsgrößen in Potenzen von 2.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Dabei ist ss die Anzahl der Zeilen in der Abschnittsmatrix.
2. Definieren Sie einen Vektor von Überlappungsfaktoren zwischen 0-90% in Inkrementen von 10.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Die Überlappung kann nicht 100% sein.
3. Legen Sie den Überlappungsfaktor fest, und verwenden Sie die Funktionen floor und ceil, um die Größe der Matrix zu definieren.
Zum Kopieren dieses Ausdrucks klicken
Wenn die Überlappung auf null festgelegt ist, wird der Vektor Data in mehrere ss-long-Segmente unterteilt. Mit zunehmender Überlappung erhöht sich auch die Anzahl von ss langen Segmenten, was auch durch die folgende Gleichung gezeigt wird:
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Jede Kombination von Abschnittsgröße und Überlappungsfaktor resultiert in anderen Abschnittsmatrixbemaßungen:
Zum Kopieren dieses Ausdrucks klicken
Die Verwendung von ss=128 und overlap=40% resultiert in einer 128x2602-Matrix, deren Erstellung und Darstellung sehr viel Zeit in Anspruch nehmen kann.
4. Erstellen Sie den Vektor TI, um die Einstellung von ti auf einen von zehn Werten zu erleichtern, die gleich oder kleiner als der Wert von ti sind.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
5. Legen Sie ti auf eines der mittleren Elemente von TI fest, und beobachten Sie das Isolinienplot an der Unterseite des Arbeitsblatts.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Die neuen Abschnittsmatrixbemaßungen lauten nun:
Zum Kopieren dieses Ausdrucks klicken
6. Stellen Sie jeden Abschnitt mit einem Hamming-Fenster dar.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
7. Verwenden Sie die Funktion log, um die Frequenzen in Dezibel darzustellen.
Zum Kopieren dieses Ausdrucks klicken
8. Verwenden Sie die Funktion dft (oder die veraltete Funktion fft), um die Fourier-Transformation des Abschnitts zu ermitteln.
Zum Kopieren dieses Ausdrucks klicken
Um die veraltete Funktion fft zu verwenden, deaktivieren Sie den oberen Bereich und aktivieren den unteren Bereich.
Zum Kopieren dieses Ausdrucks klicken
9. Verwenden Sie ein Isolinienplot, um spectra zu plotten.
Zum Kopieren dieses Ausdrucks klicken
10. Experimentiere Sie mit unterschiedlichen Werten der Abschnittsgröße (ss), overlap und ti. Um den Effekt auf die Berechnung und die Plot-Zeiten zu sehen, sollten Sie jedoch jeweils nur einen Parameter ändern und für die anderen beiden Parameter die Standardwerte [128 0.4 82] eingestellt lassen.
Die aktuellen Einstellungen von ss, overlap und ti werden unten angezeigt:
Zum Kopieren dieses Ausdrucks klicken