Vous êtes sur la page 1sur 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
asignatura Circuitos 3.

I. SEALES Y SISTEMAS
El objetivo es representar grficamente seales empleando el
software matemtico para clculo cientfico Matlab [1]. La Fig.
1 muestra la ventana principal (consola) de este software. Las
seales son variaciones de magnitudes elctricas, tales como
voltaje o corriente, dependientes del tiempo. De esta manera, las
grficas a realizar sern de magnitud vs tiempo.

embargo, en Scilab se grafican solo algunos puntos y luego se


unen con lneas. Para esto se utiliza la siguiente instruccin
plot(t,y)
D. Representacin discreta
Es la grfica de nicamente las parejas ordenadas (t, y),
puede realizarse mediante puntos o lneas. Se utiliza
plot2d3(t,y)
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
8
6
4
2

Fig. 1. Consola de comandos Matlab

II. DEFINICIONES
A. Base de tiempos
Representa los instantes de tiempo para los cuales se requiere
determinar la magnitud (amplitud) de la seal. Est dado por un
vector de tiempo que se define como:
t = valor inicial : intervalo : valor final;
Para determinar el nmero total de valores de tiempo se
utiliza la instruccin:
length(t)
Para determinar el valor del tiempo que corresponde a la
posicin i se utiliza:
t(i)
B. Funcin
Define los valores que toma la variable dependiente segn los
valores de la variable independiente. En nuestro caso, la variable
independiente es el tiempo (t) y la variable dependiente la
amplitud de la seal (y)
y = f(t)
C. Representacin continua de una funcin
Es la grfica de las parejas ordenadas (t, y). Dado que las
funciones son continuas, t y y toman infinitos valores, sin

0
-2
-4
-6
-8
-1 0

0 .2

0 .4

0 .6

0 .8

1 .2

1 .4

1 .6

1 .8

2
x 10

-3

III. ALGUNAS OPCIONES DE EDICIN


Color de la curva representativa de y(t)
plot(t,y,'r')
La opcin 'r' en este caso representa red (rojo)
Representacin de la curva mediante puntos
plot(t,y,'r.')
Definicin del ancho de la lnea
plot(t,y,'LineWidth', 3)
Etiquetas ejes x, y, y ttulo de la grfica
xlabel('Tiempo (s)')
ylabel('Amplitud (V)')
title('Ejemplo de una seal senoidal')
Adicin de una grilla (lneas de referencia verticales y
horizontales)
grid

Ejemplo 2: Programa completo para graficar dos ciclos de la


seal senoidal y (t)=10sin(2 1000t)V
clear all, close, clc;
% borra
variables, cierra ventanas abiertas y
limpia la consola
T = 1/1000; % Periodo de la seal
t = 0:T/20:2*T; % Vector de tiempo
y = 10*sin(2*pi*1000*t); % Valores de
amplitud de la seal
plot(t,y,'LineWidth', 3)
xlabel('Tiempo (s)')
ylabel('Amplitud (V)')
title('Ejemplo de una seal senoidal');
grid

plot(t, y, 'g', 'LineWidth', 2)


Curva en color verde con grosor 2
axis = [-1.5e-6,1.5e-6, -2.2,2.5];
xlabel('t (s)')
ylabel('Amplitud (V)')
title('Seal coseno');
grid

S eal coseno
2
1 .5
1

A m p lit u d ( V )

0 .5

E je m p lo d e u n a s e a l s e n o id a l
10

0
-0 .5

-1

A m p litu d (V )

-1 .5

-2
0

-2

-1 .5

-1

-0 .5

0
t (s )

0 .5

1 .5

-2

2
x 10

-6

-4

IV. FUNCIONES ESPECIALES

-6
-8
-1 0

A. Funciones exponenciales reales


0

0 .2

0 .4

0 .6

0 .8

1
1 .2
T ie m p o (s )

1 .4

1 .6

1 .8

2
x 10

-3

El cdigo del programa anterior puede guardarse en un


archivo con extensin .m (por ejemplo: senal_seno.m) lo cual
facilita su desarrollo.
Ejemplo 3: funcin coseno

