Está en la página 1de 25

LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

UNIVERSIDAD NACIONAL MAYOR DE

SAN MARCOS
(Universidad del Perú, Decana de América)

FACULTAD DE INGENIERÍA ELECTRÓNICA


Y ELÉCTRICA

INTEGRANTES:
 Ramos Lopez Brandon Bryan [16190183]
 Torres Guerreros Ricardo [16190102]

Curso: Laboratorio de Procesamiento de Señales Digitales


Tema: Convolución y correlación
Profesor: Edgard Oporto

Horario: Viernes (20:00 – 22:00)

Fecha: 6 de Mayo del 2019


LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS


FACULTAD DE INGENIERIA ELECTRONICA Y ELECTRICA

EXPERIENCIA 4
CONVOLUCION Y CORRELACION

I. OBJETIVOS
a) Analizar y comprobar las diversas propiedades y utilidad de la convolución y de la
correlación y experimentar con diversas señales.
II. EQUIPOS Y MATERIALES
Computador con Matlab

III. MARCO TEORICO/INFORME PREVIO

CONVOLUCÍON:

Intuitivamente podemos mirar a la convolución de dos funciones   f z y g z  como la función


resultante que aparece después de efectuar los siguientes pasos:

a) girar respecto del origen los valores de una de ellas, es decir   g z=g−z  para todo z desde  
−∞ a+ ∞ .

b) Ir trasladando la función girada sobre la otra   f ( z) . g(x−z )

c) En cada punto x calculamos el valor que resulta de sumar los productos obtenidos de


multiplicar para todos los z los correspondiente valores de las funciones    f ( z) y g(x−z ) . En
esencia estamos calculando para cada valor de x una especie de valor ponderado de una de las
funciones  f ( z) con los valores de la otra  g(z). En el caso de que el área encerrada por la curva
de   g(z)fuese igual 1 entonces estaríamos calculando para x una media ponderada.
Matemáticamente la expresión para esta operación es:

De la expresión anterior puede verse como para un valor fijo de x los orígenes de las
funciones f y g están desplazados justamente en ese valor x. Los valores de f para z crecientes
van siendo multiplicados por valores de g para X-Z 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:
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

Ilustración 1

CORRELACIÓN:
La correlación de dos funciones reales es una operación de similares características a la
convolución con la salvedad de que no giraremos alrededor del origen los valores de una de
las funciones. La expresión matemática para esta operación es:

Bajo las mismas condiciones que establecimos en la convolución en el caso discreto, la


expresión de la correlación de funciones discretas reales es
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

para x=0,1 , … .. M −1. De manera similar se pueden transcribir las expresiones de la


correlación en el caso bidimensional.
Al igual que la convolución, la correlación es una operación básica del procesamiento de
imágenes digitales. La correlación es la operación básica en los procesos de búsqueda de
patrones por emparejamiento. Por tanto, disponer de algoritmos que calculen de una forma
eficiente estas operaciones es del mayor interés La figura muestra el resultado de
correlacionar dos funciones.

Ilustración 2

VI. PROCEDIMIENTO

REVERBERACION
a) Es la suma total de reflexiones del sonido que recibe y escucha un oyente en diferentes
momentos de tiempo.
b) Auditivamente se caracteriza por una “cola” o prolongación del sonido original
c) En realidad, son ecos, pero tan próximos que el oyente no los distingue por separado.
d) Para que los ecos no sean distinguibles del sonido original, el retardo debe ser menor a
0.1s.
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

Ilustración 3

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.
Analizar línea a línea y comprender el siguiente código.

disp('Cargando Mensaje (ADS.wav)...');


[mensaje, fs1] = wavread('ADS.wav'); fs1
length(mensaje)
disp('Cargando respuesta al impulso en sala con reverberación (golpe.wav)...');
[golpe, fs2] = wavread('golpe.wav'); fs2
length(golpe)
disp('Cargando rpta al impulso en sala con reverberación y eco (golpe_eco.wav)...');
[golpe_eco, fs3] = wavread('golpe_eco.wav'); fs3
length(golpe_eco)
ts1 = inv(fs1); ts2 = inv(fs2); ts3 = inv(fs3);

