Está en la página 1de 10

Anlisis de Sistemas Lineales empleando Matlab

Carlos Hernn Tobar Arteaga


Departamento de Telecomunicaciones, Universidad del Cauca
Popayn, Colombia
carlost@unicauca.edu.co

Resmen Documento de referencia para Simulacin de la embargo, en Scilab se grafican solo algunos puntos y luego se
asignatura Circuitos 3. unen con lneas. Para esto se utiliza la siguiente instruccin
plot(t,y)
I. SEALES Y SISTEMAS
El objetivo es representar grficamente seales empleando el D. Representacin discreta
software matemtico para clculo cientfico Matlab [1]. La Fig. Es la grfica de nicamente las parejas ordenadas (t, y),
1 muestra la ventana principal (consola) de este software. Las puede realizarse mediante puntos o lneas. Se utiliza
seales son variaciones de magnitudes elctricas, tales como plot2d3(t,y)
voltaje o corriente, dependientes del tiempo. De esta manera, las
grficas a realizar sern de magnitud vs tiempo. Ejemplo 1: Graficar dos ciclos de la seal senoidal
y (t)=10sin (2 1000t) V

T = 1/1000;
t =0:T/20:2*T;
y=10*sin(2*pi*1000*t);
plot(t,y)

10

2
Fig. 1. Consola de comandos Matlab
0

II. DEFINICIONES -2

-4
A. Base de tiempos -6
Representa los instantes de tiempo para los cuales se requiere -8
determinar la magnitud (amplitud) de la seal. Est dado por un
-1 0
vector de tiempo que se define como: 0 0 .2 0 .4 0 .6 0 .8 1 1 .2 1 .4 1 .6 1 .8 2
-3

t = valor inicial : intervalo : valor final; x 10

Para determinar el nmero total de valores de tiempo se III. ALGUNAS OPCIONES DE EDICIN
utiliza la instruccin: Color de la curva representativa de y(t)
length(t) plot(t,y,'r')
Para determinar el valor del tiempo que corresponde a la La opcin 'r' en este caso representa red (rojo)
posicin i se utiliza: Representacin de la curva mediante puntos
t(i) plot(t,y,'r.')
B. Funcin Definicin del ancho de la lnea
plot(t,y,'LineWidth', 3)
Define los valores que toma la variable dependiente segn los Etiquetas ejes x, y, y ttulo de la grfica
valores de la variable independiente. En nuestro caso, la variable xlabel('Tiempo (s)')
independiente es el tiempo (t) y la variable dependiente la ylabel('Amplitud (V)')
amplitud de la seal (y) title('Ejemplo de una seal senoidal')
y = f(t)
Adicin de una grilla (lneas de referencia verticales y
C. Representacin continua de una funcin horizontales)
Es la grfica de las parejas ordenadas (t, y). Dado que las grid
funciones son continuas, t y y toman infinitos valores, sin
Ejemplo 2: Programa completo para graficar dos ciclos de la
seal senoidal y (t)=10sin(2 1000t)V plot(t, y, 'g', 'LineWidth', 2) %
Curva en color verde con grosor 2
clear all, close, clc; % borra axis = [-1.5e-6,1.5e-6, -2.2,2.5];
variables, cierra ventanas abiertas y xlabel('t (s)')
limpia la consola ylabel('Amplitud (V)')
title('Seal coseno');
T = 1/1000; % Periodo de la seal grid
t = 0:T/20:2*T; % Vector de tiempo
y = 10*sin(2*pi*1000*t); % Valores de
amplitud de la seal 2
S eal coseno

plot(t,y,'LineWidth', 3)
xlabel('Tiempo (s)') 1 .5

ylabel('Amplitud (V)')
1
title('Ejemplo de una seal senoidal');
grid 0 .5

A m p lit u d ( V )
0
E je m p lo d e u n a s e a l s e n o id a l
10
-0 .5
8

6 -1

4
-1 .5
2
A m p litu d (V )

-2
0 -2 -1 .5 -1 -0 .5 0 0 .5 1 1 .5 2
t (s ) -6
x 10
-2

-4

-6
IV. FUNCIONES ESPECIALES
-8

-1 0
A. Funciones exponenciales reales
0 0 .2 0 .4 0 .6 0 .8 1 1 .2 1 .4 1 .6 1 .8 2
T ie m p o (s ) -3
x 10

El cdigo del programa anterior puede guardarse en un % Funciones exponenciales reales


archivo con extensin .m (por ejemplo: senal_seno.m) lo cual clear all, close, clc;
facilita su desarrollo.
t = -2 : 0.001 : 2;
Ejemplo 3: funcin coseno
y (t)=2cos (2 1000000t+ /4) V % Exponenciales decrecientes

