Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Digital de Señales
LABORATORIO N°4 : CONVOLUCIÓN
Convolución
De la expresión anterior puede verse como para un valor fijo de x los origines de las
funciones f y g estan desplazados justamente en ese valor x. Los valores de f para z
crecientes van siendo multiplicados por valores de g para decrecientes. En el
caso discreto que veremos más adelante esta visión intuitiva de la convolución
quedará aún más clara. La figura
ilustra el efecto de esta operación. La gran importancia de esta operación rádica en el
hecho de que la TF de un producto de convolución de dos funciones es igual al
producto de las TFs de dichas funciones, es decir
muestra una comparación entre los resultados del caso discreto y el caso continuo.
Las expresiones que aparecen en el caso bidimensional (imágenes) son las siguientes:
Caso continuo:
Caso discreto:
Para e .
IV. PROCEDIMIENTO
1. Se tienen dos salas. La primera con reverberación y la segunda
con reverberación y eco. Si se conoce la respuesta al impulso para
ambos casos, hallar como sonaría cierto mensaje pronunciado en
cada sala.
Código usado:
disp('Cargando Mensaje...');
[Mensaje, fs1]=audioread('Mensaje.wav');
disp('Cargando respuesta al impulso de la sala con reverberacion');
[rpta_impulso_reverb,fs2]=audioread('Rpta_Imp_Sala_Reverb.wav');
disp('Cargando respuesta al impulso de la sala con reverberacion y
eco');
[rpta_impulso_reverb_eco,fs3]=audioread('Rpta_Imp_Sala_Reverb_Eco.wav'
);
Ts1=inv(fs1);
Ts2=inv(fs2);
Ts3=inv(fs3);
t_mensaje=0:Ts1:Ts1*(length(Mensaje)-1);
t_rpta_mensaje_reverb=0:Ts2:Ts2*(length(rpta_impulso_reverb)-1);
t_rpta_mensaje_reverb_eco=0:Ts3:Ts3*(length(rpta_impulso_reverb_eco)-
1);
disp('Respuesta de sala con reverb al mensaje...');
rpta_msj_sala_reverb=conv(Mensaje,t_rpta_mensaje_reverb);
disp('Respuesta de sala con reverb y eco al mensaje...');
rpta_msj_sala_reverb_eco=conv(Mensaje,t_rpta_mensaje_reverb_eco);
figure(1);
%subplot(5,1,1);
%plot(t_rpta_mensaje_reverb,rpta_impulso_reverb);
%title('Respuest al impulso de la sala con reverberacion');
%subplot(5,1,2);
%plot(t_rpta_mensaje_reverb_eco,rpta_impulso_reverb_eco);
%title('Respuest al impulso de la sala con reverberacion y eco');
subplot(3,1,1);
plot(t_mensaje,Mensaje);
title('Mensaje');
subplot(3,1,2);
plot(rpta_msj_sala_reverb);
title('Respuesta al mensaje de sala con reverb');
subplot(3,1,3);
plot(rpta_msj_sala_reverb_eco);
title('Respuesta al mensaje de sala con reverb y eco');
disp('Mensaje, presionar tecla para oirlo');
pause;
sound(Mensaje,fs1);
disp('Respuesta al mensaje de sala con reverb, presionar tecla para
oirlo');
pause;
sound(rpta_msj_sala_reverb,fs1);
disp('Respuesta al mensaje de sala con reverb y eco, presionar tecla
para oirlo');
pause;
sound(rpta_msj_sala_reverb_eco,fs1);
La gráfica obtenida es:
V. PROBLEMAS PROPUESTOS
01. Se tiene información de la respuesta al impulso de
tres ambientes.
http://isophonics.net/content/room-impulse-response-data-
set
disp('Cargando audio...');
[Pds, fs1]=audioread('pds.wav');
disp('Cargando respuesta al impulso del gran salon');
[rpta_impulso_salon,fs2]=audioread('x00y07.wav');
Ts1=inv(fs1);
Ts2=inv(fs2);
t_pds=0:Ts1:Ts1*(length(Pds)-1);
t_rpta_mensaje_salon=0:Ts2:Ts2*(length(rpta_impulso_salon)-1);
t_conv=0:Ts2:Ts2*(max([length(Pds)+length(rpta_impulso_salon)-
1,length(Pds),length(rpta_impulso_salon)])-1);
disp('Respuesta de gran salon al mensaje...');
rpta_msj_sala_salon=conv(Pds,rpta_impulso_salon);
figure(1);
subplot(3,1,1);
plot(t_pds,Pds);
title('Audio de Prueba');
xlim([0,5]);
subplot(3,1,2);
plot(t_rpta_mensaje_salon,rpta_impulso_salon);
title('Muestra de Gran salon')
xlim([0,5]);
subplot(3,1,3);
plot(t_conv,rpta_msj_sala_salon);
title('Respuesta al audio en gran salon');
xlim([0,5]);
disp('Mensaje, presionar tecla para oirlo');
pause;
sound(Pds,fs1);
disp('Respuesta al mensaje de sala con reverb, presionar tecla para
oirlo');
pause;
sound(rpta_msj_sala_salon,fs1);
2° grabación
disp('Cargando audio...');
[Pds, fs1]=audioread('pds.wav');
disp('Cargando respuesta al impulso del gran salon');
[rpta_impulso_salon,fs2]=audioread('x12y12.wav');
Ts1=inv(fs1);
Ts2=inv(fs2);
t_pds=0:Ts1:Ts1*(length(Pds)-1);
t_rpta_mensaje_salon=0:Ts2:Ts2*(length(rpta_impulso_salon)-1);
t_conv=0:Ts2:Ts2*(max([length(Pds)+length(rpta_impulso_salon)-
1,length(Pds),length(rpta_impulso_salon)])-1);
disp('Respuesta de gran salon al mensaje...');
rpta_msj_sala_salon=conv(Pds,rpta_impulso_salon);
figure(1);
subplot(3,1,1);
plot(t_pds,Pds);
title('Audio de Prueba');
subplot(3,1,2);
plot(t_rpta_mensaje_salon,rpta_impulso_salon);
title('Muestra de Gran salon')
subplot(3,1,3);
plot(t_conv,rpta_msj_sala_salon);
title('Respuesta al audio en gran salon');
disp('Mensaje, presionar tecla para oirlo');
pause;
sound(Pds,fs1);
disp('Respuesta al mensaje de sala con reverb, presionar tecla para
oirlo');
pause;
sound(rpta_msj_sala_salon,fs1);
Octagon
disp('Cargando Mensaje...');
[Lab_Pds, fs1]=audioread('lab_pds.wav');
disp('Cargando respuesta al impulso salon octogono');
[rpta_impulso_oct,fs2]=audioread('x02y06.wav');
Ts1=inv(fs1);
Ts2=inv(fs2);
t_pds=0:Ts1:Ts1*(length(Lab_Pds)-1);
t_rpta_mensaje_oct=0:Ts2:Ts2*(length(rpta_impulso_oct)-1);
t_conv=0:Ts2:Ts2*(max([length(Lab_Pds)+length(rpta_impulso_oct)-
1,length(Lab_Pds),length(rpta_impulso_oct)])-1);
disp('Respuesta de salon octagono al mensaje...');
rpta_msj_sala_oct=conv(Lab_Pds,rpta_impulso_oct);
figure(1);
subplot(3,1,1);
plot(t_pds,Lab_Pds);
title('Mensaje');
subplot(3,1,2);
plot(t_rpta_mensaje_oct,rpta_impulso_oct);
title('Muestra de Salon Octogonal')
subplot(3,1,3);
plot(t_conv,rpta_msj_sala_oct);
title('Respuesta al mensaje de sala con reverb');
disp('Mensaje, presionar tecla para oirlo');
pause;
sound(Lab_Pds,fs1);
disp('Respuesta al mensaje de sala octogono con reverb, presionar
tecla para oirlo');
pause;
sound(rpta_msj_sala_oct,fs1);
2° grabación
disp('Cargando Mensaje...');
[Lab_Pds, fs1]=audioread('lab_pds.wav');
disp('Cargando respuesta al impulso salon octogono');
[rpta_impulso_oct,fs2]=audioread('x12y12.wav');
Ts1=inv(fs1);
Ts2=inv(fs2);
t_pds=0:Ts1:Ts1*(length(Lab_Pds)-1);
t_rpta_mensaje_oct=0:Ts2:Ts2*(length(rpta_impulso_oct)-1);
t_conv=0:Ts2:Ts2*(max([length(Lab_Pds)+length(rpta_impulso_oct)-
1,length(Lab_Pds),length(rpta_impulso_oct)])-1);
disp('Respuesta de salon octagono al mensaje...');
rpta_msj_sala_oct=conv(Lab_Pds,rpta_impulso_oct);
figure(1);
subplot(3,1,1);
plot(t_pds,Lab_Pds);
title('Mensaje');
subplot(3,1,2);
plot(t_rpta_mensaje_oct,rpta_impulso_oct);
title('Muestra de Salon Octogonal')
subplot(3,1,3);
plot(t_conv,rpta_msj_sala_oct);
title('Respuesta al mensaje de sala con reverb');
disp('Mensaje, presionar tecla para oirlo');
pause;
sound(Lab_Pds,fs1);
disp('Respuesta al mensaje de sala octogono con reverb, presionar
tecla para oirlo');
pause;
sound(rpta_msj_sala_oct,fs1);
Después de comparar las gráficas y los audios, se puede determinar que los
sonidos emitidos en Great Hall causan una reverberación mayor a la
producida en Octogon.
VI. CONCLUSIONES
Se analizó y comprobó las diversas propiedades de la convolución.
Se vio la utilidad de la convolución, en la aplicación de reverberación
y eco.