PDS-Lab 03 SDLIT 20 I

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 16

14

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS


(Universidad del Perú, DECANA DE AMERICA)
FACULTAD DE INGENIERIA ELECTRONICA Y ELECTRICA
E. P. INGENIERIA DE ELECTRONICA
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES

LABORATORIO N° 3: SISTEMAS DISCRETOS LINEALES E INVARIANTES EN EL


TIEMPO - SDLIT

3.1 OBJETIVO
Al finalizar este Laboratorio, el estudiante será capaz de comprender y manejar la operación de
Convolución en sistemas discretos, que cumplen con la propiedad de linealidad e invarianza en
el tiempo.
3.2 EQUIPOS Y MATERIALES REQUERIDOS
El equipo de experimentación necesario para realizar el presente laboratorio es:
1. PC INTEL CORE i5 o superior.
2. Sistema Operativo Windows 10.
3.3 SOFTWARE REQUERIDO
El siguiente software es necesario para realizar este laboratorio:
1. Octave V5.2, https://www.gnu.org/software/octave/
2. Librerías y archivos de soporte.

3.4 SISTEMAS DISCRETOS

Un sistema de tiempo discreto transforma una señal de entrada en el dominio del tiempo para
generar una señal de salida con las propiedades más deseables mediante la aplicación de un
algoritmo compuesto de operaciones sencillas aplicada a la señal de entrada y a sus versiones
retardadas.
En el Ejercicio 3.1 se ilustra la aplicación de un sistema de tiempo discreto descrito por la ecuación
3.1 para el suavizado de los datos alterados por la adición de ruido aleatorio. Luego se considerará
la experimentación de otros sistemas discretos y estudiar sus propiedades.
Ejercicio 3.1
En la ecuación 3.1 se presenta la función de que este filtro suavizado de cinco puntos considerado
como y[n] depende de las muestras de entrada actual x[n] y pasadas de la forma x[n - k], el sistema
es causal y para este ejemplo queda descrito por la ecuación:
y[n] = 1/5{x[n] + x[n - 1] + x[n - 2] + x[n - 3] + x[n - 4]} (3.1)
Generalizando la ecuación anterior se obtiene:
M 1
1
y  n   x n  k  (3.2)
M k 0

que define un filtro para el suavizado de M puntos. El sistema de la ecuación (3.2) también se le
conoce como filtro promedio móvil. Se ilustra en este ejercicio el uso en el filtrado del ruido
presente en una señal senoidal discreta, cuyo resultado se muestra en la Fig. 3.1.

FLAVIO N. CARRILLO GOMERO - 2020


15

clear,clc,
# Laboratorio N°3 - Ejercicio N°3.1: Filtro Promedio
# Móvil de M puntos.
# ----------------------------------------------------
# Generación de la señal discreta de entrada
fm = 8000; # Frecuencia de muestreo en Hz.
Tm = 1/fm; # Periodo de muestreo en segundos
f = 100; # frecuencia de la sinusoide en Hz.
n = 0:Tm:0.10-Tm;
N = length(n); # Longitud de los datos del proceso
s = cos(2*pi*f*n); # Sinusoide de baja frecuencia
r = 0.5*(0.5-rand(1,N));# Secuencia de ruido
x = s+r;
# Implementación del Filtro Promedio Móvil
M = 8; # Longitud de datos deseado
num = ones(1,M);
y = filter(num,1,xn)/M; # Cálculo del Promedio Móvil
# utilizando la función filter
# Presentación de la señal discreta de la entrada y salida
subplot(2,2,1);
plot(n,s,'.r');grid;
axis([0, 0.10, -1.5, 1.5]);
xlabel('Tiempo n (Seg)'); ylabel('Amplitud');
title('Señal discreta N° 1');

subplot(2,2,2);
plot(n,r,'b');grid;
axis([0, 0.10, -1.5, 1.5]);
xlabel('Tiempo n (Seg)'); ylabel('Amplitud');
title('Señal discreta ruido N° 2');

subplot(2,2,3);
plot(n,x,'.r'); grid;
axis([0, 0.10, -1.5, 1.5]);
xlabel('Tiempo n (Seg)'); ylabel('Amplitud');
title('Señal discreta de entrada');

subplot(2,2,4);
plot(n,y,'.r'); grid;
axis([0, 0.10, -1.5, 1.5]);
xlabel('Tiempo n (Seg)'); ylabel('Amplitud');
title('Señal discreta de salida');
axis;

