You are on page 1of 10

Prctica 1.

Adquisicin de seales mediante MatLab

Septiembre de 2011

-------

Carrera Materia

-------

INGENIERIA ELECTRONICA.
-------------

PROCESAMIENTO DIGITAL DE SEALES


-------

Titulo del Trabajo


Reporte de la prctica 1

-------

adquisicin de seales mediante MatLab EQUIPO


-------

Integrantes ------Rejn Sosa Manuel Cim Rosado Fernando Gamboa Prez Ares Ferrera Damas Adrian

--------

Maestro: --------

Jess Sandoval Gio

MRIDA, YUCATN, MXICO A 9 DE SEPTIEMBRE DE 2011.

Prctica 1. Adquisicin de seales mediante MatLab

Septiembre de 2011

INSTITUTO TECNOLGICO DE MRIDA DEPARTAMENTO DE INGENOERA ELCTRICA Y ELECTRNICA PROCESAMIENTO DIGITAL DE SEALES LABORATORIO 1 Adquisicin de seales mediante Matlab

Objetivo: conocer sobre el funcionamiento del toolbox de adquisicin de datos de MatLab, el cual permite adquirir datos de sensores y enviar seales elctricas que puedes ser utilizadas para el control de dispositivos externos. En este caso se utiliza la tarjeta de sonido que se encuentra en el interior de la computadora, y el micrfono de la misma computadora servir como el dispositivo de adquisicin de datos. Material y equipo: PC con Matlab, micrfono u otra fuente de seal. Desarrollo: Adquirir alguna seal de audio mediante el Matlab y la tarjeta de sonido de la PC. Revisar la documentacin anexa que describe la manera de usar la tarjeta de sonido del PC para adquirir seales con Matlab. Graficar los resultados. Observar la diferencia obtenida cuando se utilizan distintos anchos de ventana y frecuencias de muestreo. Escuchar las seales obtenidas usando la funcin sound() y corroborar las diferencias. Grabar las seales resultantes usando la funcin wavwrite().

Prctica 1. Adquisicin de seales mediante MatLab

Septiembre de 2011

Introduccin

Primeramente se recordaran algunos conceptos bsicos que resultan importantes para realizar esta prctica. El primero de ellos es el concepto de la conversin analgica a digital, este es el hecho de transformar una seal que es analgica tal como la voz, la luz, la seales que emite el corazn en una seal analgica que pueda procesar una computadora, ya que como debe saberse, una computadora es digital y solo puede guardar nmeros discretos. El Hardware que aqu se utiliza tiene la electrnica que puede tomar mediciones digitales discretas de una seal analgica continua. Otro de los conceptos a tomar en cuenta es, la frecuencia de muestreo, la cual es el nmero de veces que el equipo Analgico / Digital toma una medida discreta cada segundo. El disparo de activacin es cuando el usuario le hace saber al hardware de adquisicin de datos que es tiempo de comenzar a tomar datos. La tarjeta se puede activar de manera manual (es decir, decirle a la tarjeta cuando comenzar a recopilar datos). Alias de error es cuando una seal tiene una componente de frecuencia que es mayor que la media de frecuencia de muestreo, y causa que se obtenga una seal falsa de baja frecuencia. Desarrollo e implementacin

Una vez que se han recordado los conceptos importantes entonces es momento de adquirir los datos y procesarlos en la computadora. Los sensores que se envan una seal elctrica analgica. La tarjeta de sonido A/D muestra la seal a una tasa de muestreo que es especificada por el usuario mediante MatLab y almacena los valores de la tensin en cada tiempo de muestreo en la memoria de la computadora. La seal analgica continua que se convertir en una lista de nmeros que corresponden al voltaje en ciertos instantes de tiempo. El muestro digital se puede observar en la figura 1. Hay algunos pasos que se deben siempre debe seguir. Lo primero que se debe de hacer es crear un dispositivo de entrada analgica y abrir canales de datos de entrada (tngase en cuenta que el programa final de MatLab se mostrara en el anexo 1. Aqu se pretende explicar paso a paso tal programa). As bien se escribe lo siguiente:
AI = analoginput('winsound',1); chan = addchannel(AI,1);