c = -0.5;
exponente
A = 2;
exponencial
y1 = A*exp(c*t);

clear all, close, clc;


% borra
variables, cierra ventanas abiertas y
limpia la consola

y = A*cos(w*t + theta);
Seal

t = -2 : 0.001 : 2;
% Exponenciales decrecientes

y (t)=2cos (2 1000000t+ /4) V

t = -2*10^-6:10^-9:2*10^-6;
Base de tiempos
T = 10^-6;
Periodo de la seal: 10 us
f = 1/T;
Frecuencia: 1 MHz
w = 2*pi*f;
Frecuencia angular
theta = pi/4;
ngulo de fase (o desfase)
A = 2;
Amplitud: 2 V

% Funciones exponenciales reales


clear all, close, clc;

%
%
%
%
%
%
%

% Coeficiente del
% Coeficiente de la
% Funcin

subplot(2,2,1);
plot(t, y1, 'b', 'LineWidth', 2);
xlabel('t (s)')
ylabel('Amplitud (V)')
title('A*exp(c*t); A>0; c<0');
grid
c = 0.5;
exponente
A = -2;
exponencial
y1 = A*exp(c*t);
subplot(2,2,2);

% Coeficiente del
% Coeficiente de la
% Funcin

plot(t, y1, 'b', 'LineWidth', 2);


xlabel('t (s)')
ylabel('Amplitud (V)')
title('A*exp(c*t); A<0; c>0');
grid

t = -3*10^-3 : 10^-5 : 3*10^-3;

% Exponenciales crecientes
c = 0.5;
exponente
A = 2;
exponencial
y1 = A*exp(c*t);

% Coeficiente del
% Coeficiente de la
% Funcin

subplot(2,2,3);
plot(t, y1, 'b', 'LineWidth', 2);
xlabel('t (s)')
ylabel('Amplitud (V)')
title('A*exp(c*t); A>0; c>0');
grid
c = -0.5;
exponente
A = -2;
exponencial
y1 = A*exp(c*t);

% Coeficiente del
% Coeficiente de la
% Funcin

subplot(2,2,4);
plot(t, y1, 'b', 'LineWidth', 2);
xlabel('t (s)')
ylabel('Amplitud (V)')
title('A*exp(c*t); A<0; c<0');
grid

-2

A m p lit u d (V )

A m p lit u d (V )

A *e x p (c *t); A < 0 ; c > 0


0

-2

-1

0
1
t (s )
A * e x p (c * t); A > 0 ; c > 0

-4

-6

-2

A m p lit u d (V )

A m p lit u d (V )

A * e x p (c * t); A > 0 ; c < 0


6

-2

-1

0
t (s )

-2

-1

0
1
t (s )
A *e x p (c *t); A < 0 ; c < 0

-4

-6

-2

-1

0
t (s )

B. Funciones exponenciales complejas


% Funcin exponencial compleja (partes
real e imaginaria)
clear all, close, clc;

Am = 0.5;
% Mdulo de la
amplitud compleja
fase = pi/4;
% Fase de la amplitud
compleja
A = Am*exp(i*fase); % Amplitud compleja
sigma = 0.5*10^3;
% Parte real del
coeficiente del exponente
T = 10^-3;
% Periodo de la
funcin
f = 1/T;
% Frecuencia
w = 2*pi*f;
% Frecuencia angular
s = sigma + i*w;
% Coeficiente del
exponente (frecuencia compleja)
y = A*exp(s*t);
% Funcin
% Parte real
subplot(2,1,1);
plot(t, real(y), 'b', 'LineWidth', 2);
hold on
plot(t, abs(y), 'r'); % Envolvente de la
parte superior (en rojo)
hold on
plot(t, -abs(y), 'r'); % Envolvente de la
parte inferior (en rojo)
xlabel('t (s)')
ylabel('Parte real')
title('Exponencial compleja');
grid
% Parte imaginaria
subplot(2,1,2);
plot(t, imag(y), 'b', 'LineWidth', 2);
hold on
plot(t, abs(y), 'r'); % Envolvente de la
parte superior (en rojo)
hold on
plot(t, -abs(y), 'r'); % Envolvente de la
parte inferior (en rojo)
xlabel('t (s)')
ylabel('Parte imaginaria')
title('Exponencial compleja');
grid

