PUERTO DE AUDIO

Anuncio
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')
Descargar