You are on page 1of 24

COLABORATIVO No1

UNAD
CEAD JOSE ACEVEDO Y GOMEZ
INGENIERIA ELECTRONICA
PROCESAMIENTO DIGITAL DE SEALES

TUTOR: FAIBER ROBAYO


Diego Cardenas Cdigo: 79.925.645
Aldemar Algarra Gaitan Cdigo: 79.810.613
Stiven Carmelo Navarro Cdigo: 79.873.592
Alexander Caldern Mndez Cdigo: 00.000.000

Grupo: 21



OCTUBRE DE 2012
INTRODUCCION

En el presente trabajo colaborativo se pretende resumir las experiencias en el
estudio de los tres primeros captulos del presente curso contando con los aportes
valiosos de los integrantes del grupo. Es por ello que con el desarrollo de cada
punto se consigue sintetizar lo aprendido en los tres primeros captulos.

























1) INVESTIGACIN


a) Realizar una recopilacin bibliogrfica que permita identificar y explicar,
aplicaciones de la correlacin en procesamiento digital de seales.

PROCESAMIENTO DIGITAL DE SEALES, Autor: Garca Lpez, Juan,
2000.Edicin electrnica: Martnez Garca Moreno, Ciro Andrs, 2007
FOTOGRAMETRA MODERNA, Analtica Y Digital, Autor:por Jos Luis Lerma
Garca. Edicin Reproval, S.L.
TRATAMIENTO DIGITAL DE SEALES, Autor: Emilio Soria Olivas, Edicion
Pearson Educacion S.A. Madrid 2003.
SISTEMAS DIGITALES Y ANALGICOS, TRANSFORMADAS DE FOURIER,
ESTIMACIN ESPECTRAL, Autor: Athanasios Papoulis Edicion Marcombo S.A.
1986
TRATAMIENTO DIGITAL DE VOZ E IMAGEN Y APLICACIN A LA
MULTIMEDIA, Autor: Marcos Fandez Zanuy, Marcombo editores
TRATAMIENTO DIGITAL DE IMGENES,Autor: Rafael C. Gonzlez, Richard E.
Woods, Addison-Wesley Iberoamericana, 1996
PROCESADO DIGITAL DE SEALES- 2, Autor: Eduard Bertrn Albert, Edicions
UPC 2006
TRATAMIENTO DIGITAL DE SEALES. Prentice Hall, Autor: J.G. Proakis and
D.G. Manolakis.1998.



b) Investigar y proponer ejemplos de aplicacin de la correlacin usando
MatLab. Es necesario adjuntar el cdigo .m generado.

Existen muchas funciones o programas que nos ayudan en el conocimiento de las
comunicaciones. En Matlab los comandos para realizar operaciones son muy
sencillos, solo hay que poner el nombre del comando con sus respectivas
entradas para que arroje un resultado. Por ejemplo, para realizar la correlacin de
dos seales solamente hay que introducir la funcin xcorr (x, y) y asignarla a una
variable. Tambin existen otras funciones como la de la convolucin,
Transformada de Fourier, Transformada de Laplace, etc.


CORRELACIN

Una herramienta til en anlisis de seales y sistemas es la Correlacin. La
Correlacin obtiene la informacin sobre las seales en base a promedios
temporales y su transformada de Fourier permite obtener funciones de densidad
espectral de energa o potencia, dependiendo de las caractersticas de las seales
y sistemas bajo estudio.

Las herramientas basadas en Correlacin de seales y su Transformada de
Fourier, son usadas en el anlisis de procesos.

La Correlacin nos da una medida de la similitud entre dos seales. Es comparar
las caractersticas de una seal conocida con las de una seal desconocida.


Autocorrelacin. Es la correlacin de una seal consigo misma. Representa la
similitud entre una seal y ella misma desplazada. El mximo de una
Autocorrelacin se obtiene cuando no hay desplazamiento (t = 0).

La Autocorrelacin se usa considerablemente en el anlisis de seales. Es
especialmente til en la deteccin o reconocimiento de seales enmascaradas por
ruido agregado. La Autocorrelacin suele emplearse para encontrar periodos. La
frmula para realizar la Autocorrelacin de una seal x (t) es:

La Correlacin cruzada implica el cambiar de puesto de una seal y multiplicarse
por otra seal. La Correlacin cruzada expresa que tanta similitud tienen dos
seales de tiempo diferentes a (t) y b (t) para diferentes desplazamientos de
tiempo.

CONVOLUCIN


La Convolucin nos ayuda a determinar la respuesta que un sistema ejerce en una
seal de entrada. Cualquier seal puede expresarse como una superposicin de
impulsos unitarios de diferentes amplitudes.

Un sistema invariante en el tiempo no cambia su comportamiento con el tiempo,
entonces la respuesta al impulso h (t) a una serie de impulsos desplazados d (t - t)
se puede expresar como h (t - t). Cuando esos impulsos desplazados los
afectamos por la amplitud de una seal f (t) podemos expresar una salida en
trminos de este impulso desplazado y la respuesta al impulso del sistema f1 (t) [h
(t) d (t- t)]= f1 (t) h (t- t) =y1 (t).

Luego, podemos expresar la salida y (t) en trminos de su respuesta al impuso y
de su entrada si integramos todos los puntos de la funcin, as quedara definida la
Integral de la Convolucin para sistemas invariantes en el tiempo.

Interpretacin grfica de la convolucin.

La interpretacin grfica de la convolucin permite visualizar los resultados de las
ms abstractas operaciones matemticas. Supngase que se quiere hallar la
convolucin de dos funciones dadas f 1(t) y f2 (t). Las operaciones que se
efectan se basan en la integral de la convolucin:

Primero se enumeran, paso a paso, las operaciones necesarias:

1. Reemplazar t por T en f1 (t), quedando f (T).

2. Reemplazar t por (- T) en f2 (t). Esto hace girar a la funcin f2 (T) alrededor
del eje vertical pasando por el origen del eje.


3. Trasladar todo el sistema de referencia de f (- T) en una cantidad t.
Entonces, la traslacin t es la diferencia entre el sistema de referencia mvil
y el fijo. El origen del sistema mvil est en T = t; el origen fijo, en T = 0. La
funcin en el sistema mvil representa f2 ( t T ); la funcin en el sistema
fijo, f1 ( T ).
4. En cualquier desplazamiento relativo entre los ejes de referencia, por
ejemplo, t0, debe hallarse el rea bajo el producto de las dos funciones.

5. Este procedimiento debe repetirse para diferentes valores t = t0
desplazando Progresivamente el sistema mvil y hallando los valores de la
integral de convolucin en esos valores de t. Para funciones continuas esto
puede hacerse por integracin directa. Para funciones continuas por tanto,
el producto ser continuo por tramos y deber integrarse sobre cada
seccin continua.

6. 6. Si el desplazamiento del sistema mvil es a lo largo del eje negativo (a la
izquierda), t es negativo. Si es sobre el eje positivo (a la derecha), t es
positivo.

CONVOLUCIN Y CORRELACIN DE SEALES


Es un programa que grafica dos seales y la Convolucin o Correlacin de stas.



Inicializacin (Convolucin y Correlacin).
En el programa se desarrollaron varias opciones para elegir el tipo, la operacin y
las seales a las que se grafica la Convolucin o Correlacin.


Con ciclos if se selecciona el tipo de seal a elegir y la operacin a realizar:

Si seal == seal CT
Mostrar en men desplegable seales continuas en el tiempo
Si no
Mostrar en men desplegable seales discretas en el tiempo
Fin

Si operacin == Convolucin
Grfica == conv (x (t), h (t))
Si no
Grfica == xcorr (x (t), h (t))
Fin
Las opciones de seales que muestran los mens desplegables son:
x(t) para seales continuas:

x=t 0 < t < 3
x=1 0 < t < 3
x=sen (t) -3 < t < 3
x=1 -1 < t < 1
h(t) para seales continuas:
h=1 -1 < t < 1
h=1 0 < t < 3
h=-t 0 < t < 3
h=sen (t) -3 < t < 3

x(t) para seales continuas:


h(t) para seales discretas:


Funcin conv (x,h)

Hace la convolucin de los vectores x y h. El vector resultante tiene un tamao
igual a la longitud de x + la longitud de h-1.

Funcin xcorr (x,h)

Hace la correlacin de los vectores de M elementos x y h. Devuelve un vector de
2M- 1 elementos.