La primera lnea define la tarjeta de sonido de Windows como el dispositivo de entrada analgica y la segunda lnea abre un canal para la entrada de datos. La tarjeta de sonido slo tiene dos canales: los canales 1 y 2, si se especifican otros canales, MATLAB marcar un error. El uno en el comando analoginput es una bandera especfica de Hardware.

Prctica 1. Adquisicin de seales mediante MatLab

Septiembre de 2011

Figura 1. Muestreo digital de una seal analgica contina Atencin: cuando se tiene instalado un mdem adems de la tarjeta de sonido, es posible que el primero sea reconocido como dispositivo de audio por defecto. Si se tiene un nmero cero en lugar de un uno en la instruccin analoginput podra abrir por defe cto el mdem como entrada analgica y no el micrfono, que es lo que se desea. Para que en este caso utilice la tarjeta de sonido se aade el valor uno como parmetro en la funcin analoginput. La variable de AI es un objeto que tiene muchas propiedades asociadas. El usuario puede cambiar estas propiedades para que el dispositivo se comporte de la manera que se prefiera. La tarjeta tiene valores por defecto que se pueden aceptar, aunque no sea lo mejor para la aplicacin para la que se requiera. Por lo tanto estas propiedades pueden cambiarse, y a continuacin se mostrar cmo. Las siguientes instrucciones muestran la manera en la que se puede definir una frecuencia de muestreo, el nmero de muestras a adquirir, y la condicin de disparo.
duration = 3; %graba por tres segundos para tener un diferente ancho de ventana SampleRate = 44100; set(AI,'SampleRate',SampleRate); set(AI,'SamplesPerTrigger',duration*SampleRate); set(AI,'TriggerType','Manual');

En la primera lnea se muestra una instruccin en la que se puede elegir la duracin en la que se grabara la voz o el audio que se quiera, en este ejemplo se tiene elegido 3 segundos, aunque se podra cambiar al tiempo que el usuario requiera para su aplicacin; esto nos da un diferente ancho de ventana.

Prctica 1. Adquisicin de seales mediante MatLab

Septiembre de 2011

En la segunda lnea se elige la frecuencia de muestreo, es decir, el numero de muestras a adquirir en un segundo, en este ejemplo se tienen elegido 44100 muestras por segundo. En la tercera lnea se define la condicin de disparo, en este ejemplo se tiene activado de manera manual, esto quiere decir que cuando se quiera que la tarjeta de sonido colecte datos ser cuando escribamos el comando trigger(AI). Se tiene que tomar en cuenta que el usuario puede elegir la forma de disparo ms le convenga para la aplicacin para que se vaya a utilizar. Hasta ahora se tiene ya la tarjeta de sonido para poder empezar a adquirir datos. Para realizar esto se utilizan los siguientes comandos:
start(AI); trigger(AI); data = getdata(AI);

Estos comandos funcionan de la siguiente manera: Despus de que el comando start es utilizado la tarjeta de sonido se encuentra colectando datos y reciclndolos en un buffer temporal. Despus del comando de disparo trigger , la tarjeta se activa y recoge 44,100 muestras durante un segundo. Una vez realizado esto, las 44,100 muestras se encuentran disponibles para obtenerlos con el comando getdata, los datos adquiridos con el comando trigger son guardados en un buffer temporal. As los datos son puestos en el workspace de MatLab usando el comando getdata. Para finalizar se guardan esos datos en una variable llamada data, con la instruccin data = getdata(AI). Posterior a esto los datos pueden ser graficados como se muestra a continuacin:
plot (data) xlabel('Ancho de ventana');ylabel('Amplitud');title('Ancho de ventana Vs. Amplitud');

con el comando plot(data) se grafican los datos que se encuentran guardados en la variable data. Las lneas dos y tres de las instrucciones mostradas anteriormente son simplemente para darle titulo a los ejes Y y X, y a la grfica misma. A continuacin se muestran otros dos comandos utilizados en sta prctica:
SOUND(data,SampleRate) wavwrite(data,SampleRate,'voz a 5000 SampleRate, duracin 3 segundos'); wavplay(data,SampleRate);

