Funciones > Lectura y escritura de ficheros > Ejemplo: Utilización de ficheros WAV y creación de espectrogramas
  
Ejemplo: Utilización de ficheros WAV y creación de espectrogramas
Utilice las funciones READWAV y GETWAVINFO para leer ficheros WAV y obtener información sobre su formato.
Obtención de información de ficheros WAV
1. Utilice GETWAVINFO para obtener información de un fichero de sonido. Este fichero de sonido es una muestra de la vocalización de las estenelas. Se puede utilizar cualquier reproductor de música para reproducirlo.
Pulse aquí para copiar esta expresión
El vector contiene el número de canales, la frecuencia de muestreo, la resolución (número de bits por muestra) y el promedio de bytes por segundo que un reproductor de audio necesita para procesar el fichero de modo que el audio se reproduzca en tiempo real.
2. Evalúe las variables del vector.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Lectura de un fichero de sonido
1. Utilice la función READWAV para leer el fichero de sonido y guardarlo en un vector.
Pulse aquí para copiar esta expresión
Si READWAV devuelve una matriz, las columnas sucesivas representan los canales de datos por separado.
2. Utilice la función length para calcular el número total de muestras.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
3. Trace la señal.
Pulse aquí para copiar esta expresión
4. Utilice las funciones match, max y min para buscar las muestras con las magnitudes máxima y mínima y, a continuación, busque el tiempo de la muestra correspondiente.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
5. Trace las primeras 25000 muestras y utilice marcadores para mostrar la muestra con la magnitud máxima.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Creación de un espectrograma
Para analizar los datos de sonido, divida los datos en pequeñas porciones de tiempo y observe el contenido de la frecuencia de cada porción. En este ejemplo se utiliza una porción de 128 muestras.
1. Defina un vector de tamaño de porción en potencias de 2.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
En él, ss es el número de filas de la matriz de porciones.
2. Defina un vector de factores de solapado entre 0-90%, en incrementos de 10.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
El solapado no puede ser 100%.
3. Defina el factor de solapado y utilice las funciones floor y ceil para definir el tamaño de la matriz.
Pulse aquí para copiar esta expresión
Si el solapado se define en cero, el vector Data se divide en un número de segmentos de ss de largo. A medida que aumenta el solapado, también aumenta el número de fragmentos de ss de largo, como se muestra en la siguiente ecuación:
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Cada combinación de tamaño de porción y factor de solapado da lugar a distintas cotas de la matriz de porciones:
Pulse aquí para copiar esta expresión
Utilizando ss=128 y overlap=40%, se obtiene una matriz 128x2602 que puede tardar mucho tiempo en crearse y trazarse.
4. Cree el vector TI para facilitar la definición de ti en uno de los diez valores que son iguales o menores que el valor de ti.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
5. Defina ti en uno de los elementos centrales de TI y observe el gráfico de contorno de la parte inferior de la hoja de trabajo.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Las nuevas cotas de la matriz de porciones son ahora las siguientes:
Pulse aquí para copiar esta expresión
6. Organice cada porción con una ventana Hamming.
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
Pulse aquí para copiar esta expresión
7. Utilice la función log para representar las frecuencias en decibelios.
Pulse aquí para copiar esta expresión
8. Utilice la función dft (o la función desfasada fft) para buscar la transformada de Fourier de la porción.
Pulse aquí para copiar esta expresión
Para utilizar la función fft desfasada, desactive la región anterior y active la siguiente.
Pulse aquí para copiar esta expresión
9. Utilice un gráfico de contorno para trazar spectra.
Pulse aquí para copiar esta expresión
10. Experimente con distintos valores de tamaño de la porción (ss), overlap y ti. Sin embargo, para observar el efecto en el cálculo y los tiempos de trazado, se recomienda cambiar un parámetro cada vez y dejar los otros dos definidos en sus valores por defecto [128 0.4 82].
A continuación, se muestra la configuración actual de ss, overlap y ti:
Pulse aquí para copiar esta expresión