of 5
8/20/2019 Practica 3 Analisis de Audio en Tiempo Real
1/10
INSTITUTO POLITÉCNICONACIONALESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
UNIDAD CULHUACAN
pág. 1
Ingeniería En Comunicaciones y Electrónica.
Sistemas en Tiempo Real.
Practica 3: Análisis de Audio en Tiempo Real
Alumno:
López López Cesar
Especialidad: Computación.
Boleta: 2012351148
Profesor: Orlando Beltrán
Fecha: 23| Febrero| 2015.
8/20/2019 Practica 3 Analisis de Audio en Tiempo Real
2/10
8/20/2019 Practica 3 Analisis de Audio en Tiempo Real
3/10
INSTITUTO POLITÉCNICONACIONALESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
UNIDAD CULHUACAN
pág. 3
INTRODUCCION
El procesamiento de señales es el procesamiento, amplificación e interpretación de señales. Las
señales pueden proceder de diversas fuentes. Existen diversos software que permiten interpretar
archivos de video o de audio y mostrar la señal representativa de los mismos para entender su
comportamiento.
OBJETIVO
El Alumno utilice el ambiente de desarrollo Matlab para obtener de un archivo de audio si grafica
correspondiente y obtenga de igual manera la transformada de Fourier deslizante.
8/20/2019 Practica 3 Analisis de Audio en Tiempo Real
4/10
INSTITUTO POLITÉCNICONACIONALESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
UNIDAD CULHUACAN
pág. 4
MARCO TEORICO
El procesamiento de señales es el procesamiento, amplificación e interpretación de señales. Las
señales pueden proceder de diversas fuentes. Hay varios tipos de procesamiento de señales,
dependiendo de la naturaleza de las mismas.
Procesamiento de señales digitales - para señales digitalizadas. El procesado se hace
mediante circuitos digitales, microprocesadores y ordenadores.
Procesamiento analógico de señales - para señales analógicas, todas aquellas que son
continuas en el tiempo
Procesamiento de señales de audio - para señales electrónicas que representan sonidos
Procesamiento de señales de voz - para analizar señales de voz humana Procesamiento de señales de vídeo - para interpretar movimientos en escenas
Procesamiento de matrices
Una señal de audio es una señal analógica eléctricamente exacta a una señal sonora;
normalmente está acotada al rango de frecuencias audibles por los seres humanos, que está
aproximadamente entre los 20 y los 20.000 Hz (el equivalente, casi exacto a 10 octavas).
Dado que el sonido es una onda de presión se requiere un transductor de presión (un micrófono)
que convierte las ondas de presión de aire (ondas sonoras) en señales eléctricas (señales
analógicas).
La conversión contraria se realiza mediante un altavoz —también llamado bocina o altoparlante
en algunos países latinoamericanos, por traducción directa del inglés loudspeaker—, que
convierte las señales eléctricas en ondas de presión de aire.
Solamente un micrófono puede captar adecuadamente todo el rango audible de frecuencias, en
cambio para reproducir fidedignamente ese mismo rango de frecuencias suelen requerirse dos
altavoces (de agudos y graves) o más.
Una señal de audio se puede caracterizar, someramente, por su dinámica (valor de pico, rango
dinámico, potencia, relación señal-ruido) o por su composición espectral (ancho de banda,
frecuencia fundamental, armónicos, distorsión armónica, etcétera).
Así, por ejemplo, una señal que represente voz humana (señal vocal) no suele tener información
relevante más allá de los 10 kHz, y de hecho en telefonía fija se toman solamente los primeros 3,8
kHz. Con 2 kHz basta para que la voz sea comprensible, pero no para reconocer al hablante.
8/20/2019 Practica 3 Analisis de Audio en Tiempo Real
5/10
INSTITUTO POLITÉCNICONACIONALESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
UNIDAD CULHUACAN
pág. 5
DESARROLLO Y RESULTADOS
Primero con el programa audacity grabamos durante 10 segundos nuestra voz, después se creó un archivo
con extensión .WAV con el fin de que Matlab reconociera el archivo y así de esa manera observar la señal
característica de ese archivo de audio.
8/20/2019 Practica 3 Analisis de Audio en Tiempo Real
6/10
INSTITUTO POLITÉCNICONACIONALESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
UNIDAD CULHUACAN
pág. 6
Este programa es sencillamente fascinante debido a que podemos elegir el formato del archivo, si
la salida es estéreo o mono, la frecuencia entre otras cosas más.
El archivo se grabó con salida mono, con una frecuencia de 44100 Hz y como mencione antes se
guardó con extensión .WAV para que Matlab lo reconociera
Y finalmente quedo un archivo de este tipo.
8/20/2019 Practica 3 Analisis de Audio en Tiempo Real
7/10
INSTITUTO POLITÉCNICONACIONALESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
UNIDAD CULHUACAN
pág. 7
Ahora en Matlab abrimos el programa y se escribió el siguiente código para que no solamente me
mostrara la gráfica de la señal que el archivo de audio mostraba sino también la gráfica de la señalal sacarle la transformada de Fourier.
8/20/2019 Practica 3 Analisis de Audio en Tiempo Real
8/10
INSTITUTO POLITÉCNICONACIONALESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
UNIDAD CULHUACAN
pág. 8
Como resultado obtenemos la interpretación original del archivo de audio, lo que observamos en
la primera grafica es el espectro de la señal y está siendo graficada en el dominio del tiempo y enla segunda observamos la transformada de Fourier de esa señal y el valor absoluto de la misma y
está siendo mostrada en el dominio de la frecuencia.
Aquí está el código en Matlab que genera dichas graficas
clear; %limpiar variables
clc; %limpiar pantalla
[data fs]=wavread('audio.wav'); %leyendo el archivo y su frecuencia de sampleo
%%%%%%%%%%%%% GRAFICANDO %%%%%%%%%%%%%
subplot(2,1,1) % se utiliza el comando subplot para hacer gráficos con más de un sector
plot(data); % graficando la señal en el dominio de los samples de tiempo
subplot(2,1,2)
a=abs(fft(data)); % calculamos la FFT
plot(a(1:end/2)); % graficando la mitad de la señal en el dominio de los samples de la
frecuencia
nota: podemos ver en la imagen que este tiene máximo positivo de 1 y un máximo negativo de 1,
y en la otra grafica que es la de la transformada muestra un máximo positivo de 6000 y un
máximo negativo de 0
8/20/2019 Practica 3 Analisis de Audio en Tiempo Real
9/10
INSTITUTO POLITÉCNICONACIONALESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
UNIDAD CULHUACAN
pág. 9
En la siguiente grafica podemos ver la transformada de Fourier deslizante, es decir, lo que vamos
a observar cómo está graficando ese número determinado de muestras de la señal original entiempo real y tener con concepto un poco más claro, es decir, una muestra precisa de esa señal.
Lo que observamos que está graficando esas 1024 muestra en tiempo real de ese audio de 10
segundos, se le asignó un tiempo de pausa para poder visualizarla y esta se seguirá ejecutando de
manera continua hasta que termine de graficarla, aquí está el código que hace esto.
8/20/2019 Practica 3 Analisis de Audio en Tiempo Real
10/10
INSTITUTO POLITÉCNICONACIONALESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
UNIDAD CULHUACAN
pág. 10
clear; %limpiar variables
clc; %limpiar pantalla [data fs]=wavread('audio.wav'); %leyendo el archivo y su frecuencia de sampleo
m=length(data);
tic
for n=1:1:m-1024
data1=data(n:n+1024:m);
data2=fft(data1,1024);
plot(abs(data2))
pause(0.1)
end
toc
CONCLUSIONES
Al hacer el procesamiento de señal de un archivo de audio se puede denotar que el
comportamiento de la señal es diferente y a mayor tiempo, mayor número de muestras se
pueden obtener. Con este método se puede analizar detalladamente cada paquete y ver el
comportamiento del mismo ya se audio o video.
Pues concluir que al realizar el procesamiento de esas muestras este proceso a pesar de ser más
preciso es muy tardado ya que son muchas, en mi caso fueron alrededor 450 mil muestras (este
resultado se obtuvo debido a la frecuencia con la cual se grabó que fue de 44100 Hz por el tiempo
total de grabación que fue de 10 segundos), y también dependen de los recursos de tu hardware yla velocidad del procesador.
En este caso e tiempo que tardo en obtener la transformada de Fourier fue de 2 segundos para que lo
ejecutara Matlab, ahora eso multiplicado por 450 mil muestras (esto lo obtuve a partir de la frecuencia con
la que se grabó el archivo de audio y el tiempo grabado) y lo dividí entre 60 para obtener los minutos, luego
lo dividí entre 60 nuevamente para obtener las horas y por último en 24 para obtener los días y el resultado
fue exagerado tardaba aproximadamente 10 días para que terminara de graficar ese número de muestras.
Pero esto es debido a los recursos del hardware de mi máquina.
Un método que podemos usar para mejorar este procedimiento es partir la señal en paquetes n muestras y
graficarlas para entender mejor el comportamiento de la misma, es decir si tu paquete es de 10 podríamos
dividirlas en 2 paquetes de 5 o 5 paquetes de 2, de esa manera el análisis de la señal será más preciso que
dejar que la analice de un solo golpe, ya que esto seria tardado y no se obtendría el resultado deseado.
BIBLIOGRAFIA
"Digital Signal Processing: A Computer-Based Approach", Sanjit K. Mitra, McGraw-Hill, 1998.
Título: Matlab, edición de estudiante. Versión 4 guia de usuario., The math works inc.Prentice Hall