La primera lnea es utilizada para escuchar el sonido que se encuentra grabado en la variable data a la frecuencia de muestreo utilizada. La segunda lnea se utiliza para guardar el sonido grabado como un archivo .wav de Windows. El comando wayplay es utilizado para verificar si efectivamente el sonido se grabo de manera correcta como archivo .wav.

Prctica 1. Adquisicin de seales mediante MatLab

Septiembre de 2011

Pruebas Prueba 1

En la primera prueba se realiz una grabacin de un audio a una frecuencia de muestreo de 44100 muestras por segundo (44.1 kHz) con una duracin de grabacin de 3 segundos. La grfica resultante se puede observar en la figura 2; el ancho de ventana se encuentra definido por la multiplicacin de duracin*frecuencia de muestro (duration*SampleRate).
Ancho de ventana Vs. Amplitud 1 0.8 0.6 0.4
Amplitud

0.2 0 -0.2 -0.4 -0.6

6 8 Ancho de ventana

10

12

14 x 10
4

Figura 2. Voz grabada a 44100 de SampleRate y duracin de 3 segundos Una vez realizada la grabacin de audio se procedi a cambiar la frecuencia de muestreo; se puede notar que la voz grabada originalmente, es decir, la grabada a 44100 muestras por segundo y a una duracin de tres segundos se escucha a una calidad aceptable y no se distorsiona en ningn momento; pero al momento de realizar la primera modificacin a la frecuencia de muestreo ya se nota un cambio significativo a la calidad del audio, para eso se procedi a cambiar la frecuencia de muestreo a 70000 muestras por segundo, lo que ahora ocasionara que ahora el audio se escuche como una cinta magntica utilizada en los antiguos cassettes de audio que es reproducida muy rpido, es decir se puede simular una voz muy aguda y rpida, esto quiere decir que se tomaron demasiadas muestras en 3 segundos y por tanto la grabacin corre muy rpida ya que el tiempo es muy corto para tomar tantas muestras.

Prctica 1. Adquisicin de seales mediante MatLab

Septiembre de 2011

Por otro lado se cambi de igual forma la frecuencia de muestreo a 30000 muestras por segundo, lo cual ocasiona el efecto contrario a aumentar la frecuencia de muestro, esto quiere decir que ahora el audio se vuelve lento, simulando la voz como en cmara lenta. Esto sucede porque se toman muy pocas muestras en 3 segundos y eso ocasiona que el audio de salida se escuche lento y tarde un poco ms en reproducirse. Prueba 2 En la segunda prueba se realiz el mismo experimento, slo que en este caso la grabacin del audio se realiz a una frecuencia de muestreo de 5000 muestras por segundo (5 kHz) y a una duracin de 2 segundo. La grfica de tal grabacin se puede observar en la figura 3. De igual forma que en el caso anterior el ancho de ventana est determinado por duracin*frecuencia de muestro (duration*SampleRate).

Ancho de ventana Vs. Amplitud 1.2

0.8

Amplitud

0.6

0.4

0.2

-0.2

1000

2000

3000

4000 5000 6000 Ancho de ventana

7000

8000

9000 10000

Figura 3. Voz grabada a 5000 de SampleRate y duracin de 2 segundos Se puede notar que el audio original grabado a 5000 muestras por segundo y a una duracin de 2 segundos tiene una calidad de sonido aceptable, e incluso la grabacin suena clara, pero cuando la frecuencia de muestro se aumenta hasta 10000 muestras por segundo, se puede notar que la grabacin corre muy rpido debido a las causas explicadas en la prueba 1. Por otro lado cuando se disminuye la frecuencia de muestreo hasta la mitad de la frecuencia a la que fue grabada, es decir 2500 muestras por segundo, se puede escuchar una voz que parecera estar lenta o retardada, las causas de esto fueron igual especificadas en la prueba 1.

Prctica 1. Adquisicin de seales mediante MatLab

Septiembre de 2011

Prueba 3 En la tercera y ltima prueba se grabo un audio a una frecuencia de muestreo de 44100 muestras por segundo (44.1 kHz) y a una duracin de 4 segundos. La grfica de tal grabacin se puede mostrar en la figura 4. De igual forma que en los dos casos anteriores el ancho de ventana se encuentra determinado por duracin*frecuencia de muestro (duration*SampleRate).

