Esempio: utilizzo di file WAV e creazione di spettrogrammi
Utilizzare le funzioni READWAV e GETWAVINFO per leggere e ottenere informazioni sul formato da file WAV.
Recupero di informazioni WAV
1. Utilizzare GETWAVINFO per ottenere informazioni da un file audio. Questo file audio è un campione della vocalizzazione dei delfini stenella. È possibile utilizzare qualsiasi lettore musicale per riprodurlo.
Il vettore contiene il numero di canali, la frequenza di campionamento, la risoluzione (numero di bit per campione) e il numero medio di byte al secondo che un lettore audio deve elaborare per riprodurre l'audio in tempo reale.
2. Valutare le variabili del vettore.
Lettura di un file audio
1. Utilizzare la funzione READWAV per leggere il file audio e salvarlo in un vettore.
Se READWAV restituisce una matrice, le colonne successive rappresentano i canali di dati separati.
2. Utilizzare la funzione length per calcolare il numero totale di campioni.
3. Tracciare il grafico del segnale.
4. Utilizzare le funzioni match, max e min per trovare i campioni con le grandezze massima e minima, quindi individuarne il tempo di campionamento corrispondente.
5. Tracciare il grafico dei primi 25000 campioni e utilizzare indicatori per mostrare il campione con la grandezza massima.
Creare uno spettrogramma
Analizzare i dati audio dividendoli in piccole sezioni di tempo e visualizzando il contenuto di frequenza di ogni sezione. In questo esempio viene utilizzata una sezione di 128 campioni.
1. Definire un vettore di dimensioni sezione in potenze di 2.
ss rappresenta il numero di righe nella matrice di sezioni.
2. Definire un vettore dei fattori di sovrapposizione tra 0-90%, con incrementi di 10.
La sovrapposizione non può essere 100%.
3. Impostare il fattore di sovrapposizione e utilizzare le funzioni floor e ceil per definire le dimensioni della matrice.
Se la sovrapposizione è impostata su zero, il vettore Data è suddiviso in un numero di blocchi ss-long. Man mano che aumenta la sovrapposizione, aumenta anche il numero di blocchi ss lunghi, come illustrato nell'equazione riportata di seguito.
Ogni combinazione di dimensione sezione e fattore di sovrapposizione determina dimensioni diverse delle matrici di sezioni:
Se si utilizza ss=128 e overlap=40%, la matrice 128x2602 risultante può richiedere molto tempo per la creazione e la tracciatura.
4. Creare il vettore TI per facilitare l'impostazione di ti su uno dei dieci valori uguali o inferiori al valore di ti.
5. Impostare ti su uno degli elementi centrali di TI e osservare il grafico a curve di livello nella parte inferiore del foglio di lavoro.
Le nuove dimensioni della matrice sezione sono ora:
6. Assegnare a ogni sezione una finestra Hamming.
7. Utilizzare la funzione log per rappresentare le frequenze in decibel.
8. Utilizzare la funzione dft (o l'obsoleta fft) per trovare la trasformata di Fourier della sezione.
Utilizzare l'obsoleta funzione fft, disattivare la regione precedente e attivare la regione seguente.
9. Utilizzare un grafico a curve di livello per tracciare spectra.
10. Esperimento con diversi valori di dimensioni sezione (ss), overlap e ti. Tuttavia, per osservare l'effetto sui tempi di calcolo e tracciatura, si consiglia di modificare un parametro alla volta lasciando i valori di default [128 0.4 82] per gli altri due insiemi.
Le impostazioni correnti di ss, overlap e ti sono illustrate di seguito: