PUERTO DE AUDIO CON MATLAB MATLAB cuenta con la función wavrecord(t*Fs,Fs,Ch) cuyos parámetros corresponden al tiempo en segundos de captura de la señal, frecuencia de muestreo (admite 8000, 11025, 22050 y 44100), el tipo de canal (1 para mono y 2 para stereo). Por ejemplo capturar una señal en estéreo con 10 segundos de duración, con una frecuencia de muestreo de 22050 podemos emplear las siguientes funciones: Fs = 22050; y = wavrecord(5*Fs, Fs, 2); Para guardar una señal capturada en formato wav se puede hacer uso de la función wavwrite(y,Fs,NBits,'Nombre.wav') cuyos parámetros corresponden a la señal grabada, la frecuencia de muestreo, el número de bits (puede ser 8, 16, 24 o 32) y el nombre del archivo en el cual se grabará el sonido. Hay que tener en cuenta que los valores de amplitud que estén fuera del rango [-1,+1] son clipeados. El Clipping ocurre cuando una señal excede los límites del diseño, causando distorsión por sus altos componentes de frecuencia Si no se especifican los NBits el programa asume por defecto 16 Bits. Si no se determina una Fs, el programa asume por defecto 8000 Hz. Por ejemplo, para guardar el sonido capturado anteriormente se empleará el siguiente comando: wavwrite(y,Fs,16,'sonido_1.wav') Para escuchar o manipular vectorialmente un sonido almacenado en formato wav se utilizan dos comandos. wavread('File.wav') sound(Var) Si se utiliza sound(var,Fs) el resultado será un sonido con una frecuencia de muestreo definida por el usuario. Se asume que los valores están dentro del rango [-1,1] ya que los valores que están fuera del rango son clipeados. Si se emplea sound(var,Fs,Bits) sonará con una frecuencia de muestreo definida por el usuario y determinados número de Bits por muestra. Por ejemplo, para escuchar la señal guardada anteriormente como sonido_1, se asigna a una variable s el comando wavread y luego se escucha con el comando sound. s= wavread('sonido_1.wav'); sound(s,44100) Si se desean conocer los datos de un archivo en formato wav, como los valores del vector, su frecuencia de muestreo o el número de bits NBits por muestra, se emplea la siguientes sintaxis: [y,Fs,NBits]=wavread('file.wav') En la variable y se almacenan los valores del vector, en la variable Fs se almacena la frecuencia de muestreo y en la variable Nbits se almacena el número de bits por muestra del archivo con formato wav. Si se desea saber la dimensión de los canales del archivo en formato wav, se utiliza el siguiente comando: siz=wavread('file.wav','size') Fs = 11025; y = wavrecord(10*Fs, Fs, 2); wavwrite(y,Fs,16,'sonido_1.wav') wavread('sonido_1.wav') sound(y) plot(y, 'DisplayName', 'y', 'YDataSource', 'b'); figure(gcf) s= wavread('sonido_1.wav'); sound(s,44100) [y,Fs,NBits]=wavread('sonido_1.wav')