Elementos del programa (Convolucin y Correlacin).
1. Tipo de seal. Es donde se elige el tipo de seal. Seal CT: seal contina
en el tiempo. Seal DT: seal discreta en el tiempo.

2. Operacin. Es donde se elige el tipo de operacin: Convolucin o
Correlacin.

3. Seal x (t) o x(n). Es donde se elige la seal x(t) si la seal es continua, o
x(n) si la seal es discreta.

4. Seal h (t) o h(n). Es donde se elige la seal h(t) si la seal es continua, o
h(n) si la seal es discreta.

5. Graficar Convolucin o Correlacin. Es el botn que grafica la Convolucin
o Correlacin segn los parmetros especificados.

6. Grfica de seal x. Es donde se grafica la seal x (t) o x(n).

7. Grfica de seal h. Es donde se grafica la seal h (t) o h(n).

8. Grfica de seal y(t). Es donde se grafica la seal resultante.

Ejemplo (Convolucin y Correlacin).




Convolucin y Correlacin de seales


function popupmenu1_Callback(hObject, eventdata, handles)
grafica=get(hObject,'Value');
t=handles.t;
% graficas
if grafica==1
handles.x=(t<0&t>3).*0+(t>=0&t<=3).*t;
elseif grafica==2
handles.x=ustep(t);
elseif grafica==3
handles.x=(t<-1&t>1).*0+(t>=-1&t<=1).*1;
elseif grafica==4
handles.x=sin(t);
end
% graficar x(t)
axes(handles.axes1)
plot(t,handles.x,'LineWidth',2)
xlabel('t')
ylabel('x(t)')
grid on
guidata(hObject,handles)
function popupmenu2_Callback(hObject, eventdata, handles)
grafica2=get(hObject,'Value');
t=handles.t;
% graficas
if grafica2==1
handles.h=(t<-1&t>1).*0+(t>=-1&t<=1).*1;
elseif grafica2==2
handles.h=ustep(t);
elseif grafica2==3
handles.h=(t<0&t>3).*0+(t>=0&t<=3).*-t;
elseif grafica2==4
handles.h=sin(t);
end
% graficar h(t)
axes(handles.axes2)
plot(t,handles.h,'LineWidth',2)
xlabel('t')
ylabel('h(t)')
grid on
guidata(hObject,handles)
function popupmenu3_Callback(hObject, eventdata, handles)
grafica3=get(hObject,'Value');
%graficas
if grafica3==1
handles.x=[1 1 1 1 1];
handles.tiempox=0:1:4;
elseif grafica3==2
handles.x=[2 1 1 1];
handles.tiempox=0:1:3;
elseif grafica3==3
handles.x=[1 2];
handles.tiempox=0:1:1;
elseif grafica3==4
handles.x=[1 1 1];
handles.tiempox=-1:1:1;
elseif grafica3==5
handles.x=2;
handles.tiempox=0;
end
% graficar x(t)
axes(handles.axes1)
stem(handles.tiempox,handles.x,'LineWidth',2)
xlabel('n')
ylabel('x(n)')
grid on
guidata(hObject,handles)
function popupmenu4_Callback(hObject, eventdata, handles)
grafica4=get(hObject,'Value');
% graficas
if grafica4==1
handles.h=[2 1 1 1];
handles.tiempoh=0:1:3;
elseif grafica4==2
handles.h=[1 1 1 1 1];
handles.tiempoh=0:1:4;
elseif grafica4==3
handles.h=[1 2 3];
handles.tiempoh=1:1:3;
elseif grafica4==4
handles.h=[1 1 1];
handles.tiempoh=-1:1:1;
elseif grafica4==5
handles.h=2;
handles.tiempoh=0;
end
% graficar h(t)
axes(handles.axes2)
stem(handles.tiempoh,handles.h,'LineWidth',2)
xlabel('n')
ylabel('h(n)')
grid on
guidata(hObject,handles)
function graficar_Callback(hObject, eventdata, handles)
x=handles.x;
h=handles.h;
op=get(handles.convolucion,'Value');
tipo_s=get(handles.ct,'Value');
if op==1
y = conv(x,h);
else
y = xcorr(x,h);
end
if tipo_s==1
lx=length(x)-1;
lh=length(h)-1;
n=-lh:lx;
axes(handles.axes3)
plot(n./1000,y./1000,'LineWidth',2) % graficar seal CT
xlabel('t')
ylabel('y(t)')
else
axes(handles.axes3)
stem(y,'LineWidth',2) % graficar seal DT
xlabel('n')
ylabel('y(n)')
end
grid on



