Fonctions > Lecture et écriture de fichiers > Exemple : Utilisation des fichiers WAV et création de spectrogrammes
  
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.
Cliquez pour copier cette expression
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.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Lecture d'un fichier audio
1. Utilisez la fonction READWAV pour lire le fichier audio et l'enregistrer sous forme de vecteur.
Cliquez pour copier cette expression
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.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
3. Tracez le signal.
Cliquez pour copier cette expression
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.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
5. Tracez les premiers échantillons 25000 et utilisez les marqueurs pour indiquer l'échantillon avec l'amplitude maximale.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
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.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
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.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
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.
Cliquez pour copier cette expression
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 :
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Chaque combinaison de tranche de taille et de facteur de chevauchement produit des dimensions différentes des tranches de la matrice :
Cliquez pour copier cette expression
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.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
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.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Les nouvelles dimensions de la tranche de la matrice sont désormais :
Cliquez pour copier cette expression
6. Fenêtrez chaque tranche avec une fenêtre Hamming.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
7. Utilisez la fonction log pour représenter les fréquences en décibels.
Cliquez pour copier cette expression
8. Utilisez la fonction dft (ou la fonction abandonnée fft) pour rechercher la transformée de Fourier de la tranche.
Cliquez pour copier cette expression
Pour utiliser la fonction désapprouvée fft, désactivez la zone ci-dessus et activez celle ci-dessous.
Cliquez pour copier cette expression
9. Utilisez un tracé d'isolignes pour tracer spectra.
Cliquez pour copier cette expression
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 :
Cliquez pour copier cette expression