ylabel('Parte real (sigma > 0)')


title('Exponencial creciente');
grid

E x p o n e n c ia l c o m p le ja
4

P a rte re a l

2
0
-2
-4

-3

-2

-1

0
t (s )

3
x 10

-3

E x p o n e n c ia l c o m p le ja
4

P a rt e im a g in a ria

2
0
-2
-4

-3

-2

-1

0
t (s )

3
x 10

-3

C. Influencia de los parmetros en la funcin exponencial


compleja
% Funcin exponencial compleja (Influencia
de los parmetros)
clear all, close, clc;
t = -3*10^-3 : 10^-5 : 3*10^-3;
Am = 0.5;
% Mdulo de la
amplitud compleja
fase = 0;
% Fase de la amplitud
compleja
A = Am*exp(i*fase); % Amplitud compleja
sigma = 0.5*10^3;
% Parte real del
coeficiente del exponente
T = 10^-3;
% Periodo de la
funcin
f = 1/T;
% Frecuencia
w = 2*pi*f;
% Frecuencia angular
s = sigma + i*w;
% Coeficiente del
exponente (frecuencia compleja)
env = A*exp(sigma*t);
y = A*exp(sigma*t).*cos(w*t+fase);
%
Funcin
% 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)')

y = A*exp(sigma*t).*sin(w*t+fase);
subplot(2,2,2);
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)')
ylabel('Parte imaginaria (sigma > 0)')
title('Exponencial creciente');
grid
% Exponenciales amortiguados
sigma = -0.5*10^3;
env = A*exp(sigma*t);
y = A*exp(sigma*t).*cos(w*t+fase);
subplot(2,2,3);
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)')
ylabel('Parte real (sigma < 0)')
title('Exponencial amortiguada');
grid
y = A*exp(sigma*t).*sin(w*t+fase);
subplot(2,2,4);
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)')
ylabel('Parte imaginaria (sigma < 0)')
title('Exponencial amortiguada');
grid

0
-2

-4

-2

0
t (s )

x 10
E x p o n e n c ia l a m o r t ig u a d a
P a rt e re a l (s ig m a < 0 )

4
2
0
-2
-4

-4

-2

0
t (s )

4
x 10

% Funcin pulso triangular


clear all, close, clc;

2
0
-2
-4

-4

-2

-3

0
t (s )

0
t (s )

x 10
E x p o n e n c ia l a m o r t ig u a d a
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 )

-4

E. Pulso triangular

E x p o n e n c ia l c re c ie n t e
P a rt e im a g in a ria (s ig m a > 0 )

E x p o n e n c ia l c re c ie n t e
4

-3

4
2
0
-2
-4

-4

-2

-3

4
x 10

-3

D. Pulso rectangular

t = -4 : 0.001 : 4;
y = zeros(1, length(t));
A = 1;
% Amplitud
del pulso
T = 2;
% Duracin
del pulso
rango = find((t >= -T/2) & (t <= T/2));
% Rango de valores en los que la funcin
vale A=1
y(rango) = A*(1-abs(t(rango)/(T/2)));
plot(t, y, 'b', 'LineWidth', 2);
xlabel('t (s)')
ylabel('Amplitud (V)')
title('Pulso triangular');
grid

% Funcin pulso rectangular


clear all, close, clc;

P u ls o t r ia n g u la r
1
0 .9
0 .8
0 .7

% Amplitud
% Duracin
<= T/2));
la funcin

A m p lit u d (V )

t = -4 : 0.001 : 4;
y = zeros(1, length(t));
A = 1;
del pulso
T = 2;
del pulso
rango = find((t >= -T/2) & (t
% Rango de valores en los que
vale A=1
y(rango) = A;

0 .6
0 .5
0 .4
0 .3
0 .2
0 .1
0

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


xlabel('t (s)')
ylabel('Amplitud (V)')
title('Pulso rectangular');
grid

-4

-3

-2

-1

0
t (s )

F. Funcin escaln
% Funcin escaln
clear all, close, clc;

P u ls o re c t a n g u la r

t = -4 : 0.001 : 4;
y = zeros(1, length(t));
A = 1;
% Amplitud
T = 2;
% Tiempo de
discontinuidad
rango = find(t >= T);
% Rango de
valores en los que la funcin vale A=1
y(rango) = A;

1
0 .9
0 .8
0 .7

A m p lit u d (V )

0 .6
0 .5
0 .4
0 .3
0 .2
0 .1
0

-4

-3

-2

-1

0
t (s )

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


xlabel('t (s)')
ylabel('Amplitud (V)')
title('Escaln u(t-T)');
grid

ylabel('Amplitud (V)')
title('Funcin combinada');
grid

E s c a l n u (t-T )
1
0 .9
0 .8

end

A m p litu d (V )

0 .7
0 .6
0 .5
0 .4
0 .3
0 .2
0 .1
0

-4

-3

-2

-1

0
t (s )

G. Funcin signo
% Funcin signo
clear all, close, clc;

function x = funccomb(t)
n = length(t);
x = zeros(1,n);
i = find(t<0);
x(i) = 0;
i = find(t>0 & t<1);
x(i) = 1 - exp(-t(i));
% Primera
funcin
i = find(t>=1);
x(i) = -exp(-t(i)) + exp(-t(i)+1);
% Segunda funcin
end
F u n c i n c o m b in a d a
0 .7

t
y
A
y

=
=
=
=

-4 : 0.001 : 4;
zeros(1, length(t));
1;
A*sign(t);

0 .6

% Amplitud
0 .5

A m p lit u d ( V )

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


xlabel('t (s)')
ylabel('Amplitud (V)')
title('Funcin signo');
grid

0 .4

0 .3

0 .2

0 .1

-3

-2

-1

0
t (s )

F u n c i n s ig n o
1
0 .8

I. Partes par e impar de una funcin

0 .6
0 .4

A m p lit u d (V )

0 .2

% Partes par e impar de una funcin


function principal()
clear all, close, clc;

0
-0 .2
-0 .4
-0 .6

t = -3 : 0.001 : 3;

-0 .8
-1

-4

-3

-2

-1

0
t (s )

H. Funcin combinada
% Funcin combinada
function principal()
clear all, close, clc;
t = -3 : 0.001 : 3;
y = funccomb(t);
plot(t, y, 'b', 'LineWidth', 2);
xlabel('t (s)')

y = funccomb(t) + 0.02;
Funcin original

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


hold on
xlabel('t (s)')
ylabel('Amplitud (V)')
title('Partes par e impar de una
funcin');
grid
t2 = -t;
y2 = funccomb(t2);
ypar = 0.005 + (y+y2)/2;

% Parte par

plot(t, ypar, 'r', 'LineWidth', 2);


hold on
yimpar = (y-y2)/2 -0.005;
% Parte impar
plot(t, yimpar, 'g', 'LineWidth', 2);
hold on
ytotal = ypar + yimpar - 0.02;
plot(t, ytotal, 'b', 'LineWidth', 2);
end
function x = funccomb(t)
n = length(t);
x = zeros(1,n);
i = find(t<0);
x(i) = 0;
i = find(t>0 & t<1);
x(i) = 1 - exp(-t(i));
% Primera
funcin
i = find(t>=1);
x(i) = -exp(-t(i)) + exp(-t(i)+1);
Segunda funcin
end

P a r t e s p a r e im p a r d e u n a fu n c i n

0 .8

A m p lit u d (V )

0 .6

0 .4

0 .2

-0 .2

-3

-2

-1

0
t (s )

J. Reflexin, desplazamiento y escalado de una funcin


% Operaciones con una funcin
function principal()
clear all, close, clc;
t = -3 : 0.001 : 3;
y = funccomb(t);
original

% Funcin

subplot(3, 2, 1);
plot(t, y, 'b', 'LineWidth', 2);

t2 = -t;
y = funccomb(t2);
subplot(3, 2, 2);
plot(t, y, 'b', 'LineWidth', 2);
xlabel('t (s)')
ylabel('Amplitud (V)')
title('Reflexin');
grid
V = 0.5;
y = V*funccomb(t);
subplot(3, 2, 3);
plot(t, y, 'b', 'LineWidth', 2);
xlabel('t (s)')
ylabel('Amplitud (V)')
title('Escalado y');
grid
H = 2;
t2 = H*t;
y = funccomb(t2);
subplot(3, 2, 4);
plot(t, y, 'b', 'LineWidth', 2);
xlabel('t (s)')
ylabel('Amplitud (V)')
title('Escalado t');
grid

-0 .4

xlabel('t (s)')
ylabel('Amplitud (V)')
title('Funcin original');
grid

T = 1;
t2 = t+T;
y = funccomb(t2);
subplot(3, 2, 5);
plot(t, y, 'b', 'LineWidth', 2);
xlabel('t (s)')
ylabel('Amplitud (V)')
title('Desplazamiento');
grid
T = 1;
V = 0.5;
H = 2;
t2 = H*(-(t+T));
y = V*funccomb(t2);
subplot(3, 2, 6);
plot(t, y, 'b', 'LineWidth', 2);
xlabel('t (s)')
ylabel('Amplitud (V)')
title('Combinacin');
grid
end
function x = funccomb(t)
n = length(t);

x = zeros(1,n);
i = find(t<0);
x(i) = 0;
i = find(t>0 & t<1);
x(i) = 1 - exp(-t(i));
% Primera
funcin
i = find(t>=1);
x(i) = -exp(-t(i)) + exp(-t(i)+1);
% Segunda funcin
end

R e fl e x i n

0 .5

0 .5

-4

-2

0
2
t (s )
E s c a la d o y

A m p l it u d ( V )

0 .2

0 .5

-4

-2

0
2
t (s )
D e s p la z a m ie n to

A m p l it u d ( V )

0 .4

0 .4

0 .5

0 .2

-4

-2

0
t (s )

A m p l it u d ( V )

A m p litu d (V )

A m p litu d (V )

A m p litu d (V )

F u n c i n o r ig in a l
1

n = 0;
% Nmero de periodos
para t < 0
while n*T > tmin
n = n-1;
end
tc1 = (n:0)*T;
% Instantes
centrales de los pulsos
m = 1;
% Nmero de periodos
para t > 0
while m*T < tmax
m = m+1;
end
tc2 = (0:m)*T;
% Instantes
centrales de los pulsos
tc = [tc1 tc2];

-4

-2

0
2
t (s )
E s c a la d o t

k = 1
while k <= length(tc)
rango = find((t >= tc(k) - P/2) & (t
<= tc(k)+ P/2));
y(rango) = A;
k = k+1;
end

-4

-2

0
2
t (s )
C o m b in a c i n

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


xlabel('t (s)')
ylabel('Amplitud (V)')
title('Tren de pulsos rectangulares');
grid
T re n d e p u ls o s re c t a n g u la r e s

-4

-2

0
t (s )

0 .9
0 .8
0 .7

A m p lit u d ( V )

0 .6

K. Funciones peridicas
% Funciones peridicas
% Tren de pulsos rectangulares
clear all, close, clc;

0 .5
0 .4
0 .3
0 .2
0 .1

A = 1;
P = 2;
T = 6;

% Amplitud
% Duracion del pulso
% Periodo

tmin = -7*P;
tmax = 7*P;
pasos = (tmax - tmin)/10000;
t = tmin : pasos : tmax;
y = zeros(1, length(t));
Anula la funcin

0
-1 5

-1 0

-5

0
t (s )

10

V. EJERCICIOS PROPUESTOS

Grafique las seales

y 1 (t)=5,09 sin(2 1000t)V


y 2 (t)=1,69sin (2 3000t)V

15

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 las siguientes


figuras

Escribir el cdigo que permita obtener la siguiente


figura

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/

Vous aimerez peut-être aussi