Aplicacin 1
La primera aplicacin de la autocorrelacin de una seal es determinar las
posibles repeticiones de patrones en la seal. Para comprobar este punto se va a
generar una sinusoide de frecuencia igual a 100 Hz con amplitud uno y
muestreada a 1 kHZ (consideremos una secuencia de 100 puntos). Determine la
autocorrelacin de esta seal normalizada a uno y represntela junto a la
secuencia, Qu conclusiones pueden sacar?
El programa en Matlab que implementa lo que nos piden es:
%Generacin de la seal
n = 0:99;
x = cos(2*pi*n*0.1);
%Clculo de la autocorrelacin normalizada
y = xcorr(x,'coeff');
%Representacin de las dos seales
subplot(221), stem(x,'k'), title('(a)')
subplot(222), plot(x,'k'), title('(b)')
subplot(223), stem(y,'k'),title('(c)')
subplot(224), plot(y,'k'), title('(d)')

La grfica obtenida al emplear este cdigo se muestra en la figura siguiente.
Podemos apreciar que la autocorrelacin tiene una longitud doble a la seal
temporal. Este hecho se debe a que los desplazamientos, a la hora de calcular la
autocorrelacin, pueden ser positivos o negativos. El ndice central se corresponde
con un desplazamiento cero y, se corresponde, lgicamente, con el valor mximo
de dicha correlacin.


Aplicacin 2
Una segunda aplicacin relacionada con la anterior es la determinacin del
desfase entre dos seales. Se pide generar dos sinusoides de frecuencia 50 Hz
(Fm = 1 kHz), amplitud uno y desfasados 90
o
y determinar la correlacin cruzada
de ellas. Cmo se podra determinar el desfase entre estas seales? Realice una
grfica donde aparezcan las matrices de autocorrelacin y correlacin cruzada
Qu conclusiones se pueden sacar?
Para entender este apartado de forma sencilla consideremos las sinusoides dadas
por
x(n) = cos(2fn +
1
), y(n) = cos(2fn +
2
)
Donde se puede definir =
1
-
2
como el desfase entre las dos seales. Se
puede calcular el desfase comprobando cundo las dos seales vuelven a estar
en fase. Para n = 0 se tiene:
x(0) = cos(
1
), y(0) = cos(
2
).
Si ahora se desplaza una de las seales, por ejemplo x(n), hasta que las dos
estn en fase de nuevo, se tiene que
x(N) = cos(2fN +
1
) = y(0) = cos(
2
).
De la igualdad anterior se desprende que: 2fN +
1
=
2
, de modo que el desfase
Vendr dado por: =
1
-
2
= 2fN, siendo f la frecuencia digital de la seal.
Podemos emplear la correlacin cruzada para determinar cundo las seales
estarn en fase, lo cual ocurrir en los mximos de dicha correlacin. Como en los
clculos realizados se ha considerado como punto inicial n = 0, se deben
determinar los mximos a partir del punto central de la correlacin cruzada que,
recordemos, es el punto de la correlacin correspondiente a un desplazamiento
cero. El programa de Matlab que implementa esto es el siguiente:
%Generacin de las seales
n = 0:99;
x = cos(2*pi*n*(50/1000));
y = cos(2*pi*n*(50/1000)+ pi/2);
%Determinacin de la correlacin cruzada
[z lag1] = xcorr(x,'coeff'); % autocorrelacin
[zz lag2] = xcorr(x,y,'coeff'); %correlacion cruzada
%Representacin de las seales
plot(lag1,z,'Color','g')
hold on
grid on
plot(lag2, zz,'Color','k')




2) Analizar y desarrollar los siguientes ejercicios.


