Vous êtes sur la page 1sur 7

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

(Universidad del Per, DECANA DE AMERICA)


FACULTAD DE INGENIERIA ELECTRONICA Y ELECTRICA
E.A.P. INGENIERIA DE TELECOMUNICACIONES
LABORATORIO DE PROCESAMIENTO DIGITAL

LABORATORIO NO. 2: SISTEMAS LINEALES E INVARIANTES EN EL


TIEMPO

2.1 OBJETIVO

Al finalizar este Laboratorio el estudiante ser capaz de comprender y manejar la operacin de


Convolucin en sistemas continuos como discretos, lineales e invariantes en el tiempo.

2.2 EQUIPOS Y MATERIALES REQUERIDOS

El equipo de experimentacin necesario para realizar el presente laboratorio es:


1. PC Pentium III o superior.
2. Sistema Operativo Windows 2000 o XP.

2.3 SOFTWARE REQUERIDO


El siguiente software es necesario para realizar este laboratorio:
1. Scilab 4.1. (http://www.scilab.org) o Matlab V. 6.0.
2. Libreras y archivos de soporte.

2.4 INTRODUCCIN A SISTEMAS LINEALES E INVARIANTES EN EL TIEMPO

Un sistema usualmente es descrito mediante una ecuacin diferencial que relacione la


entrada y la salida. Si el sistema es Lineal e Invariante en el Tiempo (LIT), puede tambin ser
descrito mediante su respuesta impulsional que es la respuesta del sistema a una seal de
entrada impulsional:

h t y t x t
t

La respuesta de un sistema LIT puede ser calculado utilizando la integral de


convolucin, convoluyendo la entrada x(t) con la respuesta impulsional h(t) para generar la
respuesta o salida y(t):

y(t) = x(t)*h(t)

x h t d

En Matlab, una forma de calcular la integral anterior es utilizando la funcin


conv(x,h). Deber notarse que si la seal de entrada x(t) 0, t1 < t < t2 y la respuesta
impulsional h(t) 0, t3 < t < t4 la salida ser y(t) 0, t1+t2 < t < t2+t4. Por ejemplo:

t
x t rect
2

1
t
h t rect
2
t
y t
2

En Matlab:

t=-1.2:0.0001:1.2;
x=zeros(size(t));
h=zeros(size(t));
x(t>=-1 & t<=1)=1;
subplot(3,1,1),plot(t,x,'r');ylabel('x(t)')
h(t>=-1 & t<=1)=1;
subplot(3,1,2),plot(t,h);ylabel('h(t)')
y=conv(x,h);
tt=t(1)+t(1):0.0001:t(end)+t(end);
subplot(3,1,3),plot(tt,y*0.0001,'g');ylabel('y(t)')

Ejercicio 2.1

Considere el sistema LTI mostrado en la Fig.3.1.

t
x t rect h(t)=rect (t) y(t)
2

Fig. 2.1 Sistema LTI del Ejercicio 3.1

(a) Genere las seales x(t) y h(t) para -5 < t< 5. Desarrolle los cdigos en Matlab y muestre
la grfica de las seales obtenidas.
(b) Calcule la salida y(t), utilizando la definicin de convolucin en forma manual. Luego
utilizando la funcin conv(x,h), desarrolle los cdigos en Matlab y muestre la grfica de
la salida y(t). Compare el resultado obtenido con el calculado manualmente.

2.4 CONVOLUCIN DISCRETA

Los Sistemas Discretos se pueden caracterizar como una transformacin, T{x[n]}, que
modifica la secuencia de entrada x[n] para convertirla en una secuencia de salida y[n]. Por lo
tanto teniendo en cuenta que cualquier secuencia puede expresarse como una combinacin
lineal de impulsos desplazados, la salida de un Sistema Discreto puede escribirse como:


y n T x n T x k n k (2.1)
k

Observando esta expresin, y restringiendo el estudio a los Sistemas Lineales


Invariantes en el Tiempo (SDLIT) puede llegarse a conocer la respuesta del sistema ante
cualquier seal de entrada mediante la aplicacin conjunta del principio de superposicin o
propiedad de linealidad y la propiedad de invarianza temporal.

Aplicando el principio de superposicin se puede obtener la siguiente expresin:



y n x k T n k x k h n k
k (2.2)
k k
donde hk[n] es la respuesta del sistema al impulso desplazado [nk]. Adems, si se considera
la invarianza temporal:

2

y n x k T n k x k h n k x n * h n (2.3)
k k

donde h[n] es la respuesta impulsiva del sistema (salida del sistema cuando en la entrada se
aplica la secuencia [n]). Al operador * se le denomina convolucin. De 3.3 se puede
concluir que para conocer la respuesta de un sistema SDLIT ante cualquier entrada se requiere
conocer solamente su respuesta impulsional.

La convolucin es una herramienta matemtica empleada en el Procesamiento Digital


de Seal. Aunque se ha definido como un operador que permite determinar la respuesta de un
Sistema SDLIT, tambin se puede operar sobre dos seales arbitrarias.

Ejercicio No. 2.2

La convolucin de dos secuencias de longitud finita siempre proporciona una secuencia con un
nmero finito de muestras. En este ejercicio se usarn las siguientes secuencias:

x[n] = u[n] u[n 40]


v[n] = u[n + 25] u[n 32]
w[n] = u[n + 41] u[n + 15]

(a) Calcular las muestras para las que estn definidas las siguientes secuencias

y1[n] = x[n] * v[n]


y2[n] = v[n] * w[n]
y3[n] = x[n] * w[n]

(b) Obtener una regla con la que se pueda calcular la muestra inicial y final de la convolucin
de dos secuencias finitas.

Una interpretacin de la ecuacin 3.3 es suponer que la seal de salida de un sistema es


la suma de las secuencias que se obtienen al introducir individualmente las muestras que
componen la secuencia de entrada. De esta manera, la muestra de la seal de entrada
correspondiente al instante n = k es x[k][n k] y su salida asociada es x[k]h[n k].

Para comprender esta interpretacin se puede observar el ejemplo de la Fig. 2.2, donde
consideramos un sistema SDLIT con respuesta impulsional y en la Fig. 3.3 se muestra en forma
grafica dicha interpretacin.

h[n] = u[n] u[n 8] y


x[1] = 1,
x[0] = 2,
x[1] = 0.5,
x[2] = 0.5

La evaluacin de la secuencia de salida para este ejemplo, vendr dada por:

y[n] = x[1]h[n+1] + x[0]h[n] + x[1]h[n 1] + x[2]h[n 2] (2.4)

[n] h[n]
SDLIT

Fig. 2.2 Respuesta Impulsional de un Sistema SDLIT

3
x[k][n-k] x[k]h[n-k]
SDLIT

= SDLIT =
x[n] y[n]

Fig. 2.3 Interpretacin grfica de la Convolucin

Ejercicio 2.3

Ejecute el siguiente cdigo y verifique que este es una posible realizacin de la convolucin en
Matlab :

nx = -1:2;
lx = length(nx);
x = [1 2 -0.5 0.5];
nh = 0:7;
lh = length(nh);
h = ones(lh,1);
ly = length(x) + length(h) -1;
ny = nx(1)+nh(1) : nx(lx) +nh(lh);
y = x(1)*[h; zeros(ly-lh,1)] + x(2)*[0; h; zeros(ly-lh-
1,1)]+ x(3)*[0;0;h;zeros(ly-lh-2,1)] + x(4)*[zeros(ly-
lh,1); h];
stem(ny, y)

4
Explicacin del cdigo propuesto:

1. En las tres primeras lneas de comandos definimos un vector x con los valores de la
secuencia de entrada, la longitud de dicho vector y los ndices temporales en los que est
definido. El valor del vector x[1] se corresponde con la muestra x[1] de la secuencia
discreta.
2. En las tres lneas siguientes, definimos el vector h, su longitud y los ndices temporales
en los que est definido.
3. Calculamos la longitud del vector de salida as como sus ndices temporales.
4. Calculamos la convolucin como la suma del producto de cada muestra del vector x por el
vector h adecuadamente desplazado. Ntese que estos desplazamientos se efectan
mediante concatenaciones de ceros al vector h.
5. Finalmente dibujamos el resultado.

Ejercicio 2.4

En este ejercicio vamos a trabajar con la operacin de convolucin entre secuencias partiendo
del primer mtodo de aadir todas las contribuciones existentes tal como se acaba de explicar.

(a) Vamos a considerar un sistema SDLIT con respuesta impulsional:

h[n] = 0.95n(u[n] u[n 10]) (2.5)

la que se debe excitar con la secuencia de entrada x1[n] que deber elaborar en un fichero
x1.mat y luego cargarlo. Considerar que el primer elemento de este vector se
corresponda con el valor de la secuencia de entrada en el instante n = 0. Evalu con
Matlab, la secuencia que corresponde a la salida y1[n]. Represente dicha secuencia
prestando especial atencin al etiquetado del eje horizontal.

(b) Obtenga la secuencia de salida que genera el mismo sistema SDLIT anterior con la
secuencia de entrada del archivo x1.mat pero en este caso considerando que el primer
elemento de x1 se corresponda con el valor de la secuencia en n = 2. Represente esta
nueva secuencia de salida y2[n].

(c) Para el mismo sistema SDLIT, considere ahora la secuencia de entrada almacenada en el
fichero x1.mat, sabiendo que el primer elemento se corresponde con el valor de la
secuencia x3[n] en el instante n = +3. Obtenga y represente la correspondiente secuencia de
salida y3[n].

(d) Comprobar los resultados anteriores utilizando la funcin conv de Matlab.

Atendiendo a la interpretacin anterior, la salida de un sistema SDLIT se determina


mediante la suma de las respuestas individuales de cada impulso desplazado que compone la
seal de entrada. Sin embargo, esta aproximacin trae una dificultad de tipo computacional para
calcular slo una muestra de la seal de salida, habr que determinar y sumar todas esas
respuestas individuales.

Ejercicio 2.5

Mediante la convolucin grfica de dos secuencias se puede calcular el valor de la seal de


salida en una muestra especfica. Considerar las secuencias:

x[n] = (3/4)nu[n]
v[n] = (3/4)|n|
w[n] = (n + 12) (u[n + 12] u[n 30])

Calcular, sin la ayuda del ordenador, los valores que se solicitan:

5
1. Si y[n] = x[n]*w[n], calcular y[12].
2. Si y[n] = x[n]*v[n], calcular y[0], y[2].

Compruebe ahora los resultados con el computador (emplee para ello distintos truncamientos
de v[n] y observe cuando hay diferencias apreciables en los resultados).

2.5 CONVOLUCIN DE SECUENCIAS COMPLEJAS

Las seales con las que se operan en los sistemas fsicamente realizables son reales. Sin
embargo, para modelar algunos sistemas, las seales complejas resultan ser muy tiles. Por
ejemplo, en aplicaciones de electrnica de potencia es muy habitual trabajar con fasores. De
igual forma, en sistemas de comunicaciones, las seales pasabanda suelen caracterizarse como
seales complejas.

Por esta razn se proponen los siguientes ejercicios.

Ejercicio 2.6

Obtenga la parte real e imaginaria de la secuencia resultante de la convolucin de dos


secuencias complejas x[n] = xr[n] + j xi[n] e y[n] = yr[n] + j yi[n].

Ejercicio 2.7

Utilizando el editor de Matlab, programe una funcin conv_comp.m cuya cabecera sea:

function [sal_re, sal_im] = conv_comp(ent1,ent2)

% ent1: vector complejo a convolucionar


% ent2: vector complejo a convolucionar
% sal re: parte real de la convolucin entre ent1 y ent2
% sal im: parte imaginaria de la convolucin entre ent1 y ent2

Cargue el archivo complejodat.mat que debe contener los vectores complejos x e y que
usted debe elaborar previamente. Calcule la convolucin de ambos vectores utilizando la
funcin que acaba de programar. Verifique el resultado utilizando la funcin conv().

2.6 CORRELACIN CRUZADA

En esta seccin vamos a analizar la operacin de correlacin entre seales, que es de


gran inters de cara a las aplicaciones. Se define la correlacin cruzada entre dos seales, en
general complejas, de la siguiente manera:

rxy k x k y k n
*
(2.6)
n

La correlacin en el instante k mide la energa cruzada entre ambas seales, con un


desplazamiento de longitud k en una de ellas. La correlacin da una idea del parecido entre las
seales: a mayor correlacin, mayor parecido. Adems, la correlacin admite una interpretacin
en forma de convolucin.

Ejercicio 2.8

Pruebe primeramente que:

rxy[k] = x[k] * y* [k] (2.7)


6
Programe una funcin de correlacin cruzada en Matlab con la siguiente cabecera:

[y,ky]=corrcruzada(x,kx,h,kh)

donde ky, kx y kh son los vectores de ndices temporales de las 3 secuencias involucradas.

Ahora compruebe, tericamente y con Matlab, la siguiente relacin de simetra de la


correlacin:

rxy[k] = r*xy[-k] (2.8)

2.7 EJERCICIOS RECOMENDADOS

Para fortalecer los conceptos asimilados durante este laboratorio, se le recomienda realizar los
siguientes ejercicios:

Tratamiento Digital de Seales. John G. Proakis; Dimitris G. Manolakis. Prentice Hall, 3era
Edicin, 2000. Captulo 2: 2.16, 2.17, 2.19, 2.21, 2.22, 2.23, 2.25, 2.26, 2.27, 2.28, 2.29, 2.30,
2.45, 2.58, 2.592.60,

Tratamiento de Seales en Tiempo Discreto. Alan. V. Oppenheim y Ronald. W. Schafer.


Prentice Hall, 2da. Edicin, 2000. Captulo 2: 2.4, 2.5, 2.6, 2.8, 2.9, 2.12, 2.15, 2.16, 2.18

Vous aimerez peut-être aussi