Está en la página 1de 54

UNIVERSIDAD NACIONAL DE TRUJILLO

Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecatrónica

LABORATORIO 01: DISCRETIZACIÓN DE SEÑALES Y


SOLUCIÓN DE ECUACIONES EN DIFERENCIA

CONTROL II

AUTOR :

DOCENTE : ALVA ALCÁNTARA, Josmell Henry

CICLO : VIII

Trujillo, Perú 2018


UNIVERSIDAD NACIONAL DE TRUJILLO

INDICE

INTRODUCCIÓN.............................................................................................................................1
OBJETIVOS......................................................................................................................................2
MARCO TEORICO...........................................................................................................................3
MATERIALES..................................................................................................................................5
DESARROLLO.................................................................................................................................5
PARTE I.........................................................................................................................................5
PARTE II.....................................................................................................................................18
PARTE III....................................................................................................................................30
CUESTIONARIO:...........................................................................................................................42
CONCLUSIONES...........................................................................................................................53

INTRODUCCIÓN

1
UNIVERSIDAD NACIONAL DE TRUJILLO

Las señales pueden describir una variedad muy amplia de fenómenos físicos, y aunque se
pueden representar de muchas formas, en todo caso la información dentro de una señal está
contenida en un patrón de variaciones de alguna forma.
Por ejemplo, el mecanismo vocal humano produce el habla mediante la creación de
fluctuaciones de la presión acústica. Así, los diferentes sonidos corresponden a diferentes
patrones en las variaciones de la presión acústica, y el sistema vocal humano produce una
voz inteligible generando secuencias diferentes de esos patrones. Las variaciones de presión
acústica se convertirán después en señal eléctrica.
Es decir, una señal no va a ser más que una función de una o unas variables independientes
que contiene información acerca de la naturaleza o comportamiento de algún fenómeno.
Así, por ejemplo, la señal de voz se representa de forma matemática por la presión como
una función del tiempo. Hay dos tipos básicos de señales, de tiempo continuo y de tiempo
discreto, en este laboratorio se verán las ultimas mencionadas.
Una ecuación en diferencias es una expresión que relaciona distintas sucesiones, siendo una
de ellas una sucesión desconocida. Son similares a las ecuaciones diferenciales,
sustituyendo las funciones por sucesiones. Para su resolución suele utilizarse el método de
la transformada Z.
Para el análisis de los sistemas se recurre en general a 3 señales fundamentales que son el
impulso, el escalón y la rampa. A parte de estas señales existen otras conocidas como
periódicas y que en algún momento puede ser necesario su uso. Las señales construidas en
MATLAB, aún con la apariencia de señales continuas, son secuencias discretas definidas
sólo en determinados intervalos de tiempo, lo que no impide que se puede emplear para el
análisis de los sistemas puramente continuos. Para graficar señales continuas en 2D,
utilizamos el comando “plot” y para graficar señales muestreadas el comando “stem”. Se
continuará con el proceso de discretización de una señal.

OBJETIVOS

2
UNIVERSIDAD NACIONAL DE TRUJILLO

 Utilizar el software Matlab para poder obtener las señales discretizadas


propuestas por el docente.
 Realizar las diferentes soluciones (numérica, analítica y matricial) para las
ecuaciones recursivas.
 Implementar la convolución de señales en el software Matlab.
 Desarrollar el cuestionario propuesto en el laboratorio.

MARCO TEORICO

Ecuaciones en diferencias
1. Conceptos Basicos
Una ecuación en diferencias es una expresión del tipo:
G ( n , f ( n ) , f ( n+1 ) , … , f ( n+ k ) )=0 , ∀ n ∈ Z ,
Donde f es una función definida en Z.
Si después de simplificar esta expresión quedan los términos f(n+k1) y f(n+k2)
como el mayor y el menor, respectivamente, se dice que la ecuación es de orden
k = k1 – k2.
Ejemplo 1: La ecuación:
5 f ( n+ 4 )−4 f ( n+2 ) + f ( n+1 )+ ( n−2 )3 =0
Es de orden 4 -1 = 3.
Una ecuación en diferencias de orden k se dice lineal si puede expresarse de la
forma:
p0 ( n ) f ( n+ k )+ p 1 ( n ) f ( n+ k−1 )+ …+ p k ( n ) f ( n )=g ( n ) ,
Donde los coeficientes pi son funciones definidas en Z.
El caso más sencillo es cuando los coeficientes son constantes pi(n) = ai:
a 0 f ( n+f )+ a1 f ( n+k −1 )+ …+a k f ( n )=g ( n ) .
La ecuación en diferencias se dice homogénea en el caso de que g(n) = 0, y
completa en el caso contrario.

Teorema 1
Dada la ecuación en diferencias lineal de coeficientes constantes y de orden
3
UNIVERSIDAD NACIONAL DE TRUJILLO

k:
a0 f ¿
El problema de hallar una función f definida en Z, que verifique la ecuación, y
tal que en los k enteros consecutivos n 0, n0 +1, …, n0 + k – 1 tome los valores
dados c0, c1, …, cñ-1, tiene solución única.

Teorema 2
Dada una ecuación en diferencias lineal homogénea de coeficientes
constantes y de orden k entonces, si una solución f es nula en k enteros
consecutivos, es idénticamente nula.
Teorema 3
Toda combinación lineal de soluciones de una ecuación en diferencias
lineal homogénea de coeficientes constantes y de orden k es también solución
de dicha ecuación.
Se llama sistema fundamental de soluciones de una ecuación en diferencias
lineal homogénea de orden k a todo conjunto {f1, f2, …, fk} de soluciones de
dicha ecuación que verifica para algún n0 ϵ Z que la matriz fundamental es
inversible, esto es:
f 1 (n0 ) f 2 (n0 ) … f k (n0)

Teorema 4
|
D ( n0 ) = f 1(n0 +1)

f 2 (n 0+ 1)

f 1 (n0 +k −1) f 2 ( n0+ k−1)

… …
|
f k (n0 +1) ≠0.

… f k (n0 + k−1)