a) Determine la respuesta al impulso de los siguientes sistemas
5y[n] =x [n] - x [n-1]
y|n] =
x
S
|n]
x
S
|n 1]
|n] =
1
5
o|n]
1
5
o|n 1]
|2] =
1
5
o|2]
1
5
o|2 1] % se empieza a dar valores de n desde -2,
|2] =
1
5
o|2]
1
5
o|2 1] = u u = u % recuerde que la teora dice
que: o|n] = 1 poro n = u
o|n] = u poro n u
Por eso es que o|2] = u y o|2 1] = o|S] = u
Seguimos ahora con n=-1
|1] =
1
S
o|1]
1
S
o|1 1] = u u = u
Ahora con n=0
|u] =
1
5
o|u]
1
5
o|u 1] =
1
5
u =
1
5
aqu la respuesta es
1
5
porque o|u] = 1 y al
multiplicarlo por
1
5
nos da esa respuesta.
|1] =
1
S
o|1]
1
S
o|1 1] = u
1
S
=
1
S

|2] =
1
S
o|2]
1
S
o|2 1] = u u = u
Al graficar este resultado, obtenemos la grfica:

y[n] + 3 y[n-1] + y[n-2] + 4y[n-3] =x[n]
3y[n] - y[n-1] +12y[n-2] =x [n]
8y[n] + y[n-1] - 7y[n-2] = x [n]

b) Dadas las siguientes seales
y[n] = [-2 0 2 3 0 -1]
x[n] = [4 0 -3 1 -2 -3]
z[n]= [2 -1 -1 0 -2 1]
Encuentre:
ryy
rxz
ryz
rzz

ryy: y[n] = [-2 0 2 3 0 -1]

ryy(u) = {+ (2 2) + (u u) +(2 2) +(S S) +(u u) + (1 1)+. . ]

:o = {. . ,4,u,4,9,u,1, . . ]

ryy(u) = 18
ryy(1) =6
ryy(2) = 7
ryy(S) = 8
ryy(1) =6
ryy(2) = 7
ryy(S) = 8
ryy(l) = {..,-8,-7,6,18,6,-7,-8,..}
rxz: x[n] = [4 0 -3 1 -2 -3]
z[n]= [2 -1 -1 0 -2 1]

rxz(u) = {. . +(4 2) +(u 1) +(S 1) + (1 u) + (2 2) + (S 1)+. . ]

:o = {. . , 6,u, S,u,4, S, . . ]
rxz(u) = 4
rxz(1) =6
rxz(2) = S
rxz(S) = 7
rxz(1) = 8
rxz(2) = S
rxz(S) = S
rxz(l) = {..,-3,3,-8,4,6,5,7,..}

ryz: y[n] = [-2 0 2 3 0 -1]
z[n]= [2 -1 -1 0 -2 1]

ryz(u) = {. . +(2 2) +(u 1) +(2 1) +(S u) + (u 2) + (1 1)+. . ]

:o = {. . , 4,u, 2,u,u, 1, . . ]
ryz(u) = 7
ryz(1) =3
ryz(2) = 1
ryz(S) = 7
ryz(1) = 4
ryz(2) = 1
rxz(S) = 2
ryz(l) = {..,2,1,-4,-7,3,1,7,..}

rzz: z[n]= [2 -1 -1 0 -2 1]
z[n]= [2 -1 -1 0 -2 1]

rzz(u) = {. . +(2 2) +(1 1) +(1 1) + (u u) + (2 2) +(1 1)+. . ]

:o = {. . , 4,1,1,u,4,1, . . ]
rzz(u) = 11
rzz(1) =-3
rzz(2) = u
rzz(S) = 1
rzz(1) = S
rzz(2) = u
rzz(S) = 1
rzz(l) = {..,1,0,-3,11,-3,0,1,..}



CONCLUSIONES

Podemos decir que como gran concusin se utiliz los mtodos estudiados para la
elaboracin de los diferentes ejercicions, tanto de ejemplo como los propuestos a
si como la aplicacin correcta en Matlab, se logr un entendimiento ms adecuado
del uso de las herramientas que como Matlab nos permite lograra un mejor
entendimiento gracias a su versatilidad y gran variedad de aplicaciones.





































REFERENCIAS


Mdulo UNAD.
http://www.goddardconsulting.ca/matlab-monte-carlo-assetpaths-corr.html
http://www.geofys.uu.se/cj/geofysdatabeh/notes/report_with_matlab.pdf

You might also like