Sie sind auf Seite 1von 4

UABC

Seales y Sistemas

TUTORIAL DE USO DE LA TARJETA DE SONIDO PARA CAPTURA DE SEALES


EN MATLAB

Introduccin
Una de las formas ms sencillas de introducir seales del mundo real a la
computadora es mediante la tarjeta de sonido. Un micrfono nos permite captar las
vibraciones analgicas del aire y la tarjeta de sonido realiza un muestreo de estas,
haciendo una representacin discreta del sonido captado.

Matlab, al ser una plataforma diseada para el manejo de datos, nos permite
realizar cualquier cantidad de anlisis y procesos sobre la informacin, la cual
puede provenir de una fuente externa como lo es una seal de audio. En este
tutorial, se mostrar una de las formas ms sencillas de capturar y reproducir
seales de sonido en Matlab, as como de almacenar la informacin en caso de que
sea necesario.

Antes de empezar con la captura y discretizacin de seales, es necesario tener


conocimiento sobre algunos de los parmetros bsicos que se manejan al momento
de realizar este tipo de operaciones.

Discretizacin de seales
La discretizacin se refiere al proceso mediante el cual una seal continua o
analgica, se convierte en una seal discreta. Esto se realiza tomando muestras de
la seal original y representndolas en unidades finitas, tanto en tiempo como en
amplitud.

Los parmetros ms importantes al momento de convertir una seal del mundo real
(analgica) a un entorno digital son los siguientes:

Tasa de Muestreo: Es la cantidad de muestras que se tomaran, por unidad de


tiempo, de la seal original. Como unidad de tiempo, comnmente se utiliza el
segundo, por lo que la tasa de muestreo puede expresarse en Hertz (Hz); por lo
tanto, tambin se le conoce como Frecuencia de Muestreo (Fs). Una frecuencia de
muestreo mayor nos produce una seal discreta ms parecida a su contraparte
analgica, aunque la cantidad de informacin que se debe de manipular ser ms
grande.
En seales de audio, los valores ms comunes de frecuencia de muestreo que se
manejan son 8000Hz, 11025Hz, 22050Hz, 44100Hz y 48000Hz.

Fig. 1 Muestreo de una seal contina

Nota: Al momento de seleccionar una frecuencia de muestreo, es importante considerar el criterio de


Nyquist, el cual bsicamente nos dice que la frecuencia de muestreo debe de ser al menos del doble
de la frecuencia mxima de la seal que se desea muestrear, a fin de que esta pueda ser reproducida
o reconstruida en su totalidad. Por ejemplo, si se desea muestrear una seal de voz humana con

Captura de Seales en Matlab


1
UABC
Seales y Sistemas

calidad de llamada telefnica (ancho de banda de aproximadamente 4kHz), la frecuencia de muestreo


debe de ser al menos de 8000Hz.

Total de Muestras: Representa la cantidad total de muestras obtenidas y depende


directamente de la frecuencia de muestreo y del tiempo durante el cual se haya
realizado la captura:

Total de muestras = Frecuencia de Muestreo Duracin de la captura

Resolucin: Al momento de tomar las muestras de la seal analgica, se debe de


cuantificar la amplitud de las muestras, a fin de establecer los rangos de valores
que estas pueden tener, as como el incremento mnimo de amplitud que puede
existir. Al estar hablando de seales digitales, la resolucin suele expresarse en bits.
Para seales de audio, los valores de resolucin que se manejan comnmente son 8
bits, 16 bits y 24 bits.

Fig. 2 Cuantificacin de muestras

Nmero de Canales: El nmero de canales nos indica cuantas seales estaremos


discretizando simultneamente. En el caso del sonido, cuando se tiene solamente
un canal de informacin se dice que es un sonido monoaural. Tambin existe el
sonido estreo (2 canales), cuadrafnico (4 canales), etc.

Captura de Seales de audio en Matlab


Como se menciono anteriormente, para capturar una seal se deben definir las
caractersticas de la captura:

>> Fs = 8000; %Frecuencia de muestreo = 8000 muestras por


segundo
>> nBits = 16; %Resolucin = 16 bits
>> nChan = 1; %Numero de canales = 1

Una vez declarados estos parmetros, se utiliza la funcin audiorecorder para


crear un objeto de grabacin que tenga las propiedades mencionadas:

>> grabacin = audiorecorder(Fs, nBits, nChan);

Para iniciar la captura, se usa la funcin recordblocking, indicando adems el


tiempo durante el cual se desea capturar sonido (en segundos):

>> tCaptura = 5; %Capturar informacin durante 5 segundos


>> recordblocking(grabacin, tCaptura);

Captura de Seales en Matlab


2
UABC
Seales y Sistemas

Para extraer la informacin de sonido del objeto tipo audiorecorder y guardarlo en


un vector (nChan = 1) o matriz (nChan = 2), se usa la funcin getaudiodata:

>> sonido = getaudiodata(grabacin);

Con lo anterior se obtendr una variable que contiene la informacin de la seal


capturada. La longitud de este vector o matriz ser igual al total de muestras
capturadas. Una vez extrada la informacin de audio, se puede manipular como
cualquier variable de Matlab.

Reproduccin de seales de audio en Matlab


Para reproducir el sonido guardado en un objeto tipo audiorecorder, se utiliza la
funcin play:

>> reproduccin = play(grabacin);


O bien:
>> play(grabacin);

Para reproducir la informacin guardada en una variable numrica, se utiliza la


funcin sound. En este caso es necesario indicar la frecuencia de muestreo a la
cual queremos reproducir:

>> sound(sonido, Fs); %Reproducir la informacin contenida en la


variable sonido

Almacenamiento de seales de audio


Cuando se desea almacenar alguna de las seales capturadas, esto puede hacerse
de varias formas:

Almacenar como variable: Para esto solo es necesario seleccionar la variable que
contiene la informacin en el Workspace y dar click en guardar:

Fig. 3 Guardar seal como variable

Esta variable puede cargarse posteriormente dando click en el botn Import data en
la parte superior de la ventana del Workspace.

Almacenar como archivo de sonido: La informacin de sonido puede


almacenarse en un archivo .wav, el cual puede ser reproducido por cualquier
programa de reproduccin de medios sin la necesidad de ejecutarlo desde Matlab.
Para esto se utiliza la funcin wavwrite:

Captura de Seales en Matlab


3
UABC
Seales y Sistemas

>> wavwrite (sonido, Fs, nBits, nombre_del_archivo);

La variable sonido es la que contiene la informacin de audio que se desea


almacenar, y se produce un archivo WAVE que, como ya se mencion, puede
reproducirse de forma externa a Matlab.

Leer informacin de un archivo de sonido


Si se desea leer la informacin de sonido de un archivo WAVE y almacenarse en una
variable para su manipulacin, se utiliza la funcin wavread:

>> [sonido, Fs, nBits] = wavread(nombre_de_archivo.wav);

Con esto se obtiene una variable sonido con la informacin de audio, una variable
Fs con la tasa de muestreo a la cual se gener el archivo, y la variable nBits que
indica la resolucin de las muestras contenidas en el mismo.

Captura de Seales en Matlab


4

Das könnte Ihnen auch gefallen