t_mensaje = 0:ts1:ts1*(length(mensaje)-1);
t_golpe = 0:ts2:ts2*(length(golpe)-1);
t_golpe_eco = 0:ts3:ts3*(length(golpe_eco)-1);

disp('Calculando convolución de voz en sala con reverberación...');


y_golpe = conv(mensaje,golpe);
length(y_golpe)

disp('Calculando convolución de voz en sala con reverberación y eco...');


y_golpe_eco = conv(mensaje,golpe_eco);
length(y_golpe_eco)

figure(1);
subplot(311); plot(t_golpe,golpe);
title('Sonido de respuesta impulsional de estancia con reverberación');
subplot(312); plot(t_golpe_eco,golpe_eco);
title('Sonido de respuesta impulsional de estancia con reverberación y eco');
subplot(313); plot(t_mensaje,mensaje); title('Sonido de voz hablada');

disp('Preparese a escuchar los sonidos simulados de la sala...');


disp('Sonido rpta impulso de sala con reverberación. Pulsar tecla para oirlo...');
pause; sound(golpe,fs2);
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

disp('Sonido rpta impulso de sala con reverberación/eco. Pulsar tecla para oirlo...');
pause; sound(golpe_eco,fs3);

disp('Mensaje/voz original. Pulsar tecla para oírlo...');


pause; sound(mensaje,fs1);

disp('Voz en sala con reverberación. Pulsar tecla para oírlo...');


pause; sound(y_golpe,fs1);

 Analizando el código línea por línea:

disp('Cargando Mensaje (ADS.wav)...'); %Para que un programa en modo de


ejecución
%pueda escribir letreros, avisos,
%etc. por pantalla, se utiliza el
comando:
%disp(‘Cadena de Caracteres’)

[mensaje, fs1] = audioread('ADS.wav'); fs1 %lee datos del archivo nombrado


ADS.wav,
% y devuelve datos muestreados
"mensaje", y una
% frecuencia de muestreo para
esos datos fs1.

length(mensaje) %devuelve la longitud de la dimensión de matriz mensaje.


%Para los vectores, la longitud es simplemente el número de
elementos