Sea {f1,f2, …, fk} un sistema fundamental de soluciones de una ecuación en


diferencias lineal. Entonces:
1. D(n) ≠ 0, Ɐn ϵ Z.
2. Toda solución de la ecuación homogénea es combinación lineal de f1, f2,
…, fk, es decir:
k
f ( n )=∑ c i f i (n)
i=1

3. Si z(n) es una solución de la ecuación completa, entonces toda solución


de dicha ecuación se puede escribir como la suma de z(n) y de la

4
UNIVERSIDAD NACIONAL DE TRUJILLO

solución general de la ecuación homogénea, esto es:


k
f ( n )=z ( n )+ ∑ c i f i (n)
i=1

MATERIALES

 Computadora Personal
 Software Matlab

DESARROLLO

PARTE I

5) Discretizar la señal y = Sin(x) en 50 partes en el dominio comprendido entre 0 y 2π.

Análisis:
- Identificamos el periodo de la señal original, ya que este nos ayudara a calcular el
periodo de muestreo de nuestra señal discreta. En este caso el periodo de la señal es
2π.
- Si la señal original debe ser dividida en 50 partes, entonces el dominio que va entre
0 y 2π tiene que ser dividido en (50 -1) secciones, dándonos un valor de 49.
- Nuestro periodo de muestreo vendría ser 2π/49.

Código en Matlab:
k=0:2*pi/49:2*pi; <- Dividimos el dominio en 49
secciones
y=sin(k);
stem(k,y,'g');
grid on
title('Senoidal discretiada.')
xlabel('k')

Grafico:

5
UNIVERSIDAD NACIONAL DE TRUJILLO

Gráfica 1. Señal Sin(x) discretizada.

6) Discretizar las siguientes señales en los intervalos dados y en el número de muestras


dado.
6.a) y=e−2 x sin (x), [0,4π] en 20 partes.

Análisis:
o Identificamos el periodo de la señal original, ya que este nos ayudara a
calcular el periodo de muestreo de nuestra señal discreta. En este caso el
periodo dela señal es 4π.
o Si la señal original debe ser divida en 20 partes, entonces el dominio que va
entre 0 a 4π tiene que ser dividido en (20 -1) secciones, dándonos un valor
de 19.
o Nuestro periodo de muestreo vendría a ser 4π/19.

Código en Matlab:

6
UNIVERSIDAD NACIONAL DE TRUJILLO

k=0:4*pi/19:4*pi; <- Dividimos el dominio en 19 secciones


y=exp(-2*k).*sin(k);
figure
stem(k,y,'b');
grid on
title('Señal discretiada y=exp(-2*k)*sin(k)')
xlabel('k')
ylabel('y(k)')

Grafico:

Gráfica 2. Señal y= e^(-2x) Sin(x) discretizada.

6.b) y=e−x cos x, [0,2π] en 20 partes.

Análisis:
o Identificamos el periodo de la señal original, ya que este nos ayudara a
calcular el periodo de muestreo de nuestra señal discreta. En este caso
periodo de la señal es 2π.
o Si la señal original debe ser dividida en 20 partes, entonces el dominio que
va entre 0 a 2π tiene que ser dividido en (20 -1) secciones, dándonos un
valor de 19.
o Nuestro periodo de muestreo vendría a ser 2π/19.
Código en Matlab:

7
UNIVERSIDAD NACIONAL DE TRUJILLO

k=0:3*pi/19:3*pi; <- Dividimos el dominio en 19 secciones


y=exp(-k).*cos(k);
figure
stem(k,y,'r');
grid on
title('Señal discretiada y=exp(-k)*cos(k)')
xlabel('k')
ylabel('y(k)')

Grafico:

Gráfica 3. Señal y= e^(-x) cosx discretizada.

6.c) y=ln( x), [1,10] en 40 partes.

8
UNIVERSIDAD NACIONAL DE TRUJILLO

Análisis:
o La señal original tiene un periodo de 9, esto se debe a que no empieza en 0.
o Si la señal original debe ser dividida en 40 partes, entonces el dominio que
va entre 1 a 10 tiene que ser dividido en (40 - 1) secciones, dándonos un
valor de 39.
o Nuestro periodo de muestreo vendría a ser 9/39.

Código en Matlab:

k=1:9/39:10;
y = log(k);
figure
stem(k,y,'y')
grid on
title('Señal discretizada y = log(k);')
xlabel('k')
ylabel('y(k)')

Grafico:

Gráfica 4. Señal y=Ln(x) Discretizada.

9
UNIVERSIDAD NACIONAL DE TRUJILLO

6.d) y=e−2 x [3 sin ( 2 x )+ 4 cos (2 x)], [0,3π] en 40 partes.

Análisis:
o La señal original tiene un periodo de 3π.
o El dominio deberá ser dividido en 39 secciones.
o Nuestro periodo de muestreo vendría a ser 3π/39.

Código en Matlab:

k=1:3*pi/39:3*pi;
y=exp(-2*k).*(3*sin(2*k)+4*cos(2*k));
figure
stem(k,y,'r');
grid on
title('Señal Discreta')
xlabel('k')
ylabel('y(k)')

Grafico:

10
UNIVERSIDAD NACIONAL DE TRUJILLO

Gráfica 5. Señal discretizada de e^(-2x) [3 sin⁡〖(2x)+4 cos⁡〖(2x)〗 〗]

7) Implemente la señal y=μ (k ), 0 ≤ k ≤ 20.

Análisis:
o La señal escalón puede ser implementada, declarando una matriz de “unos”
de 1 fila y “n” columnas.

Código en Matlab:
k = 0:20;
n= length(k)
y=ones(1,n);
figure
stem(k,y)
grid on
title('Señal discretizada de la señal escalón')
xlabel('k')
ylabel('y(k)')

11
UNIVERSIDAD NACIONAL DE TRUJILLO

Grafico:

Gráfica 6. Señal discretizada de la señal escalón.

8) Implemente la señal y=μ (k −8), 0 ≤ k ≤ 20.

Análisis:
o La señal escalón traslada “w” posiciones, puede ser implementada,
declarando una matriz de 1 fila con “ceros” desde la columna 0 a la columna
“w” y “unos” en adelante hasta completar las “n” columnas requeridas.

12
UNIVERSIDAD NACIONAL DE TRUJILLO

Código en Matlab:
k = 0:10;
n= length(k);
y=[zeros(1,8) ones(1,n-8)];
figure
stem(k,y,'k')
grid on
title('Señal discretizada de la señal escalón trasladada.')
xlabel('k')
ylabel('y(k)')

Grafico:

Gráfica 7. Señal discretizada de la señal escalón trasladada.

9) Implemente la señal y=δ (k), -10 ≤ k ≤ 10.

Análisis:
o La señal impulso unitario, de la misma manera que en el caso anterior,
puede ser implementada declarando “ceros” iniciales, en “uno” del impulso
en la posición requerida y “ceros” finales hasta completar el dominio.

13
UNIVERSIDAD NACIONAL DE TRUJILLO

Código en Matlab:

k = -10:10;
n= length(k);
y=[zeros(1,(n-1)/2) 1 zeros(1,(n-1)/2)];
figure
stem(k,y,'m')
grid on
title('Señal discretizada del impulso unitario')
xlabel('k')
ylabel('y(k)')

Grafico:

Gráfica 8. Señal discretizada del impulso unitario.

10) Repetir el paso anterior pero ahora utilizando lo siguiente: y=[ x=¿ 0]

Análisis:
o Matlab nos da las herramientas para poder declarar un impulso sin la
necesidad de crear matrices e ir llenándolas de ceros y unos de manera
manual.

14
UNIVERSIDAD NACIONAL DE TRUJILLO

Código en Matlab:

y1 = [k==0];
figure
stem(k,y,'c')
grid on
title('Señal discretizada y = [x==0];')
xlabel('k')
ylabel('y(k)')

Grafico:

Gráfica 9. Señal discretizada y = [x==0]

11) Implementa la señal y=δ (k−4), -10 ≤ k ≤ 10

Análisis:

15
UNIVERSIDAD NACIONAL DE TRUJILLO

- Teniendo de referencia al ejemplo anterior simplemente cambiaremos el ‘0’ por


un ‘4’ para poder crear un impulso trasladado sin crear matrices.

Código en Matlab:
k = -10:10;
n= length(k);
y=[k==4];
figure
stem(k,y,'k')
grid on
title('Señal discretizada impulso unitario;')
xlabel('k')
ylabel('y(k)')

Grafico:

Gráfica 10. Señal discretizada impulso unitario.

12) Implementa la señal y=μ (k −4), -10 ≤ k ≤ 10

Análisis:

16
UNIVERSIDAD NACIONAL DE TRUJILLO

o Teniendo como referencia los ejemplos anteriores, utilizando la herramienta


de Matlab, cambiaremos ahora el “==” por un “>=”, de esta forma le
estaremos diciendo que para valores mayores e iguales a 4, todos serán
“unos”.
Código en Matlab:
k = -10:10;
n= length(k);
y=[k>=4];
figure
stem(k,y,'k')
grid on
title('Señal discretizada escalon u(k-4)')
xlabel('k')
ylabel('y(k)')

Grafico:

Gráfica 11. Señal discretizada escalon u(k-4).


13) Grafique la señal y ( k )=sin ( 100 )[ μ ( k )−μ(k−30)], Ɐ k ≥ 0.

17
UNIVERSIDAD NACIONAL DE TRUJILLO

Análisis:
o El método de resolución para este ejercicio es el que hemos trabajando de
simplemente reemplazar “k” que tiene un tiempo de muestreo en la señal
propuesta.
o Además, notamos que los escalones que se están restando, nos están
diciendo que la señal simplemente empieza en 0 y termina en 30, esto será
representado utilizando el ultimo método estudiado, donde simplemente
declaremos “k<30” que quiere decir que para valores de “k” menores que 30
serán “unos”.

Código en Matlab:

k = 0:100;
z= sin(2*pi*k/100);
w=[k<30];
y=z.*w;
figure
stem(k,y,'r')
grid on
title('Señal discretizada y(k) = sin(2*pi*k/100)[u(k)-u(k-30)]')
xlabel('k')
ylabel('y(k)')

Grafico:

18
UNIVERSIDAD NACIONAL DE TRUJILLO

Gráfica 12. Señal discretizada de y(k)= sin⁡〖(2π/100)[μ(k) - μ(k-30)]〗

PARTE II

1) Implemente en Matlab f( k T s ) si T s=0.01 s.

f ( t )=3 t [ μ ( t )−μ ( t−3 ) ] +2 μ ( t−2 )

Análisis:
- Al tener la señal continua, para conseguir nuestra señal discretizada, lo que
debemos hacer es simplemente reemplazar ‘t’ por ‘ k T s’ y despejar todo en
función solo de ‘k’. Aplicando esto, nuestra señal discretizada será:

3 2
[
f ( k T s) =3 k T s μ ( k )−μ k−
( Ts )] (
+2 μ k−
Ts )
19
UNIVERSIDAD NACIONAL DE TRUJILLO

f ( k T s) =3 k T s [ μ ( k )−μ ( k−300 ) ]+ 2 μ ( k −200 )

- Y con ello simplemente interpretaremos las funciones escalones para saber


cuándo empieza y terminan las funciones a las que acompañan.

Código en Matlab:

Ts=0.01; %Periodo de muestreo


k=0:350;
f1=3*k*Ts;
u1=[k<300];
f2=2;
u2=[k>=200];
y=f1.*u1+f2.*u2;
stem(k,y)
grid on
title('Señal discretizada')
xlabel('k')
ylabel('y(k)')

Grafico:

Gráfica 13. Señal f(kT_s )=3kT_s [μ(k)-μ(k-300)]+2μ(k-200) discretizada.

2) Repita el paso anterior para la siguiente función:

20
UNIVERSIDAD NACIONAL DE TRUJILLO

f ( t )=3 tμ ( t )−(t−1) μ ( t−1 )

Análisis:
- Al tener la señal continua, para conseguir nuestra señal discretizada, lo que
debemos hacer es simplemente reemplazar ‘t’ por ‘ k T s’ y despejar todo en
función solo de ‘k’. Aplicando esto, nuestra señal discretizada será:

1
(
f ( k T s) =3 k T s μ ( k )−(k T s−1) μ k−
Ts )
f ( k T s) =3 k T s μ ( k )−T s (k −100) μ ( k −100 )
- Y con ello simplemente interpretaremos las funciones escalones para saber
cuándo empieza y terminan las funciones a las que acompañan.

Código en Matlab:

Ts=0.01; %Periodo de muestreo


k=0:150;
f1=3*k*Ts;
u1=[k>=0];
f2=Ts*(k-100);
u2=[k>=100];
y=f1.*u1-f2.*u2;
figure;
stem(k,y)
grid on
title('Señal discretizada')
xlabel('k')
ylabel('y(k)')

Grafico:

21
UNIVERSIDAD NACIONAL DE TRUJILLO

Gráfica 14. Señal f(kT_s )=3kT_s μ(k)-T_s (k-100)μ(k-100) discretizada.

3) Implemente en Matlab f( k T s ) si T s=0.02 s.

f ( t )=6 t [ μ ( t )−μ ( t−1 ) ] +2 μ ( t )−4 [ μ ( t−2 )−μ ( t−3 ) ]


Análisis:
- Al tener la señal continua, para conseguir nuestra señal discretizada, lo que
debemos hacer es simplemente reemplazar ‘t’ por ‘ k T s’ y despejar todo en
función solo de ‘k’. Aplicando esto, nuestra señal discretizada será:

1 2 3
[ (
f ( k T s) =6 k T s μ ( k )−μ k −
Ts )] [ ( ) ( )]
+ 2 μ ( k ) −4 μ k −
Ts
−μ k−
Ts

f ( k T s) =6 k T s [ μ ( k )−μ ( k −50 ) ] +2 μ ( k )−4 [ μ ( k−100 ) −μ ( k−150 ) ]


- Y con ello simplemente interpretaremos las funciones escalones para saber
cuando empieza y terminan las funciones a las que acompañan.

22
UNIVERSIDAD NACIONAL DE TRUJILLO

Código en Matlab:

Ts=0.02; %Periodo de muestreo


k=0:200;
f1=6*k*Ts;
u1=[k<50];
f2=2*k*Ts;
f3=4;
u2=[k>=100];
u3=[k<150];
y=f1.*u1+f2-f3.*u2.*u3;
figure;
stem(k,y)
grid on
title('Señal discretizada')
xlabel('k')
ylabel('y(k)')

Grafico:

23
UNIVERSIDAD NACIONAL DE TRUJILLO

Gráfica 15. f(kT_s )

4) Repita el paso anterior para la siguiente función:

f ( t )=5 tμ ( t )−3 μ ( t−1 )−3 (t−3)μ ( t−3 )


Análisis:
- Al tener la señal continua, para conseguir nuestra señal discretizada, lo que
debemos hacer es simplemente reemplazar ‘t’ por ‘ k T s’ y despejar todo en
función solo de ‘k’. Aplicando esto, nuestra señal discretizada será:

1 3
(
f ( k T s) =5 k T s μ ( k )−3 μ k −
Ts) (
−3( k T s −3) μ k−
Ts )
f ( k T s) =5 k T s μ ( k )−3 μ ( k−50 )−3 T s (k −150) μ ( k−150 )
- Y con ello simplemente interpretaremos las funciones escalones para saber
cuándo empieza y terminan las funciones a las que acompañan.

24
UNIVERSIDAD NACIONAL DE TRUJILLO

Código en Matlab:

Ts=0.02; %Periodo de muestreo


k=0:200;
f1=5*k*Ts;
u1=[k>=50];
f2=3;
f3=3*Ts*(k-150);
u2=[k>=150];
y=f1-f2.*u1-f3.*u2;
figure;
stem(k,y)
grid on
title('Señal discretizada')
xlabel('k')
ylabel('y(k)')

Grafico:

25
UNIVERSIDAD NACIONAL DE TRUJILLO

Gráfica 16. f(kT_s )

5) Implemente la señal f( k T s ) si T s=0.01 s y ω 0=2 π .

π π 2π
[ (
f ( t )= ASin ( ω 0 t ) μ ( t ) −μ t−
ω0)] [ ( ) ( )]
− ASin ( ω0 t ) μ t−
ω0
−μ t−
ω0

Análisis:
- Al tener la señal continua, para conseguir nuestra señal discretizada, lo que
debemos hacer es simplemente reemplazar ‘t’ por ‘ k T s’ y despejar todo en
función solo de ‘k’. Aplicando esto, nuestra señal discretizada será:

π π 2π
[ (
f ( k T s) = ASin ( ω0 k T s ) μ ( k )−μ k −
ω0 T s )] [(
− ASin ( ω 0 k T s ) μ k−
ω0 T s
−μ k −
) (
ω0 T s )]
f ( k T s) = ASin ( ω0 k T s ) [ μ ( k )−μ ( k −50 ) ] − ASin ( ω 0 k T s ) [ μ ( k−50 )−μ ( k −100 ) ]

26
UNIVERSIDAD NACIONAL DE TRUJILLO

- Y con ello simplemente interpretaremos las funciones escalones para saber


cuándo empieza y terminan las funciones a las que acompañan.

Código de Matlab:

Ts=0.01; %Periodo de muestreo


w0=2*pi;
k=0:150;
f1=sin(2*pi*k*Ts);
u1=[k<50];
f2=f1;
u2=[k>=50];
u3=[k<100];
y=f1.*u1-f2.*u2.*u3;
figure;
stem(k,y)
grid on
title('Señal discretizada.')
xlabel('k')
ylabel('y(k)')

Grafico:

Gráfica 17. f(kT_s )

27
UNIVERSIDAD NACIONAL DE TRUJILLO

6) Repita el paso anterior para la siguiente función.