c = -0.5; % Coeficiente del


exponente
clear all, close, clc; % borra A = 2; % Coeficiente de la
variables, cierra ventanas abiertas y exponencial
limpia la consola y1 = A*exp(c*t); % Funcin
t = -2*10^-6:10^-9:2*10^-6; % subplot(2,2,1);
Base de tiempos plot(t, y1, 'b', 'LineWidth', 2);
T = 10^-6; % xlabel('t (s)')
Periodo de la seal: 10 us ylabel('Amplitud (V)')
f = 1/T; % title('A*exp(c*t); A>0; c<0');
Frecuencia: 1 MHz grid
w = 2*pi*f; %
Frecuencia angular c = 0.5; % Coeficiente del
theta = pi/4; % exponente
ngulo de fase (o desfase) A = -2; % Coeficiente de la
A = 2; % exponencial
Amplitud: 2 V y1 = A*exp(c*t); % Funcin
y = A*cos(w*t + theta); % subplot(2,2,2);
Seal
plot(t, y1, 'b', 'LineWidth', 2); t = -3*10^-3 : 10^-5 : 3*10^-3;
xlabel('t (s)')
ylabel('Amplitud (V)') Am = 0.5; % Mdulo de la
title('A*exp(c*t); A<0; c>0'); amplitud compleja
grid fase = pi/4; % Fase de la amplitud
compleja
% Exponenciales crecientes A = Am*exp(i*fase); % Amplitud compleja
sigma = 0.5*10^3; % Parte real del
c = 0.5; % Coeficiente del coeficiente del exponente
exponente T = 10^-3; % Periodo de la
A = 2; % Coeficiente de la funcin
exponencial f = 1/T; % Frecuencia
y1 = A*exp(c*t); % Funcin w = 2*pi*f; % Frecuencia angular
s = sigma + i*w; % Coeficiente del
subplot(2,2,3); exponente (frecuencia compleja)
plot(t, y1, 'b', 'LineWidth', 2); y = A*exp(s*t); % Funcin
xlabel('t (s)')
ylabel('Amplitud (V)') % Parte real
title('A*exp(c*t); A>0; c>0'); subplot(2,1,1);
grid plot(t, real(y), 'b', 'LineWidth', 2);
hold on
c = -0.5; % Coeficiente del plot(t, abs(y), 'r'); % Envolvente de la
exponente parte superior (en rojo)
A = -2; % Coeficiente de la hold on
exponencial plot(t, -abs(y), 'r'); % Envolvente de la
y1 = A*exp(c*t); % Funcin parte inferior (en rojo)
xlabel('t (s)')
subplot(2,2,4); ylabel('Parte real')
plot(t, y1, 'b', 'LineWidth', 2); title('Exponencial compleja');
xlabel('t (s)') grid
ylabel('Amplitud (V)')
title('A*exp(c*t); A<0; c<0'); % Parte imaginaria
grid subplot(2,1,2);
plot(t, imag(y), 'b', 'LineWidth', 2);
hold on
A * e x p (c * t); A > 0 ; c < 0 A *e x p (c *t); A < 0 ; c > 0
6 0 plot(t, abs(y), 'r'); % Envolvente de la
parte superior (en rojo)
4 -2 hold on
A m p lit u d (V )

A m p lit u d (V )

plot(t, -abs(y), 'r'); % Envolvente de la


2 -4 parte inferior (en rojo)
xlabel('t (s)')
0
-2 -1 0 1 2
-6
-2 -1 0 1 2
ylabel('Parte imaginaria')
t (s ) t (s ) title('Exponencial compleja');
A * e x p (c * t); A > 0 ; c > 0 A *e x p (c *t); A < 0 ; c < 0 grid
6 0

4 -2
A m p lit u d (V )

A m p lit u d (V )

2 -4

0 -6
-2 -1 0 1 2 -2 -1 0 1 2
t (s ) t (s )

B. Funciones exponenciales complejas

% Funcin exponencial compleja (partes


real e imaginaria)
clear all, close, clc;
ylabel('Parte real (sigma > 0)')
E x p o n e n c ia l c o m p le ja title('Exponencial creciente');
4 grid
2
y = A*exp(sigma*t).*sin(w*t+fase);
P a rte re a l