Preguntas:
3.1 Ejecutar el código anterior para M = 3 para generar la señal de salida con x[n] = s[n]
+ r[n] como entrada. ¿Qué método de procesamiento se aplicaría para comparar el nivel
del ruido de la entrada x[n] suprimida por el sistema discreto por medio de este código en
comparación con los resultados para M = 8?
3.2 Si al sistema discreto y[n] = 0.5(x[n] + x[n-1]) se cambia a y[n] = 0.5(x[n] - x[n-1]),
¿Cuál será su efecto sobre la entrada x[n] = s[n] + rn[n]?
3.3 Modifica el código del programa del Ejercicio N° 3.1, y verifica el efecto del filtro sobre la
suma de las señales discretas x1[n] = cos(2*π*0.05*n) y x2[n] = cos(2*π*0.47*n), es decir sobre
x[n] = x1[n] + x2[n] para M = 3. ¿Qué componente de la señal discreta x[n] es suprimida?

FLAVIO N. CARRILLO GOMERO - 2020


16

Fig. 3.1 Resultado del filtro promedio móvil para M = 8

3.5 PROPIEDADES DE LOS SISTEMAS DISCRETOS

Propiedad de linealidad

Un sistema discreto en el tiempo es lineal si cumple con las siguientes condiciones:


(a) La salida de la señal discreta es proporcional a la entrada (Homogeneidad).
(b) Si entrada es la suma de varias señales discretas, la salida también será la suma de las
salidas correspondientes de cada señal entrada discreta (Adición).

Por lo tanto, si la salida de un sistema continuo es y[n] y su entrada x[n], entonces la relación entre
ambas puede expresarse como:

y[n] = T [x[n]] (3.3)

donde el operador T [ ] denota la transformación hecha a la señal discreta por el sistema. De esta
manera, para las entradas x1[n] y x2[n], el sistema producirá dos salidas:
y1[n] = T [x1[n]] (3.4)
y2[n] = T [x2[n]] (3.5)
El sistema será lineal, si para dos valores escalares α1 y α2 cualesquiera, se cumple que:
T[α1x1[n] + α2x2[n]] = T{α1x1[n]} + T{α2x2[n]} (3.6)
Esta propiedad de linealidad expresado en forma general es como sigue:
 n  n
T  i xi  n   T  i xi  n 
 i 1  i 1
para n entradas diferentes con yi[n] = T [αi xi[n]]
Como ejemplo vamos a determinar si el siguiente sistema discreto es lineal:
y[n] = nx[n] (3.7)
Sean x1[n] y x2[n] entradas arbitrarias y α1, α2 constantes. Entonces y1[n]=α1nx1[n] e y2[n]=α2nx2[n].
Sea x3[n] = α1x1[n] + α2x2[n] una combinación lineal cualquiera de las entradas anteriores. Por lo
tanto, y3[n] = nx3[n] = n{α1x1[n] + α2x2[n]} = α1nx1[n] + α2nx2[n].

FLAVIO N. CARRILLO GOMERO - 2020


17

En consecuencia, se verifica que y3[n] = y1[n] + y2[n].


Por lo tanto, se concluye que el sistema discreto es lineal.

Ejercicio 3.2

Sea el sistema discreto expresado por la ecuación (3.2). A continuación, se demuestra que este
sistema discreto es lineal, cuyo resultado grafico se presenta en la Fig. 3.1. En él se observa que
los datos de la suma de las salidas independientes coinciden con los datos de la salida de la
suma de las entradas independientes (cada punto verde y círculo rojo coinciden). Para este fin
se ha utilizado el siguiente código de programa utilizando Octave:

clear;clf;clc;
# -----------------------------------------------------------
# Laboratorio N° 3: Ejercicio 3.2
# Verificación de la linealidad de un sistema discreto
# Determinar si el sistema:
# y[n]=1/M{x[n]+x[n-1]+...+x[n-M-1]} es lineal
# -----------------------------------------------------------
# Generamos 2 secuencia arbitrarias con los mismos elementos
N=100;
nn=0:N-1;
xn1=0.5*nn;
xn2=sin(2*pi*0.3*nn);
#
# Generamos las salidas para cada una de las entradas
alfa1=0.1;
alfa2=0.5;

M = 8; # Número de puntos para evaluación del promedio