π π 2π 2π
[ (
f ( t )= ASin ( ω 0 t ) μ (t ) +2 ASin ω0 t−
ω0 )] (
μ t−
ω0 )
+ ASin[ω 0 (t− )] μ t−
ω0 ω0 ( )
Análisis:
- Al tener la señal continua, para conseguir nuestra señal discretizada, lo que
debemos hacer es simplemente reemplazar ‘t’ por ‘ k T s’ y despejar todo en
función solo de ‘k’. Aplicando esto, nuestra señal discretizada será:

π π 2π 2π
[(
f ( k T s) = ASin ( ω0 k T s ) μ ( k ) +2 ASin ω0 k T s−
ω0 )] (
μ k−
ω0 T s )
+ ASin [ω0 (k T s − )] μ k −
ω0 ω0 T s ( )
f ( k T s) = ASin ( ω0 k T s ) μ ( k ) +2 ASin [ ω 0 T s ( k −50 ) ] μ ( k −50 ) + ASin[ω 0 T s (k −100)]μ ( k −100 )
- Y con ello simplemente interpretaremos las funciones escalones para saber
cuándo empieza y terminan las funciones a las que acompañan.

Código en Matlab:

Ts=0.01; %Periodo de muestreo


w0=2*pi;
k=0:120;
f1=sin(2*pi*k*Ts);
u1=[k>=50];
f2=2*sin(2*pi*Ts*(k-50));
u2=[k>=100];
f3=sin(2*pi*Ts*(k-100));
y=f1+f2.*u1+f3.*u2;
figure;
stem(k,y)
grid on
title('Señal discretizada')
xlabel('k')
ylabel('y(k)')

Grafico:

28
UNIVERSIDAD NACIONAL DE TRUJILLO

Gráfica 18. f(kT_s )

1
7) Graficar la siguiente función periódica g ( t ) = . 0 ≤ t< 4, utilizar un tiempo de
4

T
muestreo de T s= seg; Siendo el periodo de la señal T=4seg. Considerar la
100


función periódica como f ( t )=∑ g (t−nT ), donde g ( t ) ∃ ∀ t ∈[0 , t]
n=0

Análisis:
- La señal periódica f(t) seria el resultado de una sumatoria de la función g(t)
trasladada en cada momento. Para poder realizar la grafica de f(t) el primer paso
será analizar un solo periodo de la función o mejor dicho g(t).
- Utilizaremos el método para darle forma a la función, de manera que podamos
discretizarla más adelante reemplazando por ‘k T s’, obteniendo la función:

t 1
g ( t ) = μ ( t )− ( t−T ) μ ( t−T )−μ ( t−T )
4 4
t 1
g ( t ) = μ ( t )− ( t−4 ) μ ( t−4 )−μ ( t−4 )
4 4

29
UNIVERSIDAD NACIONAL DE TRUJILLO

- A continuación, expresaremos la función f(t) como una sumatoria de g(t)


trasladado, siendo así que:


f ( t )=∑ g (t−nT )
n=0

- Pero al necesitar nosotros su forma discretizada, reemplazamos ‘t’ por ‘k T s’,


obteniendo por último que la función periódica f(t) discretizada es:


f ( k T s) =∑ g(k T s −4 n)
n=0


1 1
f ( k T s) =∑ ( k T s−4 n)μ ( k T s−4 n ) − ( k T s−4 n−4 ) μ ( k T s−4 n−4 ) −μ ( k T s−4 n−4 )
n=0 4 4

1 1
f ( k T s) =∑ T (k −100 n) μ ( k −100 n )− T s ( k−100 n−100 ) μ ( k−100 n−100 )−μ ( k −100 n−100 )
n=0 4 s 4
- Por ultimo para llevar esto a Matlab simplemente debemos crear un bucle para
‘n’ hasta un valor que querramos y analizar los escalones para saber donde
empieza y acaba cada funcion.

Código en Matlab:

clear all; close all; clc


Ts=4/100; %Periodo de muestreo
k=0:600;
sum=0;
for n=0:5
u=[k>=(100*n)];
f1=(1/4)*Ts*(k-100*n);
u1=[k>=(100*(n+1))];
f2=(1/4)*Ts*(k-100*n-100);
u2=u1;
y=f1.*u-f2.*u1-u2;
sum=y+sum;
end
figure;
stem(k,sum)
grid on
title('Señal discretizada')
xlabel('k')
ylabel('y(k)')

Grafico:

30
UNIVERSIDAD NACIONAL DE TRUJILLO

Gráfica 19. f(kT_s )

8) Como podemos notar, todas las señales que se han evaluado hasta el momento
pueden ser representadas de manera discreta aplicando diferentes tipos de metodos.
Estas señales en manera discreta deben tener un periodo de muestreo pequeño si es
que se quiere representar la señal original lo mas fiel posible, por lo que hay que
tener esto siempre presente en el proceso de discretizacion. Por ultimo cabe recalcar
que llevar una señal discretizada a Matlab desde su ecuacion matematica requiere
un analisis un poco mas elaborado, ya que normalmente hacemos uso de señales
escalon o impulso que Matlab debe interpretar.

PARTE III

31
UNIVERSIDAD NACIONAL DE TRUJILLO

9) Se tiene la siguiente ecuación recursiva. Realizar una solución numérica y ( 0 )=1, si


μ ( k ) es una función escalón.

y ( k )=0.5 y ( k −1 ) + μ ( k )

Análisis:
- Una solución numérica de una ecuación recursiva se obtiene por simple
reemplazo de valores. Para lograr esto en Matlab nos ayudamos de un bucle
pero teniendo en cuenta que el primer valor debe ser puesto a mano porque
depende de un valor inicial y(0).

Código en Matlab:

%9. y(k) = 0.5*y(k-1)+u(k)


% y(0)=1 u(k) funcion escalón
clear all
close all
clc

y0=1;
n=10;
k=1:n;
for i=1:n
if i==1
y(1)=0.5*y0+1;
else
y(i)=0.5*y(i-1)+1;
end
end
plot(k,y)
title('')
figure
stem(k,y)
title('Gráfico de ecuación recursiva.')

Grafico:

32
UNIVERSIDAD NACIONAL DE TRUJILLO

