Procesamiento Digital de Señales Sistemas Discretos, Transformada Z y Aplicaciones en Sistemas LTI
-
Upload
jose-ignacio-quintanilla-acevedo -
Category
Documents
-
view
26 -
download
0
description
Transcript of Procesamiento Digital de Señales Sistemas Discretos, Transformada Z y Aplicaciones en Sistemas LTI
-
Procesamiento Digital de Senales
Laboratorio 3 Sistemas Discretos, Transformada
Z y Aplicaciones en Sistemas LTI
Jose Quintanilla, Sebastian Tobar, Pedro Torres
[email protected], [email protected], [email protected]
Resumen
El proposito de este laboratorio es aplicar conceptos basicos de sistemas en tiempo discreto, incluyendo aspectos
asociados a sistemas lineales invariantes en el tiempo (LTI), y su division en sistemas FIR (Finite-Duration Impulse
Response) e IIR (Infinite-Duration Impulse Response), la transformada Z y sus aplicaciones al analisis de sistemas LTI.
1. INTRODUCCION
Para este laboratorio ya se han visto los temas sistemas lineales invariantes en el tiempo (LTI), y su division en
sistemas FIR (Finite-Duration Impulse Response) e IIR (Infinite-Duration Impulse Response), la transformada Z y sus
aplicaciones al analisis de sistemas LTI. Cada uno de estos topicos se centran en gran medida en el area de senales de
caracter discreta, en este laboratorio se abordaran reconocimiento de propiedades de los sistemas discretos, utilizacion
de la transformada Z y tambien la creacion de sistemas con los cuales se pueden manipular senales tan complejas
como un sonido.
2. DESARROLLO
2-A. EVALUACION DE PROPIEDADES DE SISTEMAS
A los dispositivos que operan sobre senales de variable discreta (o tiempo discreto) se les denomina sistemas discretos.
En general, reciben una senal de entrada x(n) para producir una senal de salida y(n). Se dice que el sistema transforma
x(n) en y(n), lo que se expresa como:
y(n) = [x(n)]
donde [x(n)] representa al operador de transformacion o procesamiento realizado por el sistema sobre x(n) para
producir y(n). Una descripcion de entrada-salida define la relacion entre x(n) y y(n). La estructura interna del sistema
es desconocida o ignorada, es decir, el sistema se considera como una caja negra cuyo funcionamiento interno no
interesa, sino el comportamiento especfico ante cierta entrada, tal como se vera a continuacion.
1. Se han entregado tres archivos de MATLAB pre-compilados , los cuales representan tres sistemas desconocidos.
Los archivos funcionan como funciones de MATLAB de modo que y = bboxN (x), donde x e y son las entradas
y salidas de cada sistema con N = 1, 2, 3. se sabe que solo uno de estos sistemas es no-lineal y solo uno es
variante en el tiempo. El trabajo es evaluar las propiedades de los tres sistemas e identificar los sistemas no-lineal
y variante en el tiempo.
-
a) Linealidad:
Un sistema es lineal si satisface el teorema de superposicion, es decir, para cualesquiera dos constantes a1, a2 y
para toda senal x1(n) y x2(n) se cumple:
[a1x1(n) + a2x2(n)] = a1 [x1(n)] + a2 [x2(n)]
Un esquema de verificacion de linealidad se muestra a continuacion, donde el sistema es lineal si y solo si para
todo par de entradas x1(n) y x2(n) y para cualesquiera dos constantes a1, a2 siempre la salida d(n) es cero.
Figura 1. Verificacion de linealidad.
Este mismo procedimiento se hara para cada uno de los 3 sistemas, pero no con 2 senales, sino con 5 y todas
de distinto tipo, para forzar aun mas el descubrimiento de las propiedades de los sistemas, en este caso la
propiedad de linealidad, las senales seran del tipo sinusoidal, constante y de ruido, las cuales seran ponderadas
con distintas constantes para comprobar su propiedad multiplicativa, tambien seran todas estas senales sumadas
para as comprobar tambien la propiedad de suma. El procedimiento se llevara a cabo en MATLAB y de manera
grafica, basandose en que si se grafican las distintas respuestas que se generan en el metodo de verificacion
mostrado de cada sistema, una encima de la otra, estas deberan aparecer montadas por lo cual se vera una sola
grafica comun, lo que no ocurrira con un sistema no lineal.
A continuacion se muestra el codigo generado para descubrir el sistema buscado y para luego mostrar los graficos.
1 clear all;
2 clc;
3 ts=1/1000; %tiempo muestreo
4 fs=1000;
5 t=[ts:ts:2];
6 min=0; %amplitud min senal 4
7 max=1; %amplitud max senal 4
8 x1=sin(2*pi*5*t); %senal 1
9 x2=0*t+5; %senal 2
10 x3=sin(2*pi*3*t); %senal 3
11 x4=min+(max-min).*rand(1,2000);%senal 4
12 x5=square(2*pi*50*t);%senal 5
13
14 a1=0.5;
-
15 a2=2;
16 a3=1;
17 a4=13;
18 a5=1;
19 suma=a1*x1+a2*x2+a3*x3+a4*x4+a5*x5; %suma completa
20
21 %% linealidad sistema 1
22 Ssuma1=bbox1(suma);
23 Sx11=a1*bbox1(x1);
24 Sx21=a2*bbox1(x2);
25 Sx31=a3*bbox1(x3);
26 Sx41=a4*bbox1(x4);
27 Sx51=a5*bbox1(x5);
28 descomp1=Sx11+Sx21+Sx31+Sx41+Sx51;
29 subplot 311
30 plot(t,Ssuma1,'r','linewidth',3);
31 xlabel('Tiempo [s]');
32 ylabel('amplitud');
33 title('Linealidad sistema bbox1');
34 hold on
35 subplot 311
36 plot(t,descomp1,'linewidth',3);
37
38 %% linealidad sistema 2
39 Ssuma2=bbox2(suma);
40 subplot 312
41 plot(t,Ssuma2,'r','linewidth',3);
42 xlabel('Tiempo [s]');
43 ylabel('amplitud');
44 title('Linealidad sistema bbox2');
45 hold on
46 Sx12=a1*bbox2(x1);
47 Sx22=a2*bbox2(x2);
48 Sx32=a3*bbox2(x3);
49 Sx42=a4*bbox2(x4);
50 Sx52=a5*bbox2(x5);
51 descomp2=Sx12+Sx22+Sx32+Sx42+Sx52;
52 plot(t,descomp2,'linewidth',3);
53
54 %% linealidad sistema 3 (no lineal, ver pintas rojas)
55 Ssuma3=bbox3(suma);
56 subplot 313
57 plot(t,Ssuma3,'b','linewidth',3);
58 xlabel('Tiempo [s]');
59 ylabel('amplitud');
60 title('Linealidad sistema bbox3 (no lineal)');
61 hold on
62 Sx13=a1*bbox3(x1);
63 Sx23=a2*bbox3(x2);
64 Sx33=a3*bbox3(x3);
65 Sx43=a4*bbox3(x4);
66 Sx53=a5*bbox3(x5);
-
67 descomp3=Sx13+Sx23+Sx33+Sx43+Sx53;
68 plot(t,descomp3,'r','linewidth',3);
En donde a simple vista en la figura 2 (siguiente pagina), no se pueden apreciar grandes diferencias, pero si se
mira con mas atencion, los sistemas bbox1 y bbox2 tienen una misma grafica en comun por lo que se puede
afirmar que son lineales, ya que que solo el sistema bbox3 se comporta como no lineal, y el grafico presentado es
el contra ejemplo buscado para afirmarlo, ya que en la tercera casilla de la figura se deben apreciar los pequenos
resaltos de una senal por sobre la que se encuentra encima, lo cual no sucede con los primeros dos sistemas
sometidos a la prueba, por lo cual se puede decir que el sistema no lineal buscado, el es sistema bbox3.
-
00.
20.
40.
60.
81
1.2
1.4
1.6
1.8
2050100
150
Tiem
po [s
]
amplitud
Line
alid
ad s
istem
a bb
ox1
00.
20.
40.
60.
81
1.2
1.4
1.6
1.8
2
2024x
104
Tiem
po [s
]
amplitud
Line
alid
ad s
istem
a bb
ox2
00.
20.
40.
60.
81
1.2
1.4
1.6
1.8
20102030
Tiem
po [s
]
amplitud
Line
alid
ad s
istem
a bb
ox3
(no lin
eal)
Figu
ra2.
Com
prob
acio
nlin
ealid
adde
sist
emas
.
-
b) Sistemas variantes e invariantes en el tiempo
Un sistema en reposo es invariante en el tiempo o invariante al desplazamiento si y solo si:
x(n) y(n) x(n k) y(n k)
En el diagrama de bloques de la figura 3, el sistema es invariante en el tiempo si y solo si la salida d(n) es
cero para todas las entradas x(n) y para todos los valores de retardo k.
Figura 3. Comprobacion de invariabilidad en el tiempo.
Al igual que en la propiedad anterior esta se comprobara graficamente con el mismo principio de comparacion,
esta vez se debe incluir retardos en el tiempo por lo cual habra que modificar los vectores de tiempo en conjunto
con los de valores de senales, para que, por medio de ceros en los vectores, hacer un efecto de retraso en la
senal. Esta vez se utilizo una sola senal para buscar el unico sistema variante en el tiempo, esta senal es un
impulso definido con amplitud 1 en el instante 0 seguido de muchos ceros a medida que el tiempo avanza. El
codigo fue hecho en base al diagrama de bloques anteriormente mostrado pero asumiendo que la ultima resta es
la comparacion visual de cada grafico y sus dos senales, en donde a la primera respuesta se le agrega un efecto de
retardo para as poder comparar de manera equitativa las dos senales, que de ser invariantes en el tiempo debieran
coincidir. Codigo y graficos que se muestran a continuacion:
1 %% senal impulso
2 prueba=[ts:ts:3];
3 tx=[ts:ts:2.3];
4 delta =[ones(1,1),zeros(1,2299)];
5 deltadesp =[zeros(1,700),ones(1,1),zeros(1,2299)];
6 resp1=bbox1(delta);
7 resp2=bbox2(delta);
8 resp3=bbox3(delta);
9
10 figure();
11 subplot 311
12 plot(tx,resp1,'linewidth',3);
13 subplot 312
14 plot(tx,resp2,'linewidth',3);
15 subplot 313
16 plot(tx,resp3,'linewidth',3);
-
17
18 resp12=bbox1(deltadesp);
19 resp22=bbox2(deltadesp);
20 resp32=bbox3(deltadesp);
21
22 normaldesplazada1=[zeros(1,700),resp1];
23 normaldesplazada2=[zeros(1,700),resp2];
24 normaldesplazada3=[zeros(1,700),resp3];
25
26 figure();
27 subplot 311
28 plot(prueba,resp12,'r','linewidth',3);
29 hold on
30 subplot 311
31 plot(prueba,normaldesplazada1,'b','linewidth',2);
32
33 subplot 312
34 plot(prueba,resp22,'r','linewidth',0.1);
35 axis([0,3,-1,1.5]);
36 hold on
37 subplot 312
38 plot(prueba,normaldesplazada2,'linewidth',2);
39
40 subplot 313
41 plot(prueba,resp32,'rx','linewidth',2);
42 hold on
43 subplot 313
44 plot(prueba,normaldesplazada3);
Como se puede a preciar en la figura 4 en el sistema bbox1 se produce una respuesta en el tiempo 0 muy parecida
a la misma entrada impulso, en el sistema bbox2 se produce una salida tipo escalon de amplitud 1, mientras
que en el sistema bbox3 la respuesta es igual a 0. Lo que se comprobara ahora es que estas mismas entradas,
pero desplazadas en el tiempo, deberan dar la misma respuesta, pero desplazadas tambien en el tiempo, lo cual
se puede ver en la figura 5.
-
0 0.5 1 1.5 20
1
2
Tiempo [s]
am
plitu
d
respuesta impulso sistema bbox1
0 0.5 1 1.5 20
1
2
Tiempo [s]
am
plitu
d
respuesta impulso sistema bbox2
0 0.5 1 1.5 21
0
1
Tiempo [s]
am
plitu
d
respuesta impulso sistema bbox3
Figura 4. Respuestas a impulso sin retardo.
0 0.5 1 1.5 2 2.5 30
1
2
Tiempo [s]
am
plitu
d
variabilidad sistema bbox1
0 0.5 1 1.5 2 2.5 31
0
1
Tiempo [s]
am
plitu
d
variabilidad sistema bbox2
0 0.5 1 1.5 2 2.5 31
0
1
Tiempo [s]
am
plitu
d
variabilidad sistema bbox3
Figura 5. Comprobacion de invariabilidad en el tiempo.
Se puede apreciar a simple vista que la respuesta del sistema bbox2 no se corresponde con el de la respuesta
desplazada que esta en la misma casilla, por lo cual este es es sistema variante en el tiempo buscado, por
ende de todos los demas, se podra decir, que son invariantes en el tiempo. En el primer y tercer sistema, el
-
impulso normal y el desplazado tuvieron la misma respuesta en amplitud y sacando los efectos del retraso las dos
respuestas se igualaban, cosa que no sucedio en el sistema bbox2 ya que el impulso sin retardo genero una salida
correspondiente a una senal oscilatoria, mientras que la senal desplazada, produjo una senal escalon retrasada,
por lo cual en este sistema si afectan los efectos de retardo y por ende con este contra ejemplo es suficiente para
determinar que el sistema bbox2 en variante en el tiempo.
b) Estabilidad y causalidad de los sistemas
Un sistema es estable en el sentido BIBO (bounded input, bounded output), siempre que se cumpla:
n=
|h(n)|
-
9 delta(i)= 1;
10 end
11 end
12 stem(tiempo,delta); %creacion de impulso discreto
13
14
15 x1=bbox1(delta);
16 x2=bbox2(delta);
17 x3=bbox3(delta);
18
19 subplot 311
20 plot(tiempo,x1,'linewidth',2);
21 xlim([-na nb]);
22 grid on
23 xlabel('Tiempo [s]');
24 ylabel('amplitud');
25 title('causalidad sistema bbox1');
26
27 subplot 312
28 plot(tiempo,x2,'linewidth',2);
29 xlim([-na nb]);
30 grid on
31 xlabel('Tiempo [s]');
32 ylabel('amplitud');
33 title('causalidad sistema bbox2');
34
35 subplot 313
36 plot(tiempo,x3,'linewidth',2);
37 xlim([-na nb]);
38 grid on
39 xlabel('Tiempo [s]');
40 ylabel('amplitud');
41 title('causalidad sistema bbox3');
-
20 15 10 5 0 5 10 15 200
1
2
muestras [n]
am
plitu
d
causalidad sistema bbox1
20 15 10 5 0 5 10 15 201
0
1
muestras [n]
am
plitu
d
causalidad sistema bbox2
20 15 10 5 0 5 10 15 201
0
1
muestras [n]
am
plitu
d
causalidad sistema bbox3
Figura 6. Comprobacion de causalidad.
Como se observa en los graficos los sistemas bbox1 y bbox2 no se cumple con la condicion de causalidad
mencionada anteriormente, ya que la salida no es 0 o nula antes del instante 0, por lo tanto estos sistemas son
no causales, mientras que el sistema bbox3 si cumple con la propiedad, ya que antes del instante 0 su salida es
nula.
En un analisis mas extenso se puede decir que un sistema causal solo depende de las entradas presentes y pasadas
como tambien de salidas pasadas, cosa que no se cumple al ver el comportamiento del sistema bbox2, ya que
como se observa en la figura 5, la naturaleza de su respuesta cambia dependiendo del lugar en el tiempo en donde
se representa el impulso, ya que por una parte se obtiene una respuesta tipo escalon y por otra, una senal mas
cercana a una senal sinusoidal o de ruido, distinto es en el caso de bbox1 ya que para descubrir su no causalidad,
hubo que definir un tiempo negativo cosa que no se observo en los analisis anteriores.
2-B. INVERSION DE SISTEMAS
Considere el sistema y = SA(x) dado por y[n] = 12y[n 1] x[n].1) Obtenga una expresion para el sistema inverso y = SB(x) de modo que = SB(SA()), donde representa
una funcion impulso en tiempo discreto. Ya que los sistemas son lineales, para cualquier entrada x[n] se obtiene
x = SB(SA(x)). Estos sistemas se llaman inversos ya que cancelan sus efectos mutuamente.
Para encontrar la expresion y = SB(x) se hara uso de una propiedad que relaciona los sistemas inversos y la
convolucion, esta dice que:
h(n) hi(n) = (n)
-
donde h(n) corresponde a la respuesta impulso del sistema y = SA(x) y hi(n) es la respuesta impulso del sistema
y = SB(x).
Esta propiedad permite encontrar hi(n) para una respuesta h(n) determinada. Pero en el dominio del tiempo
se hace bastante complicado, por tanto se hace uso de la transformada Z para encontrar mas facilmente esta
expresion, quedando la propiedad de la forma:
h(z)hi(z) = 1
Donde se despeja hi(z)
hi(z) =1
h(z)
Dicho lo anterior, a la expresion y = SA(x), se le aplicara la transformada Z, para obtener su respuesta impulso
de manera mas rapida.
y(z) =1
2y(z)z1 x(z)
y(z)(1 12z1) = x(z)
h(z) =y(z)
x(z)=
112z1 1
Tomando en cuenta las expresiones anteriores:
hi(z) =1
2z1 1
Donde la respuesta impulso del sistema inverso en el tiempo sera:
hi(n) =1
2(n 1) (n)
De la expresion anterior es posible saber cual es la funcion que representa al sistema y = SB(x), este vendra a
ser el siguiente:
y = SB(x) =1
2x(n 1) x(n)
2) Escriba una funcion en Matlab que implemente el sistema y = SB(x) y obtenga la respuesta de impulso de
SB y SB(SA).
1 t =0:10; %definicion de un vector tiempo.
2
3 figure
4 imp = zeros(1,11);%definicion de un vector para representar un impulso.
5 imp(1)=1; %se define el primer valor del vector impulso como 1.
6 stem(t,imp); %grafica del impulso.
7 title('Funcion Impulso','FontWeight','Bold','Fontsize',10,'Color','k') % Titulo
8 xlabel('n','FontWeight','Bold','Fontsize',8,'Color','k') % Etiqueta el eje x
9 ylabel('Y = Impulso','FontWeight','Bold','Fontsize',8,'Color','k') % Etiqueta el eje y
10
11
12 x=imp; %se define la entrada 'x' como un impulso.
-
13
14 figure
15 y = [1,11]; %se define la funcion 'y' como un vector
16 y(1) = 0.5*(0)-x(1); %funcion que define a 'y'; en este caso el primer valor.
17 n=1; %definicion de 'n' como 1; deberia ser 0
18 for i=1:10 %inicio de un ciclo for para generar la funcion 'y'.
19 n=n+1; %se va aumentando el valor de 'n'.
20 y(n)=0.5*(y(n-1))-x(n); %la funcion 'y'; este caso los valores siguientes.
21 end
22 stem(t,y); %grafica de la funcion 'y'; especificamente su respuesta impulso de y=SA(x).
23 title('Funcion Y=SA(Impulso)','FontWeight','Bold','Fontsize',10,'Color','k') % Titulo
24 xlabel('n','FontWeight','Bold','Fontsize',8,'Color','k') % Etiqueta el eje x
25 ylabel('Y=SA(Impulso)','FontWeight','Bold','Fontsize',8,'Color','k') % Etiqueta el eje y
26
27 figure
28 h_2 = [1,11]; %se define la funcion 'h_2' como un vector
29 h_2(1) = -(x(1)-0.5*0); %funcion que define a 'h_2'; en este caso el primer valor.
30 n=1; %definicion de 'n' como 1; deberia ser 0
31 for i=1:10 %inicio de un ciclo for para generar la funcion 'h_2'.
32 n=n+1 %se va aumentando el valor de 'n'.
33 h_2(n) = -(x(n)-0.5*x(n-1)); %la funcion 'h_2'; este caso los valores siguientes.
34 end
35 stem(t,h_2); %grafica de la funcion 'h_2'; que es la respuesta impulso de y = SB(x).
36 title('Funcion Y=SB(Impulso)','FontWeight','Bold','Fontsize',10,'Color','k') % Titulo
37 xlabel('n','FontWeight','Bold','Fontsize',8,'Color','k') % Etiqueta el eje x
38 ylabel('Y=SB(Impulso)','FontWeight','Bold','Fontsize',8,'Color','k') % Etiqueta el eje y
39
40 figure
41 y_2 = [1,11]; %se define la funcion 'y_2' como un vector
42 y_2(1) = -(y(1)-0.5*(0)); %funcion que define a 'y_2'; en este caso el primer valor.
43 n=1; %definicion de 'n' como 1; deberia ser 0
44 for i=1:10 %inicio de un ciclo for para generar la funcion 'y_2'.
45 n=n+1 %se va aumentando el valor de 'n'.
46 y_2(n) = -(y(n)-0.5*y(n-1)); %la funcion 'y_2'; este caso los valores siguientes.
47 end
48 stem(t,y_2); %grafica de la funcion 'y_2'; que es la respuesta impulso de y_2 = SB(SA(x)).
49 title('Funcion Y=SB(SA(Impulso))','FontWeight','Bold','Fontsize',10,'Color','k') % Titulo
50 xlabel('n','FontWeight','Bold','Fontsize',8,'Color','k') % Etiqueta el eje x
51 ylabel('Y=SB(SA(Impulso))','FontWeight','Bold','Fontsize',8,'Color','k') % Etiqueta el eje y
-
0 2 4 6 8 100
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1Funcin Impulso
n
Y =
Impu
lso
Figura 7. Funcion impulso.
0 2 4 6 8 101
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0Funcin Y=SA(Impulso)
n
Y=SA
(Impu
lso)
Figura 8. Respuesta a impulso SA.
-
0 2 4 6 8 101
0.5
0
0.5Funcin Y=SB(Impulso)
n
Y=SB
(Impu
lso)
Figura 9. Respuesta a impulso SB .
0 2 4 6 8 100
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1Funcin Y=SB(SA(Impulso))
n
Y=SB
(SA(
Impu
lso))
Figura 10. Respuesta SB(SA(Impulso)).
3) Exprese el sistema y = SB(x) utilizando una ecuacion de diferencias no recurrente (la salida depende solo
de las componentes de la entrada) y una ecuacion de diferencias recurrente (la salida depende tanto de las
componentes de la entrada como de la componentes previas de la salida). Dibuje los diagramas en bloque de estas
-
dos implementaciones Es la respuesta a impulso igual en estos casos? Justifique.
Para la ecuacion de diferencias de tipo no recurrente basta con usar la definida en el punto 1. Esta es:
y = SB(x) =1
2x(n 1) x(n)
El diagrama de bloques de esta expresion sera:
Figura 11. Diagrama de bloques no recurrente.
Ahora para la ecuacion de caracter recurrente, es necesario implementar de alguna forma los valores de la salida
previos. Para ello se hace uso de una propiedad matematica, basada en encontrar la media acumulada de la funcionx en el intervalo 0 k n, y tambien en el intervalo 0 k n 1.
y(n) =1
n+ 1(
nn=0
x(k) +
n1n=0
1
2x(k))
y(n) =1
n+ 1(
n1n=0
x(k) x(k) + 12x(n 1))
y(n) =1
n+ 1(ny(n 1) x(n) + 1
2(n 1)y(n 2) + 1
2x(n 1))
y(n) = nn+ 1
y(n 1) 1n+ 1
x(n) +(n 12(n+ 1)
)y(n 2) + 12(n+ 1)
x(n 1)
El diagrama de bloques de esta expresion sera:
Figura 12. Diagrama de bloques recurrente.
Para el caso de aplicar una entrada impulso a cada expresion las respuestas no son iguales, esto debido al hecho
de que la segunda ecuacion es recursiva. Para la primera funcion su salida depende netamente del impulso como
-
entrada, esto quiere decir que la funcion y(n) no recursiva solo tendra un valor distinto de 0 cuando el argumento
de la entrada sea 0. En cambio, en la funcion recursiva el valor de y(n) como toma en cuenta las salidas previas,
su respuesta variara dependiendo de los valores que vaya emitiendo la senal. Cabe mencionar el hecho de cuando
n = 0 la respuesta de la senal recursiva como la de la senal no recursiva son iguales, y cuando n < 0, las senales
ya no emiten los mismos valores, esto ya que las salidas previas de y(n) son 0 porque la senal impulso de entrada
en esos puntos es nula.
2-C. INTEGRALES Y DERIVADAS EN TIEMPO DISCRETO
Considere los siguientes sistemas en tiempo continuo:
La derivada esta dada por el sistema y = S1(x) donde y(t) = ddtx(t).
La integral esta dada por el sistema y = S2(x) donde y(t) = tx() d.
1) Formule sistemas en tiempo discreto que aproximen los sistemas continuos S1 y S2, Son estas aproximaciones
unicas?.
Luego de discretizar la funcion, es decir representar la senal en un plano discreto, o sea, proceso por el cual
las respuestas al sistema seran solo un muestreo de la respuesta del mismo sistema. Para el sistema S1(x), su
respuesta discretizada sera la derivada de la senal de entrada x(t), sabiendo que la derivacion numerica se da
como:d y(t)
dx=y(x+ h) y(x)
h
Figura 13. Derivacion numerica.
En la figura 13, h sera el espacio entre cada muestra, es decir el tiempo de muestreo ts. Aplicando la notacion
acorde a los contenidos, la aproximacion al sistema S1(x) es la siguiente:
d x(t)
dx=x(n+ ts) x(n)
ts
Para el sistema integrador se utilizo el metodo del trapecio de integracion numerica, en el cual: ba
f(x)dx = (b a2
) (f(a) + f(b))
En donde a equivale en este caso a un tiempo de muestro, y b al siguiente tiempo de muestreo, la idea es calcular
-
el area entre tiempos de muestreo y graficar ese valor para un tiempo de muestreo, la sumatoria total de esas
areas es 0 pero no se graficara la sumatoria. A continuacion el codigo propuesto:
1 clc
2 clear
3 fs=50*100; %frecuencia de muestreo
4 ts=1/fs; %tiempo de muestreo
5 t=ts:ts:0.05; %corrimientos
6 x = sin(2*pi*100*t); %senal de entrada
7 y1=((sin(2*pi*100*(t+ts)))-(sin(2*pi*100*t)))/ts; %funcion derivada
8 y2=(ts/2)*(sin(2*pi*100*t) + sin(2*pi*100*(t+ts)));
9 suma=sum(y2);
10
11
12 subplot 411
13 grid on
14 stem(t,x)
15 grid on
16 title('Senal Original')
17 xlabel('Tiempo[S]')
18 ylabel('Amplitud')
19
20 subplot 412
21 grid on
22 stem(t,y1)
23 grid on
24 title('Senal Derivada')
25 xlabel('Tiempo[S]')
26 ylabel('Amplitud')
27
28 subplot 413
29 grid on
30 plot(t,y2)
31 grid on
32 title('Senal integrada')
33 xlabel('Tiempo [S]')
34 ylabel('Amplitud')
35
36 subplot 414
37 grid on
38 plot(t,suma,'r')
39 grid on
40 title('Sumatoria integral')
41 xlabel('Tiempo [S]')
42 ylabel('Amplitud')
Como se puede apreciar, la derivada cambia de amplitud respecto a la senal original, esto dado que la funcion
cambia de valor para cada punto derivado, y es logico ya que matematicamente la derivada de sen(t) es cos(wt).
Para el caso de la integral, se ve que la amplitud en cada punto corresponde al area entre tiempos de muestreo,
-
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.051
0
1Seal Original
Tiempo[S]
Ampl
itud
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.051000
0
1000Seal Derivada
Tiempo[S]
Ampl
itud
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.052
0
2x 104 Seal integrada
Tiempo [S]
Ampl
itud
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.051
0
1Sumatoria integral
Tiempo [S]
Ampl
itud
Figura 14. Derivada e Integral de la funcion.
y si calculamos la sumatoria de estas areas, su resultado es 0.
Si se resuelve analticamente se puede ver que el resultado efectivamente es 0: 0,050
sen(2pi100t)dx = 0
Se puede acotar que para calcular las integrales o derivadas existen muchos otros metodos numericos disponibles,
para la derivada por ejemplo existe el metodo de Euler, para la integral existe el metodo del punto medio y la
regla de simpson.
2) Escriba las ecuaciones de diferencias que describan a los sistemas representados en el punto anterior. Las
ecuaciones de diferencias deben ser compactas, es decir sin sumatorias.
Para el sistema S1(x):
1
tsx(x0 + ts) 1
tsx(x0)
Y para el Sistema S2(x) :ts
2x(x0) +
ts
2x(x0 + ts)
3) Dibuje el diagrama en bloque de ambos sistemas anteriores.
A partir de las ecuaciones en diferencias para cada sistema, se obtiene el diagrama de bloques para cada uno,
teniendo en cuenta que n = tfs, entonces x0 corresponde a n, Es importante tambien destacar que X[n] es la
entrada discretizada.
Para el sistema S1(x) :
Para el sistema S2(x) :
-
Figura 15. diagrama de bloques S1.
Figura 16. diagrama de bloques S2.
5) Considere la senal de entrada a los sistemas S1 y S2 dada por x[n] = [n] [n 5] entre las muestras10 n 20. Grafique la senal original, su derivada e integral para el mismo intervalo de tiempo en cuadrosdistintos utilizando subplot.
1 clear all
2 close all
3 clc
4 na=10;
5 nb=20;
6 n=-na:nb;
7 n1=-10:20
8 n2=-10:20
9 delta_1=[zeros(1,10),ones(1,1),zeros(1,4),(-1),zeros(1,15)];
10
11
12 figure
13 subplot 311
14 stem(n1,delta_1,'b','fill','linewidth',2);
15 grid on
16 title('Funcion Impulso Compuesta: x[n]=d[n]-d[n-5]')
17 xlabel('n','FontWeight','Bold','Fontsize',8,'Color','k')
18 ylabel('y','FontWeight','Bold','Fontsize',8,'Color','k')
19 set(gca,'FontWeight','Bold','Fontsize',8);
20 %%derivada
21 for i=2:31
22 der(i)=(delta_1(i)-delta_1(i-1));;
23 end
24 subplot 312
25 stem(n2,der);
-
26 grid on
27 title('Derivada Funcion Impulso Compuesta: x[n]=d[n]-d[n-5]')
28 xlabel('n','FontWeight','Bold','Fontsize',8,'Color','k')
29 ylabel('y','FontWeight','Bold','Fontsize',8,'Color','k')
30 set(gca,'FontWeight','Bold','Fontsize',8);
31
32 %%integral
33 for i=2:31
34 int(i)=delta_1(i-1)+((delta_1(i)));
35 end
36 subplot 313
37 stem(n2,int);
38 title('Integral Funcion Impulso Compuesta: x[n]=d[n]-d[n-5]')
39 xlabel('n','FontWeight','Bold','Fontsize',8,'Color','k')
40 ylabel('y','FontWeight','Bold','Fontsize',8,'Color','k')
41 set(gca,'FontWeight','Bold','Fontsize',8);
10 5 0 5 10 15 201
0
1Funcion Impulso Compuesta: x[n]=d[n]d[n5]
n
y
10 5 0 5 10 15 201
0
1Derivada Funcion Impulso Compuesta: x[n]=d[n]d[n5]
n
y
10 5 0 5 10 15 201
0
1Integral Funcion Impulso Compuesta: x[n]=d[n]d[n5]
n
y
Figura 17. Derivada e Integral de senal impulso compuesta.
Cabe mencionar que una senal discreta es una senal de muestras, es decir se compone de sumatoria de datos. Es
por ello que al derivar o integrar una senal de este de tipo de la misma forma que las de tipos continua, no es
un metodo correcto. Es por lo anterior que en el ambito discreto la derivada de una senal se transforma en una
diferencia, y la integral en una sumatoria. En ambos casos lo que se hace es agregar un adelanto o un retraso; en
el caso de esta resolucion se uso un retraso. Al agregar un retraso a la funcion original, genera un desplazo en la
senal que se aprecia en la grafica; tanto para el caso de la derivada como de la integral. 6) Considere la senal de
entrada a los sistemas anteriores x[n] = u[n] u[n (N +1)], con N = 10 y entre las muestras 10 n 20.Grafique la senal original, su derivada e integral para el mismo intervalo de tiempo en cuadros distintos utilizando
subplot
-
1 clear all
2 close all
3 clc
4
5 n=-10:20;
6 x=[zeros(1,10),ones(1,10),zeros(1,11)];
7
8 figure
9 subplot 311
10 stem(n,x,'b','fill','linewidth',2);
11 grid on
12 title('Funcion Compuesta: y[n]=u[n]-u[n-11]')
13 xlabel('n','FontWeight','Bold','Fontsize',8,'Color','k')
14 ylabel('y','FontWeight','Bold','Fontsize',8,'Color','k')
15 set(gca,'FontWeight','Bold','Fontsize',8);
16
17 %%
18 for i=2:31
19 der(i)=(x(i)-x(i-1));
20 end
21 subplot 312
22 stem(n,der);
23 grid on
24 title('Derivada Funcion Compuesta: y[n]=u[n]-u[n-11]')
25 xlabel('n','FontWeight','Bold','Fontsize',8,'Color','k')
26 ylabel('y','FontWeight','Bold','Fontsize',8,'Color','k')
27 set(gca,'FontWeight','Bold','Fontsize',8);
28
29 %%
30 for i=2:31
31 int(i)=x(i-1)+x(i);
32 end
33 subplot 313
34 stem(n,int);
35 title('Integral Funcion Compuesta: y[n]=u[n]-u[n-11]')
36 xlabel('n','FontWeight','Bold','Fontsize',8,'Color','k')
37 ylabel('y','FontWeight','Bold','Fontsize',8,'Color','k')
38 set(gca,'FontWeight','Bold','Fontsize',8);
-
10 5 0 5 10 15 200
0.5
1Funcion Compuesta: y[n]=u[n]u[n11]
n
y
10 5 0 5 10 15 201
0
1Derivada Funcion Compuesta: y[n]=u[n]u[n11]
n
y
10 5 0 5 10 15 200
1
2Integral Funcion Compuesta: y[n]=u[n]u[n11]
n
y
Figura 18. Derivada e Integral de senal escalon compuesta.
Para este caso de senal discreta, si existe una derivada y una integral. En el caso de la senal escalon, su derivada
corresponde a un impulso y su integral a una rampa. Para su implementacion, es recomendable usar el mismo
metodo que en el punto anterior; donde se ve la derivada como una diferencia y la integral como una sumatoria.
Se ve en la grafica de la derivada un comportamiento tipo impulso, y en la de la integral un comportamiento tipo
rampa.
7) Descargue los archivos de audio music.wav y speech.wav de la pagina web del laboratorio (archivo
adjunto en el e-mail). Utilice estas senales como entrada a los sistemas anteriores y comente como los sistemas
alteran la calidad del sonido. Grafique la senal original, su derivada e integral en cuadros distintos utilizando
subplot.
1 clear all
2 close all
3 clc
4 fs=8000;
5
6 tono='music.wav';%%cambia el nombre de archivo
7 siz=wavread(tono,'size');
8 [x,fs]=wavread(tono);
9
10
11 figure
12 subplot 311
13 sound(x,fs);
14 plot(x);
15 grid on
16 title('Funcion Compuesta: y[n]=u[n]-u[n-11]')
17 xlabel('n','FontWeight','Bold','Fontsize',8,'Color','k')
-
18 ylabel('y','FontWeight','Bold','Fontsize',8,'Color','k')
19 set(gca,'FontWeight','Bold','Fontsize',8);
20
21 %%
22 for i=2:65001
23 der(i)=(x(i)-x(i-1));
24 end
25 subplot 312
26 sound(der,fs);
27 stem(der);
28 grid on
29 title('Derivada music.wav')
30 xlabel('n','FontWeight','Bold','Fontsize',8,'Color','k')
31 ylabel('y','FontWeight','Bold','Fontsize',8,'Color','k')
32 set(gca,'FontWeight','Bold','Fontsize',8);
33
34 %%
35 for i=2:65001
36 int(i)=x(i-1)+x(i);
37 end
38 subplot 313
39 sound(int,fs);
40 stem(int);
41 title('Integral music.wav ')
42 xlabel('n','FontWeight','Bold','Fontsize',8,'Color','k')
43 ylabel('y','FontWeight','Bold','Fontsize',8,'Color','k')
44 set(gca,'FontWeight','Bold','Fontsize',8);
0 1 2 3 4 5 6 7
x 104
1
0
1Funcion sonido music.wav
n
y
0 1 2 3 4 5 6 7
x 104
0.5
0
0.5Derivada sonido music.wav
n
y
0 1 2 3 4 5 6 7
x 104
2
0
2Integral sonido music.wav
n
y
Figura 19. Derivada e Integral de music wav.
-
0 2 4 6 8 10 12 14
x 104
1
0
1Funcion sonido speech.wav
n
y
0 2 4 6 8 10 12 14
x 104
0.5
0
0.5Derivada sonido speech.wav
n
y
0 2 4 6 8 10 12 14
x 104
2
0
2Integral sonido speech.wav
n
y
Figura 20. Derivada e Integral de speech wav.
Para este caso tambien se aplica el cambio de caso continuo a discreto. Es decir, la derivada es una diferencia y
la integral una sumatoria. En el uso de sonido este proceso si bien se ve cierta diferencia en las amplitudes de
las graficas, es mas perceptible el cambio al escucharlos. En el sonido de la derivada, se siente una baja en el
volumen. Y para la integral, el volumen crece.
8) En funcion de las aproximaciones previas de los sistemas S1 y S2, escriba las ecuaciones de diferencias para
una doble derivada y = S1(S1(x)), doble integral y = S2(S2(x)), y la integral de la derivada y = S2(S : 1(x)),
y la derivada de la integral y = S1(S2(x)).
1 clear all
2 close all
3 clc
4 na=10;
5 nb=20;
6 n=-na:nb;
7 n1=-10:20
8 n2=-10:20
9 delta_1=[zeros(1,10),ones(1,1),zeros(1,4),(-1),zeros(1,15)];
10
11
12 %%
13 for i=2:31
14 der(i)=(delta_1(i)-delta_1(i-1));
15 end
16 for i=2:31
17 der_2(i)=(der(i)-der(i-1));
18 end
-
19 subplot 411
20 stem(n2,der_2);
21 grid on
22 title('Derivada Segunda Funcion Impulso Compuesta: x[n]=d[n]-d[n-5]')
23 xlabel('n','FontWeight','Bold','Fontsize',8,'Color','k')
24 ylabel('y','FontWeight','Bold','Fontsize',8,'Color','k')
25 set(gca,'FontWeight','Bold','Fontsize',8);
26
27 %%
28 for i=2:31
29 int(i)=delta_1(i-1)+((delta_1(i)));
30 end
31 for i=2:31
32 int_2(i)=int(i-1)+((int(i)));
33 end
34 subplot 412
35 stem(n2,int_2);
36 title('Integral Segunda Funcion Impulso Compuesta: x[n]=d[n]-d[n-5]')
37 xlabel('n','FontWeight','Bold','Fontsize',8,'Color','k')
38 ylabel('y','FontWeight','Bold','Fontsize',8,'Color','k')
39 set(gca,'FontWeight','Bold','Fontsize',8);
40 %%
41 for i=2:31
42 der(i)=(delta_1(i)-delta_1(i-1));
43 end
44 for i=2:31
45 int_3(i)=(der(i)+der(i-1));
46 end
47 subplot 413
48 stem(n2,int_3);
49 grid on
50 title('Int. de Der. Funcion Impulso Compuesta: x[n]=d[n]-d[n-5]')
51 xlabel('n','FontWeight','Bold','Fontsize',8,'Color','k')
52 ylabel('y','FontWeight','Bold','Fontsize',8,'Color','k')
53 set(gca,'FontWeight','Bold','Fontsize',8);
54
55 %%
56 for i=2:31
57 int(i)=delta_1(i-1)+((delta_1(i)));
58 end
59 for i=2:31
60 der_3(i)=int(i-1)-((int(i)));
61 end
62 subplot 414
63 stem(n2,der_3);
64 title('Der. de Int. Funcion Impulso Compuesta: x[n]=d[n]-d[n-5]')
65 xlabel('n','FontWeight','Bold','Fontsize',8,'Color','k')
66 ylabel('y','FontWeight','Bold','Fontsize',8,'Color','k')
67 set(gca,'FontWeight','Bold','Fontsize',8);
En el punto 5, se definio la derivada e integral en el plano discreto, y para este caso es el mismo metodo. Hay
-
10 5 0 5 10 15 202
0
2Derivada Segunda Funcion Impulso Compuesta: x[n]=d[n]d[n5]
n
y
10 5 0 5 10 15 202
0
2Integral Segunda Funcion Impulso Compuesta: x[n]=d[n]d[n5]
n
y
10 5 0 5 10 15 201
0
1Int. de Der. Funcion Impulso Compuesta: x[n]=d[n]d[n5]
n
y
10 5 0 5 10 15 201
0
1Der. de Int. Funcion Impulso Compuesta: x[n]=d[n]d[n5]
n
y
Figura 21. graficos enunciado 8.
que decir que para el caso de la integral de la derivada y la derivada de la integral el valor original del muestreo
en relacion a la senal original crece; de 1 a 2, y ademas se genera un nuevo retraso en el muestreo. Para el caso
de la derivada e integral de segundo orden, se vuelve a repetir el caso de las de primer orden, es decir se enfatiza
aun mas su aplicacion.
-
9) Dibuje el diagrama en bloque de los sistemas del punto anterior.
Figura 22. Diagrama de bloques derivada de derivada.
Figura 23. Diagrama de bloques integral de integral.
Figura 24. Diagrama de bloques integral de derivada.
Figura 25. Diagrama de bloques derivada de integral.
CONCLUSIONES
Queda de manifiesto que las senales de tipo discreto son de principal uso para su procesamiento. Se vio que si bien,
su uso es mas complejo que las de tipo continua, su aplicacion parece ser mas amplia, como es el caso de los sonidos.
Recalcar la importancia de las senales de prueba como el impulso, escalon y rampa, donde con su uso se puede
determinar propiedades de los sistemas de manera sencilla.
Mencionar tambien que la transformada Z viene a ser una herramienta de gran utilidad para el procesamiento de
senales, esto porque su importancia radica en que permite reducir Ecuaciones en Diferencias o ecuaciones recursivas
con coeficientes constantes a Ecuaciones Algebraicas lineales dando as una facilidad a la hora de realizar un analisis.