num = ones(1,M);
# Cálculo del Promedio Móvil
# yn1[n] = T{alfa1*xn1[n]}
yn1 =filter(num,1,alfa1*xn1)/M;
# yn2[n] = T{alfa2*xn2[n]}
yn2 =filter(num,1,alfa2*xn2)/M;
# Generamos una secuencia que sea una combinación lineal de ambas
# x3[n] = alfa1*x1[n] + alfa2*x2[n]
xn3 = alfa1*xn1+alfa2*xn2;
#
# Ahora calculamos la salida para la entrada x3[n]
# yn3[n] = T{xn3[n]} = T{alfa1*xn1[n] + alfa2*xn2[n]}
yn3 = filter(num,1,xn3)/M;# Cálculo del Promedio Móvil;
#
# Dibujo de las salidas
# Dibujo de la salida de la suma de las entradas independientes.
plot(yn3,'ro');grid;
hold on
# Dibujo de la suma de las salidas independientes
# yn3s = T{alfa1*xn1[n]} + {alfa2*xn2[n]}
yn3s = yn1 + yn2;
plot(yn3s','g*');
title('El sistema discreto es lineal')
xlabel('n')
legend('yn3[n]','y1[n]+y2[n]');
Preguntas:
3.3 Utilice dos señales discretas senoidales con diferentes frecuencias como señales de entrada y
luego calcule la señal de salida para cada entrada. ¿Cómo dependen las señales de salida con
respecto a las frecuencias de la señal de entrada? ¿Puedes demostrar tu observación
matemáticamente?

FLAVIO N. CARRILLO GOMERO - 2020


18

3.4 Modifica el código del programa del Ejercicio N° 3.2, y demuestre si el sistema discreto
dado por y[n] = x[n] - x[n-1] x[n+1] es lineal. Previamente, demostrar analíticamente si el
sistema discreto propuesto es o no lineal.

Fig. 3.2 Prueba de la linealidad del filtro promedio móvil para M = 8

Propiedad de la Invariancia en el tiempo


Cuando a un sistema discreto se aplica una entrada x1[n] se produce una salida y1[n], este sistema
será invariante si para una entrada x[n] = x1[n-k] la salida es y[n] = y1[n-k]. Es decir que, si la señal
de entrada se retarda o adelanta, la señal de salida estará retardada o adelantada en la misma
cantidad de tiempo desplazada. También podemos interpretar en el sentido de que la salida del
sistema será la misma independientemente del instante en que se aplique la señal discreta de
entrada.
Por consiguiente, podemos concluir que un sistema discreto es invariante en el tiempo si sus
propiedades se mantienen constantes con el tiempo.
En el lenguaje de las señales y sistemas, un sistema discreto es invariante en el tiempo si:
y[n] = T{x[n]} ⇒ y[n – k] = T{x[n – k]}, ∀k (3.8)
Para que se cumpla esta propiedad se debe verificar para cualquier desplazamiento y cualquier
señal de entrada.
En los siguientes dos ejemplos se demuestra como analizar esta propiedad:
(a) Sea y[n] = cos{x[n]}, analizar si este sistema discreto es invariante en el tiempo.
Sea x’[n] una entrada arbitraria ⇒ y’[n] = cos{x’[n]}.
Sea x’’[n] = x’[n - k] para un k arbitrario ⇒ y’’[n] = cos{x’’[n]} = cos{x’[n - k]}.
Por otro lado: y’ [n – k] = cos{x’[n - k]}.
Por lo tanto, se cumple que: y’’[n] = y’[n – k] lo que demuestra que el sistema propuesto es
invariante en el tiempo.
(b) Sea y[n] = x[Mn], evalúe si este sistema discreto es invariante en el tiempo.
Sea x’[n] una entrada arbitraria ⇒ y’[n] = x’[Mn].
Sea x’’[n] = x’[n - k] para un k arbitrario ⇒ y’’[n] = x’’[Mn] = x’[Mn – τ].
Por otro lado: y’[n - k] = x’ [M (n - k)] = x’[M n - Mk].
Por lo tanto, se verifica que: y’’[n] ≠ y’[n - k] lo que demuestra que el sistema discreto propuesto
es variante en el tiempo.

FLAVIO N. CARRILLO GOMERO - 2020


19

Ejercicio 3.3
Sea el sistema discreto del Filtro de Promedio Móvil expresado por la ecuación (3.2).
Se demuestra que este sistema discreto es invariante en el tiempo que está representado en la Fig.
3.3, donde se ve que los datos de la salida actual coinciden con los datos de la salida desplazada
(cada muestra azul y rojo coinciden al desplazar uno de ellos en la cantidad k de retardo de
prueba). Para este fin se ha utilizado el siguiente código de programa utilizando Octave.

clear;clf;clc;
# -----------------------------------------------------------
# Laboratorio N° 3: Ejercicio 3.3
# Invariancia en el tiempo
# Determinar si el sistema discreto Filtro Móvil es invariante
# -----------------------------------------------------------
# Generación de la secuencia de entrada
n = 0:40;
k = 3; # Retardo de prueba
xn=cos(2*pi*0.0625*n)+cos(2*pi*0.625*n);
#
M = 4; # Número de puntos para evaluación del promedio móvil
#
# Secuencia de entrada x[n] retardada en k unidades de tiempo
xnk = [zeros(1,k) xn];
# Parametros del Filtro móvil
num = ones(1,4);
den=1;
# Cálculo de la salida y[n]
yn = (filter(num,den,xn))/M;
# Calculo de la salida ynk[n]
ynk = filter(num,den,xnk)/M;

# Cálculo de la diferencia entre las salidas: dif[n]=y[n]-y[n-k]


difn = yn - ynk(1+k:41+k);

# Plot the outputs


subplot(3,1,1)
stem(n,yn,'b');
ylabel('Amplitud');
title('Salida y[n]');grid;

subplot(3,1,2)
stem(n,ynk(1:41),'r');
ylabel('Amplitud');
title(['Salida debido al retardo de la entrada x[n-
',num2str(k),']']);grid;

subplot(3,1,3)
stem(n,difn,'bk');
xlabel('Tiempo n'); ylabel('Amplitud');
title('Señal diferencia');grid;

Preguntas:
3.5 Ejecute el código del Ejercicio 3.3 y compare las secuencias de salida y[n] e y[n-k] para k=10.
¿Cuál es la relación entre estas dos secuencias? ¿Es este sistema invariante en el tiempo?
3.6 Repetir la pregunta 3.5 para tres funciones coseno con diferentes de valores de frecuencias de
entrada. ¿ Es este sistema discreto invariante en el tiempo?
3.7 Considere otro sistema discreto definido por:
y[n] = nx[n] + x[n - 1] (3.9)

FLAVIO N. CARRILLO GOMERO - 2020


20

Modificar el código del Ejercicio 3.3 para simular y determinar si este sistema discreto es
invariante en el tiempo o no.

Fig. 3.3 El sistema discreto de Promedio Móvil, es variante.

Propiedad de estabilidad de un sistema discreto lineal e invariante en el tiempo


Un Sistema Discreto Lineal e Invariante en el Tiempo (SDLIT) es estable si su respuesta
impulsional es absolutamente sumable. En consecuencia, se deduce que una condición necesaria
para que un sistema SDLIT sea estable, su respuesta al impulso debe caer a cero a medida que la
variable temporal n aumenta. El código del Ejercicio 3.4 es un programa realizado en Octave que
se utiliza para calcular la suma de los valores absolutos de las muestras de la respuesta impulsional
de un sistema causal SDLIT. Este calcula sobre N muestras de la respuesta impulsiva utilizando
la siguiente ecuación:
k
S   h  n (3.10)
n 0

y que al incrementarse los valores de k se verifica que el valor de la suma de |h[k]| en cada paso
de la iteración tiende a converger a un valor finito, si el sistema discreto es estable. Si el valor de
|h[k]| tiende al final en un valor menor que 10-6, entonces se asume que la suma S de la ecuación
(3.10) converge y S tiende a un valor finito, menor que ∞.
Ejercicio 3.4
En este ejercicio utilizaremos al sistema discreto Filtro de Promedio Móvil expresado por la
ecuación (3.2) para evaluar su estabilidad para M = 5.
Como resultado, se demuestra que este sistema discreto es estable por que el valor del |h[n]| es
menor que 10-6 el valor de S es 1. Para este fin se ha utilizado el siguiente código de programa
utilizando Octave.
Del punto de vista de la gráfica de la respuesta impulsional presentada en la Fig. 3.4, se observa
que la secuencia es acotada.

clear;clf;clc;
# -----------------------------------------------------------
# Laboratorio N° 3: Ejercicio 3.4
# Estabilidad de un sistema SDLIT
# Determinar si el sistema discreto Promedio Móvil es estable
# -----------------------------------------------------------
# Parámetros del sistema discreto Promedio Móvil
# Para M = 5, numera = [1 1 1 1 1] y denomina = [1];
FLAVIO N. CARRILLO GOMERO - 2020
21

N = 200;
n = 0: N;
# Cálculo del h[n] del Promedio Móvil
M=5;
numera = ones(1,M);
denomina=1;
hn = (1/M).*impz(numera,denomina,N+1);
# Evaluacion si h[n] es acotada
suma = 0;
for k = 1:N+1;
suma = suma + abs(hn(k));
if abs(hn(k)) < 10^(-6),
break,
end
end

disp('Valor del |h[n]| = '),disp(hn(k)),disp('--> |h[n]| es acotada');

# Gráfica de la respuesta impulsional


stem(n,hn,'r');grid;
xlabel('Tiempo n');
ylabel('Amplitud h[n]');
title('Respuesta impulsional del sistema discreto Promedio Móvil');

# Cálculo del valor de S


S = sum(abs(hn),1);
disp('Valor de S = '),disp(S), disp('--> sistema discreto estable');

Fig. 3.4 Respuesta impulsional h[n] del Promedio Móvil y es acotada.

Preguntas:
3.8 Ejecute el código del Ejercicio 3.4 para otros valores de M y demostrar para cada uno de ellos
si el sistema discreto Promedio Móvil es estable.
3.9 Determinar la estabilidad en forma analítica y luego verificar mediante el uso y
modificaciones necesarias del código del Ejercicio 3.4, de los siguientes sistemas discretos:
(a) y[n] = x[4-n]
(b) y[n] = 1/4y[n - 1] + x[n], n ≥ 0, y[-1] = 0

FLAVIO N. CARRILLO GOMERO - 2020


22

3.6 CONVOLUCIÓN EN SISTEMAS CONTINUOS

Un sistema usualmente es descrito mediante una ecuación diferencial en el caso de un sistema


continuo o por una ecuación en diferencias para el caso de un sistema discreto, las mismas que
relacionan la entrada con la salida. Si el sistema es Lineal e Invariante en el Tiempo (LIT), esta
puede también ser descrito por medio de su respuesta impulsional que es la respuesta del sistema
a una señal de entrada impulso unitario, expresada por la siguiente expresión:
h  t   y  t  x t  (3.11)
  t 

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


convolución, es decir ejecutando la operación de la convolución de la entrada x(t) con la respuesta
impulsional h(t) para generar la respuesta o salida:

y  t   x  t  * h  t    x   h  t    d (3.12)


Ejercicio 3.5
En Octave, una forma de calcular la integral anterior es utilizando la función conv(x,h). Deberá
notarse que si la señal 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 t t t
Si, x  t   rect   y h  t   rect   , entonces: y  t   rect   * rect  
 
2  
2  
2  2
Mediante Octave se desarrolló la operación de convolución entre x(t) y h(t), cuyo resultado es
mostrada en la Fig. 3.5.

clear;clf;clc;
# -----------------------------------------------------------
# Laboratorio N° 3: Ejercicio 3.5
# Convolución en tiempo continuo
# -----------------------------------------------------------
t=-1.2:0.0001:1.2;
xt=zeros(size(t));
ht=zeros(size(t));

xt(t>=-1 & t<=1)=1;


subplot(3,1,1),plot(t,xt,'r');
xlabel('t seg'); ylabel('x(t)');grid on;
title('Pulso rectangular x(t)');
axis([-1.5, 1.5, -0.2, 1.2]);

ht(t>=-1 & t<=1)=1;


subplot(3,1,2),plot(t,ht);
xlabel('t seg');ylabel('h(t)');grid on;
title('Respuesta impulsional h(t)');
axis([-1.5, 1.5, -0.2, 1.2]);

y=conv(xt,ht);
tt=t(1)+t(1):0.0001:t(end)+t(end);
subplot(3,1,3),plot(tt,y*0.0001,'k');
xlabel('t seg');ylabel('y(t)'); grid on;
title('Convolución x(t)*h(t)');
axis([-2.5, 2.5, -0.2, 2.2]);
Preguntas:
3.10 Considere el sistema continuo LIT definido por la respuesta impulsional h(t)=e-(t/0.02)[u(t)-
u(t-0.05)], para t en segundos y -ꝏ < t < ꝏ.

FLAVIO N. CARRILLO GOMERO - 2020


23

Genere la señal x(t)=cos(200πt) para -0.2 < t < 0.2 segundos. Desarrolle en forma analítica el
cálculo de la señal de salida y(t) y luego construya en Octave el programa pertinente que
compruebe lo hallado analíticamente.

Fig. 3.5 Resultado de la operación de convolución gráfica.


3.7 CONVOLUCIÓN EN SISTEMAS DISCRETOS
Los sistemas discretos se pueden caracterizar como una transformación, 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 combinación lineal de impulsos
desplazados, la salida de un sistema discreto puede escribirse como:
  
y  t   T  x  n   T   x  k   n  k  (3.13)
k  
Observando (3.13), y restringiendo el estudio a los Sistemas Discretos Lineales e Invariantes en
el Tiempo (SDLIT) se puede llegar a conocer la respuesta del sistema ante la aplicación de
cualquier señal de entrada mediante la operación conjunta del principio de superposición o
propiedad de linealidad y la propiedad de la invarianza temporal.
Aplicando el principio de superposición se obtiene la siguiente expresión:
 
y  n   x  k T   n  k    x k  h n  k 
k (3.14)
k  k 

donde hk[n] es la respuesta del sistema al impulso desplazado δ[n−k]. Además, si se considera
que el sistema discreto posee la propiedad de ser invariante en el tiempo, entonces:
 
y  n   x  k T  n  k    x k  h n  k   x n *  n
k  k 
(3.15)

donde hk[n] es la respuesta impulsional del sistema discreto (salida del sistema cuando en la
entrada se aplica la secuencia δ[n]). Al operador ‘*‘se le denomina operación de la convolución.
En consecuencia, se puede concluir que para conocer la respuesta de un sistema SDLIT ante
cualquier entrada, se requiere conocer solamente su respuesta impulsional h[n] del sistema
discreto.
La convolución es una herramienta matemática empleada en el Procesamiento Digital de la Señal,
y aunque se ha definido como un operador que permite determinar la respuesta de un sistema
SDLIT, también puede operar sobre dos señales arbitrarias.
Ejercicio 3.6
La convolución de dos secuencias de longitud finita siempre proporciona una secuencia con un
número finito de muestras. En este ejercicio se usarán las siguientes secuencias:
FLAVIO N. CARRILLO GOMERO - 2020
24

• x[n] = u[n] − u[n − 40]


• v[n] = u[n + 25] − u[n − 32]
• w[n] = u[n + 41] − u[n + 15]
Calcula y grafica las siguientes secuencias definidas por:
• y1[n] = x[n] * v[n]
• y2[n] = v[n] * w[n]
• y3[n] = x[n] * w[n]
Una interpretación de la ecuación de convolución, es considerar que la señal de salida de un
sistema discreto 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 señal 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 afirmación se puede observar en el diagrama de la Fig. 3.6, donde se precisa
como se determina la respuesta impulsional de un sistema SDLIT y en la Fig. 3.7 se muestra en
forma gráfica la interpretación.
Para este ejemplo se ha considerado como respuesta impulsional a: h[n] = u[n] − u[n − 8] y la
secuencia de entrada como: x[n] = δ[n+1] + 2δ[n] - 0.5δ[n - 1] + 0.5δ[n - 2], por lo tanto la
evaluación de la secuencia de salida, viene dada por:
y[n] = x[−1]h[n+1] + x[0]h[n] + x[1]h[n − 1] + x[2]h[n − 2] (3.16)

δ[n] h[n]

Fig. 3.6 Respuesta Impulsional de un sistema SDLIT

Fig. 3.7 Interpretación gráfica de la Convolución


FLAVIO N. CARRILLO GOMERO - 2020
25

Ejercicio 3.7
En este ejercicio, se va a verificar y[n] como el resultado analítico de la convolución discreta
entre las secuencias x[n] y h[n] dadas por las siguientes expresiones:
x n  cos  n  u n  4 h  n  e0.2nu n  5
(a) Determina la expresión de cálculo de y[n] convolucionando x[n] con h[n].
(b) Ejecuta el siguiente código y verifica que este programa es una solución de cálculo, y luego
verifica y compara resultados desarrollando otro código utilizando el comando conv de Octave:
clear,clf,clc,
# -----------------------------------------------------------
# Laboratorio N° 3: Ejercicio 3.7
# Convolución Discreta
# -----------------------------------------------------------
#
N=70;
nn=0:N; #rango de la variable discreta temporal
#
# Desarrollo de x[n]
K=4; # Retardo de la secuencia de entrada x[n]
Omega=0.20*pi; # Frecuencia digital de la funcion coseno
xn=cos(Omega*nn).*[zeros(1, K),ones(1, length(nn)-K)];
#
# Desarrollo de h[n]
M=5; # Retardo de la respuesta impulsional h[n]
hn=(exp(-0.2*(nn-M))).*[zeros(1, M),ones(1, length(nn)-M)];

# Cálculo de y[n]
for n=0:N
for k=K:n-M
ydn(n,k)=exp(-(0.2*n)).*exp(0.2*(k))*cos(Omega*k);
end
end
yn=sum(ydn,2);# sum(x) suma todos los elementos del vector x
# sum(A,1) suma cada columna de la matriz A,
# sum(A,2) suma cada fila de la matriz A;

# Gráficos resultado
# Grafico de x[n]
subplot(3,1,1);
stem(nn,xn,'r');grid;
axis([0, 70, -1.0, 1.0]);
xlabel('Tiempo n (Seg)'); ylabel('Amplitud');
title('Señal discreta x[n]');

# Grafico de h[n]
subplot(3,1,2);
stem(nn,hn,'k');grid;
axis([0, 70, 0, 1.0]);
xlabel('Tiempo n (Seg)'); ylabel('Amplitud');
title('Respuesta impulsional del sistema discreto h[n]');

# Gráfico de y[n]
subplot(3,1,3);
stem(yn,'b'); grid;
axis([0, 70, -1, 1]);
xlabel('Tiempo n (Seg)'); ylabel('Amplitud');
title('Señal discreta de salida y[n] ');

FLAVIO N. CARRILLO GOMERO - 2020


26

Fig. 3.8 Resultado de la operación de la convolución de (3.17)


Preguntas:
3.11 Que observaciones has registrado de acuerdo a la consideración (b) del Ejercicio 3.7.
3.12 Considera ahora las secuencias x[n] y h[n] dadas por las siguientes expresiones:
x  n  cos  n  u  n  1 h  n  e0.2nu n  5
(a) Determina la expresión de cálculo de y[n] convolucionando x[n] con h[n],
(b) Utiliza como base el código del Ejercicio 3.7 y realiza los cambios pertinentes para
que verifiques y compruebes los valores generados para y[n].
Ejercicio 3.8
En este ejercicio vamos a trabajar con la operación de convolución entre secuencias.
(a) Consideremos un sistema SDLIT con respuesta impulsional:
h[n] = 0.95n (u[n] - u[n - 10]) (3.17)
la que se debe excitar con la secuencia de entrada x[n] de 200 puntos, la misma que debes generar
y almacenar en un archivo x.txt y luego cargarlo. Considera que el primer elemento de este
vector se encuentre en correspondencia con el valor de la secuencia de entrada en el instante n=0.
(a) Desarrolla un código en Octave para obtener la salida y[n] utilizando la operación de la
convolución sin utilizar el comando conv. Representa dicha secuencia prestando especial
atención al etiquetado de las unidades de la variable del eje horizontal.
(b) Ahora halla la secuencia x1[n] = x[n - 10] y luego calcula y representa la nueva secuencia de
salida y1[n]. Luego, comprueba tus resultados teóricos utilizando el código desarrollado en (b).
(d) Comprueba los resultados de (b) utilizando la función conv de Octave y compara los
resultados obtenidos.
3.8 CONVOLUCIÓN DE SECUENCIAS COMPLEJAS
Las señales con las que se operan en los sistemas físicos realizables son reales. Sin embargo, para
modelar algunos sistemas, las señales complejas resultan ser muy útiles. Por ejemplo, en
aplicaciones de electrónica de potencia es muy habitual trabajar con fasores. De igual forma, en
sistemas de comunicaciones, las señales pasabanda suelen caracterizarse como señales complejas.
Por esta razón se proponen los siguientes ejercicios.
Ejercicio 3.9
Determina la parte real e imaginaria de la secuencia resultante de la convolución de dos secuencias
complejas x[n] = xr[n] + jxi[n] e y[n] = yr[n] + jyi[n].

FLAVIO N. CARRILLO GOMERO - 2020


27

Ejercicio 3.10
Utilizando el editor de Octave y sin utilizar el comando conv(), programa una función
ConvCompleja.m para calcular la convolución de dos secuencias complejas, cuya cabecera sea:

function [salidaRe, salidaIm] = convComp(entrada1, entrada2)


# entrada1: vector de entrada 1 complejo a convolucionar
# entrada2: vector de entrada 2 complejo a convolucionar
# salRe: parte real de la convolución entre ent1 y ent2
# salIm: parte imaginaria de la convolución entre ent1 y ent2

Carga un archivo denominado complejodat.txt que debe contener los vectores complejos x
e y que debes elaborar previamente. Calcula la convolución de ambos vectores utilizando la
función cuyo código acabas de desarrollar. Verifica tus resultados utilizando la función conv().
3.9 CORRELACIÓN CRUZADA
En esta sección vamos a analizar la operación de correlación entre señales discretas, que es de
gran interés de cara a las aplicaciones. Se define la correlación cruzada entre dos señales
discretas como:

rxy  k    x  n y  n  k  , k = 0, ±1, ±2, .... (3.18)
n 

donde:
* El parámetro k representa el desplazamiento o retardo (lag) retardo temporal entre dos señales.
* La secuencia y[n - k] se desplaza k muestras a la derecha respecto de x[n] para k > 0 y k muestras
hacia la izquierda para k < 0.
* El orden de los subíndices en rxy[k] indica que la secuencia x[n] queda fija e y[n] se desplaza.
  
* rxy  k    x n y n  k    y n  k  x n    y m  x m   k   r k 
yx (3.19)
n  n  m 

Es decir, la secuencia rxy[k] se obtiene realizando una inversión temporal de ryx[k].


Otra definición de utilidad es la autocorrelación de una secuencia x[n], y se denota como rxx[k]
a la secuencia:

rxx  k    x  n x  n  k  , k = 0, ±1, ±2, .... (3.20)
n 

Si k = 0 la autocorrelación es iguala al contenido de energía de la secuencia x[n]



rxx  0   x  n  E
2
x (3.21)
n 

También, se demuestra que existe relación entre la correlación y la convolución discreta, es


decir, si volvemos a escribir la expresión de la correlación entre dos secuencias:
 
rxy  k    x n y n  k    y m x m   k   y k  * x k  (3.22)
n  m 

del cual se observa que la correlación cruzada entre dos secuencias x[n] e y[n] se puede obtener
por medio de la convolución de y[n] con el espejo de x[n].
Para evitar que el resultado de la correlación dependa de las secuencias consideradas se definen
los coeficientes de correlación y autocorrelación normalizada de la siguiente forma:
rxy  k 
 xy  k   .... correlación normalizada (3.23)
rxx  0 ryy  0

FLAVIO N. CARRILLO GOMERO - 2020


28

rxx  k 
 xx  k   .... autocorrelación normalizada (3.24)
rxx 0

Con estas definiciones los coeficientes están acotados en el intervalo:


1  xx k   1
1   xy  k   1

independiente de las secuencias consideradas.


Ejercicio 3.11
En este ejercicio, se va a verificar la operación de correlación de rxy[n] utilizando la convolución
discreta entre las secuencias x[n] e y[n] dadas por las siguientes expresiones:
x n    n  1   n  2   n  3 y  n    n  1    n  2   n  3
(a) Determina la solución analítica y gráfica de la correlación entre x[n] e y[n] utilizando la
convolución definida en (3.22).
(b) Ejecuta el siguiente código y verifica que este programa es una solución de cálculo de (a),
cuyo resultado gráfico se muestra en la Fig. 3.9.

clear;clf;clc;
# -----------------------------------------------------------
# Laboratorio N° 3: Ejercicio 3.5
# Correlación en tiempo discreto
# -----------------------------------------------------------
# ------------------------------------
# Secuencia x[n]
# ------------------------------------
C1=0; U1=3 ; C2=7 ;
N=C1+U1+C2;
M=-3;
n=-N:N; #rango de la variable discreta temporal
xn =[zeros(1,N+C1+M),ones(1,U1),zeros(1,C2-M+1)];

subplot(4,1,1),stem(n,xn,'r');
xlabel('n seg'); ylabel('x[n]');grid on;
title('Secuencia x[n]');
axis([-11, 11, -0.2, 1.2]);
# ------------------------------------
# Secuencia espejo de x[n]
# ------------------------------------
xne =[zeros(1,C2-M+1),ones(1,U1),zeros(1,N+C1+M)];
subplot(4,1,2),stem(n,xne,'r');
xlabel('n seg'); ylabel('x[-n]');grid on;
title('Secuencia espejo de x[n]');
axis([-11, 11, -0.2, 1.2]);
# ------------------------------------
# Secuencia y[n]
# ------------------------------------
K=1; # Retardo de la secuencia de entrada x[n]
yn = [zeros(1,N+C1+K),ones(1,U1),zeros(1,C2-K+1)];
subplot(4,1,3),stem(n,yn);
xlabel('n seg');ylabel('y[n]');grid on;
title('Secuencia y[n]');
axis([-11 11, -0.2, 1.2]);
rxy=conv(xne,yn);
nn=n(1)+n(1):n(end)+n(end);
subplot(4,1,4),stem(nn,rxy,'k');
xlabel('n seg');ylabel('y[n]'); grid on;
title('Correlación rxy[k] = y[k]*x[-k]');
axis([-11, 11, -0.2, 3.2]);
FLAVIO N. CARRILLO GOMERO - 2020
29

Fig. 3.11Grafica resultado del Ejercicio 3.11


Preguntas
3.13 Ahora utilizando las secuencias del Ejercicio 3.11, comprueba en forma teórica y luego
desarrolla un código con Octave y comprueba la relación de simetría de la correlación dada por:

rxy  k   rxy  k  (3.25)

Ejercicio 3.12
Desarrolla un código en Octave para calcular la función de correlación cruzada discreta definida
en (3.18) utilizando la siguiente cabecera:
[rxy,kr]=corrcruzada(x,kx,h,kh)
donde kr,kx y kh son los vectores de índices temporales de las 3 secuencias involucradas.
(a) Utilizando los datos del Ejercicio 3.11 comparar con los resultados son similares a los
obtenidos en dicho ejercicio.
(b) Calcula en forma analítica la correlación rxy[n] de:
x  n  e0.2nu n  2 y  n  cos(0.2 n)u n  5
y mediante el uso del código desarrollado en este Ejercicio compara tus resultados con lo obtenido
en forma analítica.

3.10 REFERENCIA BIBLIOGRÁFICA

1. J. G. Proakis, y D. G. Manolakis, Capítulo 2: Discrete Time Signals and Systems, Digital


Signals Processing, 4.ª Edición, Editorial Pearson, pp. 71-90, 2013.
2. A. V. Oppenheim, y R.W.Schafer, Capítulo 2: Señales y Sistemas en Tiempo Discreto,
Tratamiento Digital de señales en Tiempo Discreto, 2.ª Edición, Editorial Prentice Hall, pp.
17-22, 2000.

FLAVIO N. CARRILLO GOMERO - 2020

También podría gustarte