Gráfica 20. Problema iii-9

10) Se tiene la siguiente ecuación recursiva. y ( 0 )=1, y (−1 )=0.5, si μ ( k ) es una función
escalón.

y ( k )=−1.4 y ( k−1 ) +0.7 y ( k −2 )=2 μ ( k )−0.4 μ ( k−2 )

Análisis:

- Aplicamos lo mismo que en el problema anterior. Para lograr esto en Matlab nos
ayudamos de un bucle pero teniendo en cuenta que el primer y el segundo valor
deben ser puestos a mano porque dependen de valores iniciales y(0) y y(1).

Código en Matlab:
%10. y(k)-1.4*y(k-1)+0.7*y(k-2)=2*u(k)-0.4u(k-2) 33
% y(0) = 1, y(-1)=0.5
y0=1;
y_menos1=0.5;
n=40;
UNIVERSIDAD NACIONAL DE TRUJILLO

Grafico:

34
UNIVERSIDAD NACIONAL DE TRUJILLO

Gráfica 21. Stem, solución numerica de Y(k)

11) Se tiene la serie de Fibonacci. 1,1,2,3,5,8,13, 21, …….


La cual se representa mediante la siguiente ecuación recursiva.
f ( k )=f ( k−1 ) + f (k −2)
Desarrollar la solución numérica, solución analítica, y una solución matricial. Datos
iniciales y ( 0 )=1, y ( 1 )=1, graficar respuestas.

a) Solución numérica
Análisis:
- Aplicamos lo mismo que en el problema anterior. Para lograr esto en Matlab nos
ayudamos de un bucle pero teniendo en cuenta que el primer y el segundo valor
deben ser puestos a mano porque dependen de valores iniciales y(0) y y(1).

Código en Matlab:
%a)Numerica:
y0=1;
y1=1;
n=10; 35
k=1:n;
for i=1:n
if i==1
y(1)=y0+y1;
UNIVERSIDAD NACIONAL DE TRUJILLO

Grafico:

Gráfica 22. Secuencia de Fibonnaci.

b) Solución analítica
Análisis:
- Para este método de solución utilizamos un α k tal que f( k )=α k, siendo así que
nuestra ecuación original seria ahora:

f ( k )=f ( k−1 ) + f (k −2)


α k −α k−1−α k−2=0
P ( α ) =α 2 −α −1=0
- De esta nueva ecuación debemos encontrar sus raíces, donde estas son:

1+ √ 5
α 1=
2
1−√ 5
α 2=
2
- Aplicando la propiedad para encontrar la señal discreta se tiene que:

f ( k )=C 1(α 1)k +C 2(α 2)k


- Encontramos con ayuda de los valores iniciales las constantes y por último
nuestra señal discretizada seria:

36
UNIVERSIDAD NACIONAL DE TRUJILLO

k k
1+ √ 5 1− √ 5
f ( k )=0.72361 ( 2 ) +0.27639 ( 2 )
- Esta ecuación simplemente debe ser llevada a Matlab y graficarla.

Código en Matlab:

%b)Analitica:
n=12;
k=1:n;
y(k)=[0.72361*((1+sqrt(5))/2).^k]+[0.27639*((1-
sqrt(5))/2).^k];
figure
stem(k,y)
title('Grafica del metodo Analitico de la secuencia de
Fibonnaci')
xlabel('k')
ylabel('y(k)')
grid on

Grafico:

Gráfica 23. Stem de la secuencia de Fibonnaci.

37
UNIVERSIDAD NACIONAL DE TRUJILLO

c) Solución matricial
Análisis:
- Para este método de solución utilizamos una matriz M k que nos permitirá
encontrar la solución matricial discretizada, para ello primero debemos
encontrar una relación matricial para nuestro f(0) y un f(1), donde:

k
f (k ) f (0)
=0 1
[ ] [ ][ ]
f ( k +1) 1 1 f (1)
- Una vez encontrado nuestro M k debemos encontrar sus valores propios y
autovalores de M, donde:

1+ √ 5
γ 1=
2
1−√ 5
γ 2=
2
- Además, sabemos que su matriz diagonalizada D es:

1+ √ 5

[
D= 2
0

-
0
1−√ 5
2
]
Con ayuda de D, encontraremos M k siendo que L Dk L−1 =M k :
- Por último, tendríamos nuestra matriz que puede ser llevada a Matlab por medio
de un bucle:

f (k ) =M k f (0)
[ ] [ ]
f ( k +1) f (1)

Código en Matlab:

%c)Matricial

n=12;
y(1)=1;
y(2)=1;
k=0:n-1;
M=[0 1; 1 1];
av=eig(M);
L=[1 1;av(1) av(2)];
for i=1:n 38
D=[av(1)^(i-1) 0; 0 av(2)^(i-1) ];
Mk=L*D*inv(L);

y(i)=Mk(1,1)*y(1)+Mk(1,2)*y(2);
UNIVERSIDAD NACIONAL DE TRUJILLO

Grafico:

Gráfica 24. Solución matricial de la serie de Fibonnaci.

12) Convolución de señales. Sea la función g(k) y h(k) 2 funciones discretas.

Se define:
+∞ +∞
y ( k )=g ( k )∗h ( k )= ∑ g ( n ) . h ( k −n )= ∑ h ( n ) . g(k −n)
n=−∞ n=−∞

Considerar funciones causales.

39
UNIVERSIDAD NACIONAL DE TRUJILLO

+∞
y ( k )=∑ g ( n ) . h ( k −n )
n=0

Calcular la convolución de la siguiente señal y plotear


g ( k ) ={ 1,1,1 }
h ( k )={ 1,2,3 }
Análisis:
- Para la convolución de estas dos señales, tenemos que realizar una sumatoria de
su multiplicación, pero con la señal h(k) barriendo por toda la señal g(n), esto se
logra de manera numérica, reemplazando valores de ‘n’ en la sumatoria para
hacerlo mas sencillo, y en Matlab mediante un bucle logramos también esto.

Código en Matlab:

% g(k)={1,1,1} h(k)={1,2,3}
%y(k)=g(k)*h(k).
%Definimos la señal g(k).
g=[1 1 1];
h=[1 2 3];
%Operamos la convolución de las 2 señales.
y=conv(g,h);
%Formación de ejes en tiempo discreto.
n=length(y);
k=0:1:n-1;
%gráficamos convolución.
plot(k,y,'*r')
title('convolución de señales discretas.')
xlabel('k, instántes')
ylabel('y(k)=x(k)*g(k)')
grid on
%...............................................................
......
figure
stem(k,y)
title('convolución de señales discretas (stem)')
xlabel('k, instántes')
ylabel('y(k)=x(k)*g(k)')
grid on

40
UNIVERSIDAD NACIONAL DE TRUJILLO

Grafico:

Gráfica 25. Convolución de señales discretas

13) Convolucionar las siguientes señales: y ( k )=g ( k )∗h (k )

g ( k ) =[−3 4 1 0 4−5 1 ]
h ( k )=[ 1−4 0 21 ]
plotear el resultado.

41
UNIVERSIDAD NACIONAL DE TRUJILLO

Análisis:
- Procedemos de igual manera que en el ejercicio anterior, reemplazando valores
para ‘n’ en la sumatoria y en cuanto Matlab, podemos ayudarnos de la función
‘conv’ para no tener que realizar un bucle, aunque también es otra forma de
llegar al mismo resultado.

Código en Matlab:

%g(k)=[-3 4 1 0 4 -5 1] h(k)=[1 -4 0 2 1]
g =[-3 4 1 0 4 -5 1];
h =[1 -4 0 2 1];
y = conv(g,h);
n = length(y);
k=0:1:n-1;
plot(k,y,'*r')
title('convolución de señales discretas.')
xlabel('k, instántes')
ylabel('y(k)=x(k)*g(k)')
grid on
%.............................................................
........
figure
stem(k,y)
title('convolución de señales discretas (stem)')
xlabel('k, instántes')
ylabel('y(k)=x(k)*g(k)')
grid on

Grafico:

42
UNIVERSIDAD NACIONAL DE TRUJILLO

Gráfica 26. Convolución de señales discretas.

CUESTIONARIO:

1) Obtenga la solución numérica, analítica y matricial para la primera de las siguientes


ecuaciones de recurrencia (solo numérica para el resto), que están sujetas a las
condiciones iniciales que se indican.
a. y ( k +2 )−1.6 y ( k +1 )+ 0.8 y ( k )=0 ; y ( 0 )=0 ; y ( 1 )=1
i. Numérico
Análisis:
- El método de solución numérico para las 3 ecuaciones de recurrencia
simplemente consiste en el reemplazo de valores para ‘k’ y para el caso de
Matlab aplicar un bucle definiendo primero los 2 valores iniciales manualmente
ya que se tienen condiciones iniciales.

Código en Matlab:

%1.a y(k+2)-1.6*y(k+1)+0.8*y(k)=0
%y(0)=0 y(1)=1
y0=0;
y1=1;
n =10;
k=1:n;
y2 = 1.6*y1;
for i=1:n-2 43
y(1)=y1;
y(2)=y2;
if i+2==3
y(i+2)= 1.6*y2-0.8*y1;
UNIVERSIDAD NACIONAL DE TRUJILLO

Grafico:

Gráfica 27. Solución numerica de Y(k)

ii. Analítico
Análisis:
- Como se ha visto anteriormente el método analítico consiste en ayudarnos de
una función auxiliar para llevarlo a una ecuación de la cual encontraremos sus
raíces y se reemplazaran las condiciones iniciales para encontrar sus constantes.
Aplicando todo esto encontramos que nuestra ecuación discretizada es:

44
UNIVERSIDAD NACIONAL DE TRUJILLO

Código en Matlab:

%a.2)Analitica:
clear all; clc;
n=40;
y(1)=0;
y(2)=1;

alfa=[1 -1.6 0.8];


raices=roots(alfa);

k=1:n;
ma=[1 1; raices(1) raices(2)];
c=[y(1); y(2)];

mi=inv(ma)*c;

for i=1:n
y(i)=mi(1).*raices(1)^(i-1)+mi(2).*raices(2)^(i-1);
end
figure
stem(k,real(y),'g')
title('Grafica del metodo Analitico de la secuencia')
xlabel('k')
ylabel('y(k)')
grid on

Grafico:

45
UNIVERSIDAD NACIONAL DE TRUJILLO

Gráfica 28 Método Analítico de la secuencia.

iii. Matricial
Analisis:
Aplicamos el mismo método usado anteriormente.
Código en Matlab:
%a.3)Matricial
clear all; clc;

n=40;
y(1)=0;
y(2)=1;
k=1:n;
M=[0 1; -0.8 1.6];
av=eig(M);
L=[1 1;av(1) av(2)];
for i=1:n
D=[av(1)^(i-1) 0; 0 av(2)^(i-1) ];
Mk=L*D*inv(L);
y(i)=Mk(1,1)*y(1)+Mk(1,2)*y(2);
end
figure
stem(k,real(y),'r')
grid on
title('solucion matricial');
xlabel('k')
ylabel('y(k)')

46
UNIVERSIDAD NACIONAL DE TRUJILLO

Grafico:

Gráfica 29. Solución Metodo Matricial de la secuencia

47
UNIVERSIDAD NACIONAL DE TRUJILLO

b. y ( k +2 )−1.8 y ( k +1 ) +8 y ( k ) =3∗0.6k ; y ( 0 )=1; y ( 1 )=1


Análisis:
- El método de solución numérico para las 3 ecuaciones de recurrencia
simplemente consiste en el reemplazo de valores para ‘k’ y para el caso de
Matlab aplicar un bucle definiendo primero los 2 valores iniciales manualmente
ya que se tienen condiciones iniciales.

Código en Matlab:

%1.b. y(k+2)-1.8*y(k+1)+8*y(k)=3*0.6^(k)
%y(0)=1 y(1)=1
y0=1;
y1=1;
n =10;
k=1:n;
y2 = 3 + 1.8*y1 - 8*y0;
for i=1:n-2
y(1)=y1;
y(2)=y2;
if i+2==3
y(i+2)= (3*0.6^(i))+1.8*y(2)-8*y(1);
else
y(i+2) = (3*0.6^(i))+1.8*y(i+1)-8*y(i);
end
end
plot(k,y,'*r')
title('Gráfica de la solución numérica de Y(k).')
xlabel('k')
ylabel('y(k)')
grid on
figure
stem(k,y)
title('Gráfica Stem, de la solución numérica de Y(k)')
xlabel('k')
ylabel('y(k)')
grid on

48
UNIVERSIDAD NACIONAL DE TRUJILLO

Grafico:

Gráfica 30. Solución numérica

49
UNIVERSIDAD NACIONAL DE TRUJILLO

c. y ( k )−0.692 y ( k −1 )+ 0.16 y ( k−2 )=0.2; y ( 0 ) =0.4 ; y (1 )=−0.2

Análisis:
- El método de solución numérico para las 3 ecuaciones de recurrencia
simplemente consiste en el reemplazo de valores para ‘k’ y para el caso de
Matlab aplicar un bucle definiendo primero los 2 valores iniciales manualmente
ya que se tienen condiciones iniciales.

Código en Matlab:
%1.c. y(k)-0.692*y(k-1)+0.16*y(k-2)=0.2
% y(0)=0.4 y(1)=-0.2
y0=0.4;
y1=-0.2;
Grafico:
n=10;
k=1:n;
for i=1:n
if i==1
y(1) = y1;
else
if i==2
y(i)=0.2+0.692*y(1)-0.16*y0;
else
y(i)=0.2+0.692*y(i-1)-0.16*y(i-2);
end
end
end
plot(k,y,'*r')
title('Gráfica de la solución numérica de Y(k).')
xlabel('k')
ylabel('y(k)')
grid on
figure
stem(k,y)
title('Gráfica Stem, de la solución numérica de Y(k)')
xlabel('k')
ylabel('y(k)')
grid on

50
UNIVERSIDAD NACIONAL DE TRUJILLO

Gráfica 31. Solución numérica

2) Se requiere calcular el área bajo la curva de la siguiente función, usando un método


numérico. Calcule el área bajo esta curva, usando el método de rectángulos inscritos
y el de trapecio, desarrollando una ecuación de recurrencia para cada caso. No haga
la suma de Riemman, el objetivo es calcular una ecuación de recurrencia para cada
caso. Compare el resultado de ambos métodos con la solución exacta. Utilice como
tiempo de muestreo T=0.1.

a. Rectángulos Inscritos:
Análisis:
- El método de solución para este problema será de primero identificar la función
y definir sus límites. Para este caso tenemos que la primera mitad de la función
es una exponencial al cuadrado y la segunda parte es una recta de pendiente
negativa, por lo que podemos definirlo de la siguiente manera:

t 2 , 0 ≤ t<0.5
{
f ( t )= t
0.5− ,0.5 ≤ t< 1
2
- De esta definición simplemente debemos encontrar los valores discretizados,
para un tiempo de muestreo Ts=0.1. Esto lo lograremos mediante un bucle en
Matlab, el cual llenara una matriz de los valores discretizados.

51
UNIVERSIDAD NACIONAL DE TRUJILLO

- Por último, para encontrar el área aproximada por este método, tendremos que a
cada valor discretizado, multiplicarlo por el periodo de muestreo y sumar todos
los datos.

b. Método del trapecio:


Análisis:
Para este método nos ayudaremos de una herramienta de Matlab el cual hace una
aproximación usando del método del trapecio para valores discretos. Usaremos la
función ‘trapz’ y notamos que la aproximación por ambos métodos nos da el mismo
resultado del área bajo la curva
Código en Matlab:

%2.a)Rectangulos inscritos

Ts=0.1;
k=0:Ts:1;
y(1)=0;
for i=2:11
if i<6
y(i)=((i-1)*Ts)^2;
else
y(i)=0.5-((i-1)*Ts)/2;
end
end
stem(k,y)
grid on;
area=0;
areapr=0;
for i=1:11
area=y(i)*Ts;
areapr=area+areapr;
end
areapr %Area aproximada

%2.b)Metodo del trapecio


areatr=trapz(k,y)

Command Window:

52
%3. y(k) -1.7*y(k-1)+0.72*y(k-2)+0.2*y(k-3)=2*u(k)-0.4+u(k-1);
%y(0)=0; y(1)=-1; y(2)=1; u(-1)=0 u(k)=1
y0=1;
UNIVERSIDAD
y1=-1; NACIONAL DE TRUJILLO
y2=1;
n=50;
k=1:n;
uk=1;
for i=1:n
if i==1
y(1)=-1;
else
if i==2
y(2)=1;
else
if i==3Figura 1. Resultado del área aproximada.
y(i)=1.7*y(i-1)-0.72*y(i-2)-0.2*y0+2*uk-0.4+uk;
else
3) Para el sistema: y(i)=1.7*y(i-1)-0.72*y(i-2)-0.2*y(i-3)+2*uk-0.4+uk;
end
y ( k )−1.7 y ( kend
−1 ) +0.72 ( k−2 ) + 0.2∗y ( k−3 )=2∗u ( k )−0.4 +u(k−1)
end
Realice una soluciónnumerica de y(k) con 50 terminos, si las condiciones iniciales
end
plot(k,y,'*r')
son y(0)=0, y(1)=-1 y(2)=1;
title('Gráfica de lau(-1)=0,
solución suponiendo
numéricaque de laY(k).')
entrada u(k)=1, para todo k.
xlabel('k')
Grafique y(k).
ylabel('y(k)')
grid on
figure
stem(k,y)
Análisis:
title('Gráfica Stem, de la solución numérica de Y(k)')
- El método de solución para este problema es el mismo que hemos venido
xlabel('k')
ylabel('y(k)')
gridtrabajando,
on crearemos un bucle en el cual iremos llenando valores de una matriz
para así conseguir la señal discretizada.

Código en Matlab:

53

También podría gustarte