Exemple : Utilisation des fichiers WAV et création de spectrogrammes
Utilisez les fonctions READWAV et GETWAVINFO pour lire et obtenir des informations dans les fichiers WAV.
Obtention des informations WAV
1. Utilisez GETWAVINFO pour obtenir des informations d'un fichier audio. Ce fichier audio est un échantillon de la vocalisation de baleine Stenella. Vous pouvez utilisez n'importe quel lecteur de musique pour le lire.
Le vecteur contient le nombre de canaux, la fréquence d'échantillonnage, la résolution (nombre de bits par échantillon), et le nombre moyen d'octets par seconde qu'un périphérique de lecture audio doit traiter afin de lire l'audio en temps réel.
2. Evaluez les variables de vecteur.
Lecture d'un fichier audio
1. Utilisez la fonction READWAV pour lire le fichier audio et l'enregistrer sous forme de vecteur.
Si READWAV renvoie une matrice, les colonnes successives représentent les différents canaux de données.
2. Utilisez la fonction length pour calculer le nombre total d'échantillons.
3. Tracez le signal.
4. Utilisez les fonctions match, max et min pour trouver les échantillons avec les amplitudes maximale et minimale, puis trouvez leur temps d'échantillonnage correspondant.
5. Tracez les premiers échantillons 25000 et utilisez les marqueurs pour indiquer l'échantillon avec l'amplitude maximale.
Création d'un spectrogramme
Analysez les données audio en divisant les données en petits intervalles de temps et affichez le contenu de fréquence de chaque intervalle. Cet exemple utilise un intervalle de 128 échantillons.
1. Définissez un vecteur des tranches de taille à la puissance 2.
Où ss est le nombre de lignes de la tranche de la matrice.
2. Définissez un vecteur de facteurs de chevauchement entre 0-90%, par incréments de 10.
Le chevauchement ne peut pas être 100%.
3. Définissez le facteur de chevauchement et utilisez les fonctions floor et ceil pour définir la taille de la matrice.
Si le chevauchement est défini sur zéro, le vecteur Data est divisé en un nombre de segments de longueur ss. A mesure que le chevauchement augmente, le nombre de segments de longueur ss augmente également, comme illustré par l'équation suivante :
Chaque combinaison de tranche de taille et de facteur de chevauchement produit des dimensions différentes des tranches de la matrice :
L'utilisation de ss=128 et de overlap=40% produit une matrice 128x2602 qui peut prendre beaucoup de temps à être générée et tracée.
4. Créez le vecteur TI afin de faciliter la définition de ti sur l'une des dix valeurs inférieures ou égales à la valeur de ti.
5. Définissez ti sur un des éléments du milieu de TI et observez le tracé d'isolignes dans la partie inférieure du document.
Les nouvelles dimensions de la tranche de la matrice sont désormais :
6. Fenêtrez chaque tranche avec une fenêtre Hamming.
7. Utilisez la fonction log pour représenter les fréquences en décibels.
8. Utilisez la fonction dft (ou la fonction désapprouvée fft) pour rechercher la transformée de Fourier discrète de la tranche.
Pour utiliser la fonction désapprouvée fft, désactivez la zone ci-dessus et activez celle ci-dessous.
9. Utilisez un tracé d'isolignes pour tracer spectra.
10. Testez différentes valeurs de tranche de taille (ss), overlap et ti. Toutefois, pour observer l'effet sur le calcul et le traçage des durées, nous vous recommandons de ne modifier qu'un paramètre à la fois, tout en laissant les deux autres à leurs valeurs par défaut [128 0.4 82].
Les paramètres actuels de ss, overlap et ti figurent ci-dessous :