Ancho de ventana Vs. Amplitud 1.2

0.8

Amplitud

0.6

0.4

0.2

-0.2

8 10 Ancho de ventana

12

14

16

18 x 10
4

Figura 4. Voz grabada a 44100 de SampleRate y duracin de 4 segundos Se puede notar que en la grabacin original de 44100 muestras por segundo y una duracin de grabacin de 4 segundos, el audio se escucha con una buena calidad, pero cuando la frecuencia de muestreo se cambia al doble, es decir a 88200 muestras por segundo entonces tal grabacin se escucha demasiado rpida y simula una voz de ardilla. Para cuando la frecuencia de muestreo se reduce a 22500 muestras por segundos se nota que la grabacin tarda ms en reproducirse por razones especificadas anteriormente. ATENCION: todas las grabaciones de las pruebas aqu realizadas se enviaran adjuntos con este archivo.

Prctica 1. Adquisicin de seales mediante MatLab

Septiembre de 2011

Conclusiones
Mediante este trabajo se pudo conocer una de las formas que se tienen para obtener datos analgicos y poder convertirlos a una secuencia de nmeros que pueden ser procesados en la computadora, es decir se realizo una conversin analgica a digital, y posteriormente se realizo una conversin de digital a analgica. La primera de ella sucedi al grabar la voz, al suceder esto la seal analgica determinada en este caso por la voz grabada la cual es una seal continua en el tiempo, se convirti a una seal digital por medio de la tarjeta de sonido de la computadora, la cual toma determinadas muestras en un segundo para as asignarle cierto nmero digital a cada valor de tensin que vara en el tiempo. De esta forma es que se realiza la conversin de analgica a digital, se toman muestras de una seal continua para convertirlas a una secuencia de nmeros que posteriormente pueden graficarse y procesarse digitalmente, en este caso mediante una computadora. En la prctica realizada se realizaron grabaciones de audio a una frecuencia de muestreo determinada y posteriormente se fue cambiando tal frecuencia de muestreo para notar como el audio grabado se iba distorsionando y as poder comparar el audio grabado a la frecuencia de muestreo original con el audio a la frecuencia de muestreo modificada. Para esto se aumento y disminuyo la frecuencia de muestreo a tal grado que se notaran distorsiones; de esta forma se pudo observar que cuando se eleva la frecuencia de muestreo a una duracin de grabacin determinada la grabacin corre muy rpida y se nota una voz aguda y rpida por que se toman demasiadas muestran en ese intervalo de tiempo, y cuando se reduce la frecuencia de muestreo se observa el efecto contrario, es decir, la grabacin ocurre ms lenta de lo habitual y se nota una voz pesada y lenta, y eso sucede porque en ese intervalo de tiempo se toman muy pocas muestras. En general la prctica sirvi para conocer las operaciones bsicas para adquirir datos analgicos de alguna fuente (en este caso utilizamos en micrfono de la computadora) y poder convertirlo a una serie de nmeros y as poder procesarlos.

Prctica 1. Adquisicin de seales mediante MatLab

Septiembre de 2011

Anexo 1 Programa en MatLab

AI = analoginput('winsound',1); chan = addchannel(AI,1);

AI; duration = 2; %graba por tres segundos para tener un diferente ancho de ventana SampleRate =2500; set(AI,'SampleRate',SampleRate); set(AI,'SamplesPerTrigger',duration*SampleRate); set(AI,'TriggerType','Manual'); AI;

AI; start(AI); AI; trigger(AI); AI; data = getdata(AI); figure plot (data) xlabel('Ancho de ventana');ylabel('Amplitud'); title('Ancho de ventana Vs. Amplitud'); SOUND(data,SampleRate)

wavwrite(data,SampleRate,'voz grabada a 10000 de SampleRate y duracin de 2 segundos') axis auto wavplay(data,SampleRate) delete(AI) clear AI %borra el contenido de AI

Referencias

Brian D. Storey, Using the MATLAB Data Acquisition Toolbox, ao de 2002. http://isa.uniovi.es/~ialvarez/Curso/cptr/SonidoMatlab.pdf.

You might also like