0 subplot(2,2,2);
plot(t, y, 'b', 'LineWidth', 2);
-2
hold on
-4 plot(t, env, 'r'); % Envolvente de la
-3 -2 -1 0 1 2 3 parte superior (en rojo)
t (s ) -3
x 10 hold on
E x p o n e n c ia l c o m p le ja
4 plot(t, -env, 'r'); % Envolvente de la
parte inferior (en rojo)
2 xlabel('t (s)')
P a rt e im a g in a ria

0
ylabel('Parte imaginaria (sigma > 0)')
title('Exponencial creciente');
-2 grid
-4
-3 -2 -1 0 1 2 3 % Exponenciales amortiguados
t (s )
x 10
-3 sigma = -0.5*10^3;
env = A*exp(sigma*t);
y = A*exp(sigma*t).*cos(w*t+fase);
subplot(2,2,3);
C. Influencia de los parmetros en la funcin exponencial
plot(t, y, 'b', 'LineWidth', 2);
compleja
hold on
plot(t, env, 'r'); % Envolvente de la
% Funcin exponencial compleja (Influencia parte superior (en rojo)
de los parmetros) hold on
clear all, close, clc; plot(t, -env, 'r'); % Envolvente de la
parte inferior (en rojo)
t = -3*10^-3 : 10^-5 : 3*10^-3; xlabel('t (s)')
ylabel('Parte real (sigma < 0)')
Am = 0.5; % Mdulo de la title('Exponencial amortiguada');
amplitud compleja grid
fase = 0; % Fase de la amplitud
compleja y = A*exp(sigma*t).*sin(w*t+fase);
A = Am*exp(i*fase); % Amplitud compleja subplot(2,2,4);
sigma = 0.5*10^3; % Parte real del plot(t, y, 'b', 'LineWidth', 2);
coeficiente del exponente hold on
T = 10^-3; % Periodo de la plot(t, env, 'r'); % Envolvente de la
funcin parte superior (en rojo)
f = 1/T; % Frecuencia hold on
w = 2*pi*f; % Frecuencia angular plot(t, -env, 'r'); % Envolvente de la
s = sigma + i*w; % Coeficiente del parte inferior (en rojo)
exponente (frecuencia compleja) xlabel('t (s)')
env = A*exp(sigma*t); ylabel('Parte imaginaria (sigma < 0)')
y = A*exp(sigma*t).*cos(w*t+fase); % title('Exponencial amortiguada');
Funcin grid

% Exponenciales crecientes
subplot(2,2,1);
plot(t, y, 'b', 'LineWidth', 2);
hold on
plot(t, env, 'r'); % Envolvente de la
parte superior (en rojo)
hold on
plot(t, -env, 'r'); % Envolvente de la
parte inferior (en rojo)
xlabel('t (s)')
E x p o n e n c ia l c re c ie n t e E x p o n e n c ia l c re c ie n t e E. Pulso triangular
4 4

P a rt e im a g in a ria (s ig m a > 0 )
P a rt e re a l (s ig m a > 0 )

2 2 % Funcin pulso triangular


0 0
clear all, close, clc;

-2 -2 t = -4 : 0.001 : 4;
-4 -4
y = zeros(1, length(t));
-4 -2 0 2 4 -4 -2 0 2 4 A = 1; % Amplitud
t (s ) t (s )
x 10
-3
x 10
-3
del pulso
E x p o n e n c ia l a m o r t ig u a d a E x p o n e n c ia l a m o r t ig u a d a
4 P a rt e im a g in a ria (s ig m a < 0 ) 4 T = 2; % Duracin
del pulso
P a rt e re a l (s ig m a < 0 )

2 2
rango = find((t >= -T/2) & (t <= T/2));
0 0 % Rango de valores en los que la funcin
vale A=1
-2 -2 y(rango) = A*(1-abs(t(rango)/(T/2)));
-4 -4
-4 -2 0 2 4 -4 -2 0 2 4 plot(t, y, 'b', 'LineWidth', 2);
t (s ) -3 t (s ) -3
x 10 x 10 xlabel('t (s)')
ylabel('Amplitud (V)')
title('Pulso triangular');
D. Pulso rectangular grid

% Funcin pulso rectangular


clear all, close, clc; 1
P u ls o t r ia n g u la r

0 .9
t = -4 : 0.001 : 4; 0 .8
y = zeros(1, length(t));
0 .7
A = 1; % Amplitud
del pulso 0 .6
A m p lit u d (V )

T = 2; % Duracin 0 .5

del pulso 0 .4

rango = find((t >= -T/2) & (t <= T/2)); 0 .3

% Rango de valores en los que la funcin 0 .2


vale A=1 0 .1
y(rango) = A;
0
-4 -3 -2 -1 0 1 2 3 4
t (s )
plot(t, y, 'b', 'LineWidth', 2);
xlabel('t (s)')
ylabel('Amplitud (V)')
F. Funcin escaln
title('Pulso rectangular');
grid
% Funcin escaln
clear all, close, clc;
P u ls o re c t a n g u la r
1
t = -4 : 0.001 : 4;
0 .9 y = zeros(1, length(t));
0 .8 A = 1; % Amplitud
0 .7
T = 2; % Tiempo de
discontinuidad
0 .6
rango = find(t >= T); % Rango de
A m p lit u d (V )

0 .5 valores en los que la funcin vale A=1


0 .4 y(rango) = A;
0 .3
plot(t, y, 'b', 'LineWidth', 2);
0 .2
xlabel('t (s)')
0 .1 ylabel('Amplitud (V)')
0 title('Escaln u(t-T)');
-4 -3 -2 -1 0 1 2 3 4
t (s ) grid
ylabel('Amplitud (V)')
1
E s c a l n u (t-T )
title('Funcin combinada');
0 .9 grid
0 .8

0 .7 end
0 .6
A m p litu d (V )

0 .5
function x = funccomb(t)
0 .4
n = length(t);
0 .3
x = zeros(1,n);
0 .2
i = find(t<0);
0 .1
x(i) = 0;
0
i = find(t>0 & t<1);
-4 -3 -2 -1 0
t (s )
1 2 3 4
x(i) = 1 - exp(-t(i)); % Primera
funcin
i = find(t>=1);
G. Funcin signo x(i) = -exp(-t(i)) + exp(-t(i)+1);
% Segunda funcin
end
% Funcin signo
clear all, close, clc;
F u n c i n c o m b in a d a
0 .7
t = -4 : 0.001 : 4;
y = zeros(1, length(t)); 0 .6

A = 1; % Amplitud
y = A*sign(t); 0 .5

0 .4
plot(t, y, 'b', 'LineWidth', 2);
A m p lit u d ( V )

xlabel('t (s)')
0 .3
ylabel('Amplitud (V)')
title('Funcin signo'); 0 .2
grid
0 .1

0
-3 -2 -1 0 1 2 3
t (s )
F u n c i n s ig n o
1

0 .8

0 .6 I. Partes par e impar de una funcin


0 .4

0 .2
% Partes par e impar de una funcin
A m p lit u d (V )

0
function principal()
-0 .2
clear all, close, clc;
-0 .4

-0 .6
t = -3 : 0.001 : 3;
-0 .8

y = funccomb(t) + 0.02; %
-1
-4 -3 -2 -1 0 1 2 3 4
t (s )
Funcin original

plot(t, y, 'k', 'LineWidth', 2);