disp('Cargando respuesta al impulso en sala con reverberación


(golpe.wav)...');

[golpe, fs2] = audioread('golpe.wav'); fs2 %lee datos del archivo nombrado


golpe.wav,
% y devuelve datos muestreados
"golpe", y una
% frecuencia de muestreo para
esos datos fs2.
length(golpe) %devuelve la longitud de la dimensión de matriz golpe.
disp('Cargando rpta al impulso en sala con reverberación y eco
(golpe_eco.wav)...');
[golpe_eco, fs3] = audioread('golpe_eco.wav'); fs3%lee datos del archivo
nombrado golpe_eco.wav,
% y devuelve datos
muestreados "golpe_eco", y una
% frecuencia de muestreo
para esos datos fs3.

length(golpe_eco) %devuelve la longitud de la dimensión de matriz


golpe_eco.
ts1 = inv(fs1); ts2 = inv(fs2); ts3 = inv(fs3);% se calcula los peridos
invirtiendo la frecuencia
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

t_mensaje = 0:ts1:ts1*(length(mensaje)-1);%calculamos el tiempo de los


datos muestreados "mensaje"

t_golpe = 0:ts2:ts2*(length(golpe)-1); %calculamos el tiempo de los


datos muestreados "golpe"

t_golpe_eco = 0:ts3:ts3*(length(golpe_eco)-1);%calculamos el tiempo de los


datos muestreados "golpe_eco"

disp('Calculando convolución de voz en sala con reverberación...');


y_golpe = conv(mensaje,golpe); %convolución de mensaje y golpe
length(y_golpe) %devuelve la longitud de la dimensión de matriz y_golpe.

disp('Calculando convolución de voz en sala con reverberación y eco...');


y_golpe_eco = conv(mensaje,golpe_eco); %convolución de mensaje y golpe_eco
length(y_golpe_eco) %devuelve la longitud de la dimensión de matriz
y_golpe_eco.

figure(1);
subplot(511); plot(t_golpe,golpe); %ploteamos golpe en funcion de t_golpe
title('Sonido de respuesta impulsional de estancia con reverberación');
subplot(512); plot(t_golpe_eco,golpe_eco); %ploteamos golpe_eco en funcion
de t_golpe_eco
title('Sonido de respuesta impulsional de estancia con reverberación y
eco');
subplot(513); plot(t_mensaje,mensaje);%ploteamos golpe en funcion de
mensaje en función de t_mensaje
title('Sonido de voz hablada');
disp('Preparese a escuchar los sonidos simulados de la sala...');
disp('Sonido rpta impulso de sala con reverberación. Pulsar tecla para
oirlo...');
pause; sound(golpe,fs2); %sound(golpe,fs2)envía la señal de audio golpe al
altavoz
%a la frecuencia de muestreo fs2.

disp('Sonido rpta impulso de sala con reverberación/eco. Pulsar tecla para


oirlo...');
pause; sound(golpe_eco,fs3); %sound(golpe_eco,fs3)envía la señal de audio
golpe al altavoz
%a la frecuencia de muestreo fs3.

disp('Mensaje/voz original. Pulsar tecla para oírlo...');


pause; sound(mensaje,fs1); %sound(mensaje,fs1)envía la señal de audio golpe
al altavoz
%a la frecuencia de muestreo fs1.

disp('Voz en sala con reverberación. Pulsar tecla para oírlo...');


pause; sound(y_golpe,fs1); %sound(y_golpe,fs1)envía la señal de audio golpe
al altavoz
%a la frecuencia de muestreo fs1.
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

Sonido de respuesta impulsional de estancia con reverberación


0.5

-0.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Sonido de respuesta impulsional de estancia con reverberación y eco
0.5

-0.5
0 0.1 0.2 0.3 0.4 0.5 0.6
Sonido de voz hablada
1

-1
0 0.5 1 1.5 2 2.5

Ilustración 4

2. Agregue código al programa anterior para visualizar las señales del mensaje escuchadas con
reverberación y con reverberación y eco.

isp('Cargando Mensaje (ADS.wav)...');


[mensaje, fs1] = audioread('ADS.wav'); fs1
length(mensaje)
disp('Cargando respuesta al impulso en sala con reverberación
(golpe.wav)...');
[golpe, fs2] = audioread('golpe.wav'); fs2
length(golpe)
disp('Cargando rpta al impulso en sala con reverberación y eco
(golpe_eco.wav)...');
[golpe_eco, fs3] = audioread('golpe_eco.wav'); fs3
length(golpe_eco)
ts1 = inv(fs1); ts2 = inv(fs2); ts3 = inv(fs3);

t_mensaje = 0:ts1:ts1*(length(mensaje)-1);
t_golpe = 0:ts2:ts2*(length(golpe)-1);
t_golpe_eco = 0:ts3:ts3*(length(golpe_eco)-1);

disp('Calculando convolución de voz en sala con reverberación...');


y_golpe = conv(mensaje,golpe);
length(y_golpe)

disp('Calculando convolución de voz en sala con reverberación y eco...');


y_golpe_eco = conv(mensaje,golpe_eco);
length(y_golpe_eco)

figure(1);
subplot(311); plot(t_golpe,golpe);
subplot(312); plot(t_golpe_eco,golpe_eco);
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

title('Sonido de respuesta impulsional de estancia con reverberación y


eco');
title('Sonido de respuesta impulsional de estancia con reverberación');
subplot(313); plot(t_mensaje,mensaje); title('Sonido de voz hablada');

t_mensaje_rever=0:ts1:ts1*(length(y_golpe)-1);
t_mensaje_eco=0:ts1:ts1*(length(y_golpe_eco)-1);

figure (2);
subplot(211); plot(t_mensaje_rever,y_golpe);
title('Señal del mensaje con reverberación ');
subplot(212); plot(t_mensaje_eco,y_golpe_eco);
title('Señal del mensaje con reverbacion y eco ');

disp('Preparese a escuchar los sonidos simulados de la sala...');


disp('Sonido rpta impulso de sala con reverberación. Pulsar tecla para
oirlo...');
pause; sound(golpe,fs2);

disp('Sonido rpta impulso de sala con reverberación/eco. Pulsar tecla para


oirlo...');
pause; sound(golpe_eco,fs3);

disp('Mensaje/voz original. Pulsar tecla para oírlo...');


pause; sound(mensaje,fs1);

disp('Voz en sala con reverberación. Pulsar tecla para oírlo...');


pause; sound(y_golpe,fs1);

disp('Voz en sala con reverbacion y eco. Pulsar una tecla para oirlo...');
pause; sound(y_golpe_eco,fs1);

Ilustración 5
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

3. Se tiene información, en una grabación WAV, de la respuesta al impulso de la Basílica


de Foligno, en Italia. Realice un script para simular como se escucharían otros sonidos
en dicho ambiente.

Pruebe con los siguientes sonidos:


WEBWER22.WAV Melodía
Mi_Voz.WAV Una grabación suya

FOLIP-12.WAV Respuesta al impulso de la basílica


Grafique todas las ondas de interés:
- Respuesta al impulso de la Basílica
- Sonidos originales
- Sonidos reproducidos en la basílica
disp('Cargando Mensaje (WEB.WER22.WAV)...');
[mensaje1,fs1]=audioread('WEBWER22.wav'); fs1
length(mensaje1)
disp('Cargando respuesta de la catedral (FOLIP-12.wav) ');
[catedral,fs2]=audioread('FOLIP-12.wav'); fs2
length(catedral)
disp('Cargamos el audio grabado (Recording.wav)');
[mensaje2,fs3]=audioread('Recording.wav'); fs3
length(mensaje2)
catedral(:,2)=[];
mensaje2(:,2)=[];
ts1=inv(fs1); ts2=inv(fs2); ts3=inv(fs3);

t_mensaje1=0:ts1:ts1*(length(mensaje1)-1);
t_mensaje2=0:ts3:ts3*(length(mensaje2)-1);
t_catedral=0:ts2:ts2*(length(catedral)-1);

disp('Calculando convolucion de msj1 con catedral ..');


y_mensaje1=conv(mensaje1,catedral);

disp('Calculando convolucion de msj2 con catedral');


y_mensaje2=conv(mensaje2,catedral);

t_msj1_cat=0:ts1:ts1*(length(y_mensaje1)-1);
t_msj2_cat=0:ts3:ts3*(length(y_mensaje2)-1);

figure(1)
subplot(311); plot(t_catedral,catedral);
title('Catedral');
subplot(312); plot(t_mensaje1,mensaje1);
title('Mensaje1');
subplot(313); plot(t_mensaje2,mensaje2);
title('Mensaje2');

figure(2)
plot(t_msj1_cat,y_mensaje1);
title('Catedral-mensaje1');

disp('Preparese a escuchar los sonidos simulados...');


pause; sound(mensaje1,fs1);

disp('S Pulsar tecla para oirlo...');


pause; sound(mensaje2,fs3);
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

disp(' Pulsar tecla para oírlo...');


pause; sound(catedral,fs2);

disp(' Pulsar tecla para oírlo...');


pause; sound(y_mensaje1,fs1);

disp('Pulsar una tecla para oirlo...');


pause; sound(y_mensaje2,fs3);

Ilustración 6

Ilustración 7
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

SEÑALES BASICAS
04. Genere las señales básicas.
%Escalón
n = 1:100;
u = [zeros(1,50), ones(1,50)];
figure (2)
stem(n, u)
title('Función Escalón');

Ilustración 8

%Rampa
n = 1:25 ;
ramp = n;
figure(3)
stem(n, ramp)
title('Función Rampa');

Ilustración 9
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

%Escalón desplazado en el tiempo (pulso rectangular)


n = 1:1:200;
u1 = [zeros(1,50),ones(1,150)];
u2 = [zeros(1,150),ones(1,50)];
un = u1 - u2;
figure(4)
stem(n, un)
title('Función Pulso Rectangular');

Ilustración 10

4. Modifique para iniciar las secuencias en n = 0.

%Escalón
n = -50:49;
u = [zeros(1,50), ones(1,50)];
figure (2)
stem(n, u)
title('Función Escalón');
xlabel('n');
ylabel('u');
axis([-50 50 -1 2])
grid on
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

Ilustración 11

%Rampa
n = 1:25 ;
ramp = n;
figure(3)
stem(n, ramp)
title('Función Rampa');
xlabel('n');
ylabel('u');
grid on

Ilustración 12
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

%Escalón desplazado en el tiempo (pulso rectangular)


n = -100:99;
u1 = [zeros(1,50),ones(1,150)];
u2 = [zeros(1,150),ones(1,50)];
un = u1 - u2;

figure(4)

stem(n, un)
axis([-70 70 -1 2])
grid on
title('Función Pulso Rectangular');
xlabel('n');
ylabel('u');
grid on

Ilustración 13

06. Genere las señales básicas (segunda forma).


n = -50:1:50;
impulse = n == 0;
unitstep = n >= 0;
ramp = n.*unitstep;
quad = n.^2.*unitstep;
%stem(n,[impulse unitstep ramp quad])
subplot(411)
stem(n, impulse)
subplot(412)
stem(n,unitstep)
subplot(413)
stem(n,ramp)
subplot(414)
stem(n,quad)
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

Ilustración 14

06. Genere las señales básicas (tercera forma – ESCALON UNITARIO DESPLAZADO).
Grabe el siguiente script con el nombre stepseq.m.

function [x,n] = stepseq(n0,n1,n2)


% Generates x(n) = u(n-n0); n1 <= n,n0 <= n2
% [x,n] = stepseq(n0,n1,n2)
if ((n0 < n1) | (n0 > n2) | (n1 > n2))
error('arguments must satisfy n1 <= n0 <= n2')
end
n = [n1:n2];
%x = [zeros(1,(n0-n1)), ones(1,(n2-n0+1))];
x = [(n-n0) >= 0];
stem(n, x)

function [x,n] = stepseq(1,1,3)

Ilustración 15
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

07. Se presentan dos scripts para convolucionar señales.


SCRIPT 1
a = [zeros(1, 200) 1 zeros(1, 200)]
b = [zeros(1, 175) ones(1, 51) zeros(1, 175)]
c = conv(a, b)
figure(2)
subplot(311)
stem(a)
subplot(312)
stem(b)
subplot(313)
stem(c)

Ilustración 16

SCRIPT 2
Ts = 0.01;
t = -2:Ts:2;
f = (t>-0.5) - (t>0.5);
g = [zeros(1, 200) 1 zeros(1, 200)]
cnv = conv(g,f);

subplot(3,1,1),plot(t,f), ylim([0 1.5]),title('f(t)'),grid on


subplot(3,1,2),plot(t,g,'r'), ylim([0 1.5]),title('g(t)'),grid on

t_conv = [-4:Ts:4];
subplot(3,1,3);
plot(t_conv, cnv,'g'), ylim([0 1.5]),title('conv(f(t),g(t))');
grid on
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

Ilustración 17

a) Indique las diferencias y parecidos entre ambas formas


Diferencias:
Como se puede visualizar en el ploteo del Script 2 , la convolucion de una función
cuadrado continuo f(t) con una función impulso nos da como resultado una función
cuadrada igual a la función f(t)

b) Dados el dominio de las dos señales a convolucionar, determine una expresión para el
dominio resultante. Verifique.
El domino de la señal f(t) del script 2 posee los valores desde -0.5 a 0.5 , y el dominio
de la función g(t) es solo 0 , por lo tanto el dominio resultante sería la suma de ambos
dominios (-0.5+0) a (0.5+0) es decir (-0.5 a 0.5).

c) ¿Es conmutativa la convolución?


Si es conmutativa, lo demostraremos:
y ( t ) =f ( t )∗g ( t ) =g (t )∗f (t )

Para probar , lo único que tenemos que hacer es un pequeño cambio de variable en
nuestra
integral de convolución (o suma):

y ( t ) =∫ f ( t ) g ( t−τ ) dτ
−∞

Dejando τ = t − τ, podemos mostrar fácilmente que la convolución es conmutativa:



y ( t ) =∫ f ( t−τ ) g ( τ ) dτ
−∞

y ( t ) =∫ g( τ )f (t−τ )dτ
−∞

f ( t )∗g ( t )=g ( t )∗f (t)

d) Convolucione:

X[n]
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

Ilustración 18

Y[n]

Ilustración 19

CONV(X,Y)

Ilustración 20
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

X[x]

Ilustración 21

Y[n]

Ilustración 22

CONV(X,Y)
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

Ilustración 23

e) La respuesta al impulso de un sistema discreto lineal e invariante en el tiempo


es h[n]. ¿Qué respuesta tendrá este sistema si se le aplica la señal x[n] definida a
continuación?

Y(n)

Ilustración 24
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

CORRELACION
08. Analizar el siguiente código y comente los resultados.
load sensorData

t1 = (0:length(s1)-1)/Fs;
t2 = (0:length(s2)-1)/Fs;

subplot(3,1,1)
plot(s1)
title('s_1')

subplot(3,1,2)
plot(s2)
title('s_2')
xlabel('Time (s)')

subplot(3,1,3)
[acor,lag] = xcorr(s2,s1);
plot(lag, acor)

ANALIZANDO EL CÓDIGO:
load sensorData %Esta función es necesaria solo cuando transfiere
%manualmente un archivo de registro del sensor desde
%un dispositivo móvil a su computadora con un cable USB.

t1 = (0:length(s1)-1)/Fs; %s1 es la esctructura creada a partir


% del arhivo sensorData
t2 = (0:length(s2)-1)/Fs; %s2 es la esctructura creada a partir
% del arhivo sensorData

subplot(3,1,1)
plot(s1) %ploteamos la estructura s1
title('s_1')

subplot(3,1,2)
plot(s2) %ploteamos la figura s2
title('s_2')
xlabel('Time (s)')

subplot(3,1,3)
[acor,lag] = xcorr(s2,s1);%devuelve la correlación cruzada de
% dos secuencias (s2,s1) de tiempo continuo.
plot(lag, acor)
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

s1
0.01

0.005

-0.005

-0.01
0 500 1000 1500 2000 2500 3000

s2
10 -3
4

-2

-4
0 500 1000 1500 2000 2500
Time (s)

10 -3
3

-1
-3000 -2000 -1000 0 1000 2000 3000

Ilustración 25

COMENTARIO DEL RESULTADO:

Podemos ver que la señal del sensor 2 llega más temprano que la del Sensor 1, por otro lado
vemos que la correlación cruzada de las dos mediciones es maxima en un retraso igual al
retraso.

Mi simulación:

Ilustración 26
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

09. Defina las señales:


Señal 1
Señal de duración “larga” (unos 10s o más) en la cual exista una sección o pulso con forma
triangular de duración breve (alrededor de 1s).
t=-5:0.01:5;
x=tripuls(t,1);
plot(t,x), grid

Ilustración 27

Señal 2
Señal de ruido (pruebe las instrucciones awgn y rand).

Sintaxis de AWGN:

out = awgn(in,snr) :

Añade ruido gaussiano blanco a la señal vectorial in. Esta sintaxis asume que la potencia de
ines de 0 dBW.

Señal 3
Señal pulso triangular

a) La señal 2 debe sumarse a la señal 1 y afectarla de tal forma que el pulso triangular sea
alterado u ocultado. Probar con distintas amplitudes de ruido.
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES EXPERIENCIA 4

t=-5:0.01:5;
x=tripuls(t,1);
subplot(211)
plot(t,x), grid

y = awgn(x,10);
subplot(212)
plot(t,y)

Ilustración 28

t=-5:0.01:5;
x=tripuls(t,1);
subplot(211)
plot(t,x), grid

y = awgn(x,20);
subplot(212)
plot(t,y)

Ilustración 29

b) Buscar el pulso triangular (señal 3) en la señal 1 contaminada con ruido.


Como podemos ver en la Ilustracion 29 y 29 , el pulso triangular queda contaminado
con ruido de diferente intensidad (SNR) , pero si se puede buscar o diferenciar entre el
ruido y el pulso triangular .El rudio altera la grafica del puslo puro pero si se puede
diferenciar . pero si aumentamos el SNR ya no .

c) ¿Cómo afecta el nivel de ruido al resultado de la correlación?


Cuando una señal de correlacion s(t) se cruza con ruido , adquiere una componente
ruido q(t)
Esto representa el caso de una señal con ruido la cual puede descomponerse en la
suma de un término señal s(t) y un ruido q(t).

Entonces la funcion resultante sería :

x ( t )=s ( t )+ q( t)
Para poder recuperar la señal , se tiene que aplicar la autocorrelación.

También podría gustarte