Académique Documents
Professionnel Documents
Culture Documents
Objetivos:
Implementar el algoritmo de la convolucion e utilizarlo para realizar procesamiento de seales de audio.
Implemente en Matlab el algoritmo de la convolucion en tiempo discreto. Puede tomar como referencia el captulo 6
de la referencia [1].
CODIGO:
%%Convolucion_Mio
%%Carlos Guerrero
%%Universidad de Cuenca
function y_n =myconvolucion(x0,h0)
x_l = length(x0);
h_l = length(h0);
x_a = [x0, zeros(1,h_l)] %igualacion de matrices para
h_a=[h0,zeros(1,x_l)] %que x y h sean del mismo tamano llenando de ceros
1. La funcin myconvolucion tiene dos parmetros de ingreso x0 y h0, los cuales son los vectores de x y h
respectivamente.
2. Luego se obtiene la longitud de los vectores x y h.
3. Se procede a igualar la longitud de ambas matrices, llenado de ceros las posiciones faltantes.
4. El primer for nos da el nmero de muestras de la convolucion que de acuerdo a la literatura es la longitud de
x ms la longitud de h menos 1.
5. Se le llena de ceros a la variable de salida y en nuestro caso
6. El siguiente for ira desde 1 hasta la longitud de x, debido a que Matlab no evala los vectores en posiciones
menores o iguales a 0, se le agrega un if donde (i-j+1) debe ser mayor a cero, as se asegura no tener
nmeros negativos.
7. Se declara la frmula de la convolucion y(n)=x(k)h(n-k) en el cdigo y(i)=x(j)h(i-j+1)
8. Se declara una variable convolucion dependiente de i, as se ira sumando de forma iterativa.
9. Al final se devuelve en la variable y_n, y as se termina la funcin.
Para cada una de las respuestas al impulso elegidas usted debera graficar en el dominio del tiempo y en el dominio
de la frecuencia lo siguiente:
En las Figure 1 y 2 se puede evidenciar la seal de ingreso tanto en tiempo como en frecuencia respectivamente en
este caso la seal es un audio llamado Celos.wav
2. La seales de audio correspondiente a la respuesta al impulso h1 [n] y h2 [n], tanto en el dominio de tiempo
y
Frecuencia.
Grafica de h1[n]
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
0 1 2 3 4 5 6 7 8 9
4
x 10
Figure 3 Respuesta al impulso h1[n] en el dominio del Tiempo
Grafica de H1(w)
30
25
20
15
10
0
-4 -3 -2 -1 0 1 2 3 4
En la figure 3 y 4 se observa la respuesta al impulso de la seal de audio Rays.wav tanto en el tiempo como en
frecuencia
Grafica de h2[n]
1
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
4
x 10
Figure 5 Figure 6 Respuesta al impulso h2[n] en el dominio del Tiempo
Grafica de H2(w)
25
20
15
10
0
-4 -3 -2 -1 0 1 2 3 4
En la figure 5 se observa la respuesta al impulso nmero dos de una seal de audio Trig Room.wav tanto en el
tiempo como en frecuencia
3. La seales de audio correspondiente a la salidas del sistema y[n] = x[n] h[n], con los dos impulsos tanto
en el tiempo como en frecuencia.
3.5
2.5
1.5
0.5
0
-4 -3 -2 -1 0 1 2 3 4
Las Figure 8 y 9 muestra la convolucion entre la seal x[n] y h1[n], tanto en tiempo como en frecuencia, cabe
destacar que las seales x[n],h1[n] y h2[n] se muestrearon con la funcin audioread de Matlab. luego se procedi a
hacer la convolucion con la funcin conv pasndole como parmetro los vectores x[n],h1[n] y h2[n], luego se
procedi a graficar las mismas. El cdigo de Matlab se lo puede revisar al final de este tema.
La seal se elev en ganancia de 0.5 a 4, adems la seal tiene una duracin ms larga en donde en el ltimo tramo
decrece casi hasta cero.
Se modifico ganancia de la misma adems parece haber ms ceros en las muestras, pero se puede evidenciar que
tiene la misma duracin de pi a pi.
3. Cul es su percepcin de la variacin del sonido original luego de haber pasado por el sistema con la respuesta al impulso
h[n]?
A la seal le ingresa ruido que se escucha claramente al fondo de la misma, adems la seal presente un aumento de volumen.
4. Cules son las longitudes de las secuencias: x[n], h[n] y y[n] = x[n] h[n] ? Escriba los clculos correspondientes que
justifiquen el porqu de la longitud de y[n].
En matlab se procedi a calcular la longitud total de las seales. Segn la teora la longitud de la convolucion debe ser longitud
de x(n) ms la longitud de h(n) menos uno.
4
x 10 Grafica de Convolucion x(n)*h2(n) en Frecuencia
4
3.5
2.5
1.5
0.5
0
-4 -3 -2 -1 0 1 2 3 4
Las Figure 10 y 11 muestran las grficas de las convolucion entre x[n] y h2[n], as mismo se muestrearon las seales
descritas con audioread y se procedi a convolucionar con conv, y luego a grafica tanto en el tiempo como en
frecuencia. Se puede evidenciar que en el dominio de la frecuencia la seal no difiere mucho de la seal de ingreso
x[n].
Como se modific la seal en el dominio del tiempo?
Cul es su percepcin de la variacin del sonido original luego de haber pasado por el sistema con la respuesta al impulso
h[n]?
Cules son las longitudes de las secuencias: x[n], h[n] y y[n] = x[n] h[n] ? Escriba los clculos correspondientes que
justifiquen el porqu de la longitud de y[n].
En Matlab se procedi a calcular la longitud total de las seales. Segn la teora la longitud de la convolucion debe ser longitud
de x(n) ms la longitud de h(n) menos uno.
Cdigo en Matlab:
%%Universidad de Cuenca
%%Carlos Guerrero
%%1.2 Audios
close all
clear all
clc
%load handel
Visualice las tres seales en el dominio del tiempo: 1) audio, 2) audio con ruido y 3) seal filtrada.
Senal de Audio
0.5
0.4
0.3
0.2
0.1
-0.1
-0.2
-0.3
-0.4
0 0.5 1 1.5 2 2.5 3 3.5
5
x 10
Senal de Ruido
0.05
0.04
0.03
0.02
0.01
-0.01
-0.02
-0.03
-0.04
-0.05
0 0.5 1 1.5 2 2.5 3 3.5
5
x 10
Generacin de la seal de ruido con la funcin randn con longitud de la seal Celos.wav, con atenuacin de 0.01
Figure 13 Seal de audio con ruido.
Grafica de la seal filtrada con el filtro de promedio mvil con una ventana de 5 muestras, se puede notar una seal
muy parecida a la original.
Figure 15 Seal Filtrada con ventana de 10 muestras.
Grafica de la seal filtrada con el filtro de promedio mvil con una ventana de 10 muestras, se puede notar un
pequeo decremento en la amplitud, pero es muy similar a la original.
Grafica de la seal filtrada con el filtro de promedio mvil con una ventana de 20 muestras.
Figure 17 Seal Filtrada con ventana de 50 muestras.
Grafica de la seal filtrada con el filtro de promedio mvil con una ventana de 50 muestras.
Grafica de la seal filtrada con el filtro de promedio mvil con una ventana de 100 muestras.
Para las siguientes graficas la seal de rojo corresponde a la filtrada, la de azul a la seal con ruido y la de color
negro corresponde a la seal de ingreso.
Figure 19 Grafica de Seales de Audio, Audio con ruido y audio filtrado con ventana de 5 muestras.
Se puede notar que la seal filtrada(rojo) es muy parecida a la seal ruidosa, pero se puede evidenciar en algunas
partes que no le toma de la manera ms adecuada.
Figure 20 Grafica de Seales de Audio, Audio con ruido y audio filtrado con ventana de 10 muestras.
En la Figure 21 se puede evidenciar que la seal de filtrado(rojo) con una ventana de 20 sigue la tendencia de la
ruidosa pero de menor amplitud, siendo la mejor aproximacin.
Figure 21 Grafica de Seales de Audio, Audio con ruido y audio filtrado con ventana de 20 muestras.
En esta grafica se puede notar que se ha perdido mucha informacin debido al nmero de muestras de la ventana,
adems se ve claramente que la amplitud de la seal se ha reducido.
Figure 22 Grafica de Seales de Audio, Audio con ruido y audio filtrado con ventana de 50 muestras.
Se nota claramente que se perdido mucha informacin con este tamao de ventana, adems su amplitud se reduce
nuevamente comparada con la ventana de 20 muestras.
Figure 23 Grafica de Seales de Audio, Audio con ruido y audio filtrado con ventana de 100 muestras.
En la grfica se muestra que la seal filtrada (rojo) ha reducido drsticamente su amplitud y no se parece en nada a
la seal ruidosa.
1. Se produjo una mejora sustancial en el audio tras la aplicacin del filtro de promediado mvil? Explique
sus percepciones.
Si la seal ha mejorado bastante el ruido se ha reducido, pero todava existo el mismo en la seal.
El filtro de promediado mvil tiene como objetivo obtener un promedio de la seal en un tamao de ventana
determinado, si la ventana es pequea se obtiene un promedio muy parecido a la seal de ingreso eliminando as el
ruido.
Pero al ser ms amplia la ventana en el promedio se toma diferentes valores ya no los ms cercanos haciendo que la
seal quede muy distorsionada.
3. Cul es el tamao de ventana que brinda los mejores resultados? Justifique su respuesta.
Con la ventana de 10 muestras se encontr un mejor audio, casi sin ruido, segn la grfica muestra una seal filtrada
de menor tamao que la original.
Debido a que el filtro es un promedio de las muestras , al ser la ventana de gran tamao el promedio de las
mismas va ser de menor tamao siempre haciendo que la seal decrezca en amplitud.
5. El filtro tiene el mismo efecto en la mejora del audio si el ruido agregado a la seal original se incrementa
considerablemente? Por ejemplo, con un coeficiente de 0.1.
No debido a que la seal de ruido es mucho mayor que la seal de ingreso haciendo que se escuche solo la seal de ruido es decir el filtro
ya no es efectivo.
Cdigo en Matlab
%%Universidad de Cuenca
%%Carlos Guerrero
%%1.3 Audios
close all
clear all
clc
%load handel
1.4. Conclusiones
- Se pudo evidenciar de manera prctica lo aprendido en clases acerca de la convolucion de seales, adems al
plantear nuestra propia funcin se entendi como funciona la convolucion.
- Debido a que Matlab no trabaja con la posicin de cero en las matrices se hizo difcil realizar el cdigo para la
convolucion, pero con la ayuda de la bibliografa se lo pudo llevar a cabo.
- En Matlab se procedi a hacer las respuestas a impulsos de diferentes audios, logrando entender en que consiste
el procesamiento de audio tanto en el tiempo como en frecuencia.
- Las seales de audio que se obtuvieron luego de hacer la convolucion eran diferentes se introdujo ruido y se
amplificaron las seales, de manera que no se le escucha muy bien.
- La etapa del filtrado de promediado mvil es una eficiente alternativa consiste en sacar el promedio de un
numero tal de muestras hacia delante, de una posicin dada.
- El nmero de muestras promedio se debe elegir de acuerdo a cada seal, para la prctica con una ventana de 10
muestras el sonido mejoraba bastante.
- Adems se comprob que una ventana de tamao grande, hace que la seal se atenu demasiado ya que se pierde
mucha informacin al hacer el promedio de las seal.
1.4. Bibliografia
[2] Steven W. Smith, The Scientist and Engineers Guide to Digital Signal Processing, www.dspguide.com, 1997-
2013.