H. Funcin combinada
hold on
xlabel('t (s)')
% Funcin combinada ylabel('Amplitud (V)')
function principal() title('Partes par e impar de una
funcin');
clear all, close, clc; grid
t = -3 : 0.001 : 3;
y = funccomb(t); t2 = -t;
plot(t, y, 'b', 'LineWidth', 2); y2 = funccomb(t2);
xlabel('t (s)') ypar = 0.005 + (y+y2)/2; % Parte par
plot(t, ypar, 'r', 'LineWidth', 2); xlabel('t (s)')
hold on ylabel('Amplitud (V)')
yimpar = (y-y2)/2 -0.005; % Parte impar title('Funcin original');
plot(t, yimpar, 'g', 'LineWidth', 2); grid
hold on
ytotal = ypar + yimpar - 0.02; t2 = -t;
plot(t, ytotal, 'b', 'LineWidth', 2); y = funccomb(t2);
subplot(3, 2, 2);
end plot(t, y, 'b', 'LineWidth', 2);
xlabel('t (s)')
function x = funccomb(t) ylabel('Amplitud (V)')
n = length(t); title('Reflexin');
x = zeros(1,n); grid
i = find(t<0);
x(i) = 0; V = 0.5;
i = find(t>0 & t<1); y = V*funccomb(t);
x(i) = 1 - exp(-t(i)); % Primera subplot(3, 2, 3);
funcin plot(t, y, 'b', 'LineWidth', 2);
i = find(t>=1); xlabel('t (s)')
x(i) = -exp(-t(i)) + exp(-t(i)+1); % ylabel('Amplitud (V)')
Segunda funcin title('Escalado y');
end grid

H = 2;
P a r t e s p a r e im p a r d e u n a fu n c i n t2 = H*t;
1 y = funccomb(t2);
subplot(3, 2, 4);
0 .8 plot(t, y, 'b', 'LineWidth', 2);
xlabel('t (s)')
0 .6 ylabel('Amplitud (V)')
title('Escalado t');
0 .4 grid
A m p lit u d (V )

0 .2 T = 1;
t2 = t+T;
0
y = funccomb(t2);
subplot(3, 2, 5);
plot(t, y, 'b', 'LineWidth', 2);
-0 .2
xlabel('t (s)')
ylabel('Amplitud (V)')
-0 .4
-3 -2 -1 0 1 2 3 title('Desplazamiento');
t (s ) grid

T = 1;
J. Reflexin, desplazamiento y escalado de una funcin V = 0.5;
H = 2;
% Operaciones con una funcin t2 = H*(-(t+T));
y = V*funccomb(t2);
function principal() subplot(3, 2, 6);
plot(t, y, 'b', 'LineWidth', 2);
clear all, close, clc; xlabel('t (s)')
ylabel('Amplitud (V)')
t = -3 : 0.001 : 3; title('Combinacin');
grid
y = funccomb(t); % Funcin
original end

subplot(3, 2, 1); function x = funccomb(t)


plot(t, y, 'b', 'LineWidth', 2); n = length(t);
x = zeros(1,n);
i = find(t<0); n = 0; % Nmero de periodos
x(i) = 0; para t < 0
i = find(t>0 & t<1); while n*T > tmin
x(i) = 1 - exp(-t(i)); % Primera n = n-1;
funcin end
i = find(t>=1); tc1 = (n:0)*T; % Instantes
x(i) = -exp(-t(i)) + exp(-t(i)+1); centrales de los pulsos
% Segunda funcin
end m = 1; % Nmero de periodos
para t > 0
while m*T < tmax
F u n c i n o r ig in a l R e fl e x i n m = m+1;
1 1 end
tc2 = (0:m)*T; % Instantes
centrales de los pulsos
0 .5 0 .5
A m p l it u d ( V )
A m p litu d (V )

tc = [tc1 tc2];
0 0
-4 -2 0 2 4 -4 -2 0 2 4
k = 1
t (s ) t (s ) while k <= length(tc)
E s c a la d o y E s c a la d o t rango = find((t >= tc(k) - P/2) & (t
0 .4 1 <= tc(k)+ P/2));
y(rango) = A;
0 .2 0 .5 k = k+1;
A m p l it u d ( V )
A m p litu d (V )

end
0 0
-4 -2 0 2 4 -4 -2 0 2 4 plot(t, y, 'b', 'LineWidth', 2);
t (s ) t (s ) xlabel('t (s)')
D e s p la z a m ie n to C o m b in a c i n ylabel('Amplitud (V)')
1 0 .4 title('Tren de pulsos rectangulares');
grid
0 .5 0 .2
A m p l it u d ( V )
A m p litu d (V )

T re n d e p u ls o s re c t a n g u la r e s
1
0 0
-4 -2 0 2 4 -4 -2 0 2 4 0 .9

t (s ) t (s ) 0 .8

0 .7

0 .6
A m p lit u d ( V )

K. Funciones peridicas 0 .5

0 .4

% Funciones peridicas 0 .3
% Tren de pulsos rectangulares
clear all, close, clc; 0 .2

0 .1
A = 1; % Amplitud
0
P = 2; % Duracion del pulso -1 5 -1 0 -5 0 5 10 15
T = 6; % Periodo t (s )

tmin = -7*P;
tmax = 7*P; V. EJERCICIOS PROPUESTOS
pasos = (tmax - tmin)/10000;
t = tmin : pasos : tmax;
Grafique las seales
y = zeros(1, length(t)); % y 1 (t)=5,09 sin(2 1000t)V
Anula la funcin y 2 (t)=1,69sin (2 3000t)V
y 3 (t)=1,02 sin (2 5000t) V
y 4 (t )=0,73 sin( 2 7000t)V
y 5 (t)=0,57sin (2 9000t)V
Grafique la seal
y= y 1+ y 2+ y3 + y 4+ y 5
Responda las siguientes preguntas
A qu seal que conoce se parece la seal y?
Qu relacin encuentra entre las seales?
Escribir el cdigo que permita obtener la siguiente
figura

Escribir el cdigo que permita obtener la siguiente


figura

Escribir el cdigo que permita obtener la siguiente


figura

Escribir el cdigo que permita obtener las siguientes


figuras

Escribir el cdigo que permita obtener la siguiente


figura

Nota: Los valores de amplitudes y periodos pueden ser


definidos arbitrariamiente.
REFERENCES
[1] MathWorks, Matlab The Languaje of Technical Computing.
http://www.mathworks.com/products/matlab/

También podría gustarte