Vous êtes sur la page 1sur 15

ANALISIS DE SEALES Y SISTEMAS GENERACION DE SEALES

FIEE UNI ANALISIS DE SEALES Y SISTEMAS EE610M


LABORATORIO N 3
Elementos bsicos de una representacin grfica
Base de tiempos
La definicin de la base de tiempos se hace creando un vector que almacena los valores del
tiempo para los que se desea obtener una representacin de la funcin. Por ejemplo, si que-
remos representar la variacin de una funcin entre -10 s y 10 s, los valores inicial y final del
vector correspondiente a la base de tiempos sern precisamente los que acabamos de indicar.
Idealmente, querramos que dicho vector fuera un conjunto infinito en el que estuvieran inclui-
dos todos los valores comprendidos entre -10 s y 10 s. De esa forma obtendramos una repre-
sentacin absolutamente precisa de la funcin. Sin embargo, Matlab no permite semejante
posibilidad, ya que es una herramienta discreta. En consecuencia, a la
hora de definir la base de tiempos hemos de especificar el intervalo entre dos valores consecu-
tivos del tiempo. As, si en el ejemplo que estamos considerando especificamos un intervalo de
0.01 s, los valores del tiempo contenidos en el vector de la base de tiempos son -10s, -9.99 s,
-9.98 s,... -0.01 s, 0 s, 0.01 s,... 9.98 s, 9.99 s y 10 s. Teniendo en cuenta estas consideracio-
nes, la instruccin para definir la base de tiempos es
t = valorinicial:intervalo:valorfinal % Define la base de tiempos
% valorinicial: primer valor del tiempo para el que
% queremos representar la funcin
% intervalo: separacin entre dos valores consecutivos
% del vector base de tiempos
% valorfinal: ltimo valor del tiempo para el que
% queremos representar la funcin

La seleccin del intervalo est condicionada por dos requisitos contrapuestos. Por una parte,
cuanto ms pequeo sea, ms precisa ser la representacin de la funcin; en otras palabras,
la representacin tendr un aspecto ms continuo, mientras que, cuanto ms grande sea, la
representacin se parecer ms a un conjunto de puntos (los valores de la funcin para los
distintos instantes) unidos por lneas.
La operacin de unir los diferentes puntos de la representacin es ejecutada automtica-
mente por Matlab. Por otro lado, cuanto ms pequeo sea el intervalo, ms tiempo tardar
Matlab en completar la instruccin y mayor espacio de memoria se ocupar en el ordenador.
Para intervalos excesivamente pequeos, que den origen a un gran nmero de valores en la
base, la instruccin puede ser rechazada por el programa, ya que ste impone un lmite mxi-
mo (que depende de la versin concreta de Matlab de la que se trate) al nmero de elementos
que puede contener un vector.

Una forma equivalente para definir la base de tiempos consiste en utilizar la instruccin
t = linspace(valorinicial, valor final, nmeropuntos) % Define la base
% de tiempos
% valorinicial: primer valor del tiempo para el que queremos representar la funcin
% valorfinal: ltimo valor del tiempo para el que queremos representar la funcin
% nmeropuntos: nmero de valores del tiempo incluidos en la base de tiempos

Obsrvese que ambas formas son completamente equivalentes ya que existe una relacin
inmediata entre la separacin entre dos valores de la base de tiempos y el nmero de puntos

ING. ARMANDO ALBERTO CAJAHUARINGA CAMACO Pgina 1


ANALISIS DE SEALES Y SISTEMAS GENERACION DE SEALES

incluidos en ella. Obviamente, en la instruccin linspace los valores del tiempo estn equies-
paciados en la base.
Antes de continuar conviene precisar que estas formas de definir la base de tiempos se de-
nominan lineales, ya que la variacin entre los distintos valores del tiempo incluidos en la
base es lineal. Existen otras formas de variar los valores del tiempo (o de otras variables) en la
base, pero sern tratadas ms adelante.
Relacionados con la base de tiempos hay otros aspectos que conviene destacar. El primero
de ellos es cmo determinar el nmero total de valores del tiempo incluidos en la base. Para
ello puede usarse la instruccin
length(t) % Determina la longitud del vector t
% t: vector base de tiempos definido antes de la ejecucin de esta instruccin
Para determinar en qu posicin de la base se encuentra un determinado valor del
tiempo puede usarse la instruccin
po = find(t == to) % Determina la posicin dentro de la base de tiempos
% en la que se encuentra el valor t0 de t
Esta instruccin debe usarse con precaucin. Dependiendo de la base de tiempos y de los
redondeos internos del ordenador, puede ocurrir que no haya ningn valor de t que coincida
exactamente con , con lo cual esta sentencia no producira ningn resultado y las que vayan
a continuacin de ella conduciran a resultados no esperados.
Las posiciones en la base de tiempo estn numeradas automticamente, de forma que la
posicin 1 corresponde al valor inicial y la posicin ( ) corresponde al valor final. En con-
secuencia, para determinar el valor del tiempo correspondiente a una determinada posicin
puede utilizarse la instruccin

t(i) % Determina el valor de t que se encuentra en la posicin i en la base de tiempos


% i: nmero indicativo de una determinada posicin en la base de tiempos

P1) Escribir un cdigo para generar un pulso rectangular

%%%%% FUNCIN PULSO RECTANGULAR %%%%%


clear all; % Elimina variables utilizadas en otras rutinas
t = -4:0.001:4; % Base de tiempos
y = zeros(1,length(t)); % Comienza anulando la funcion
A = 1; % Amplitud
T = 2; % Periodo
% Rango de valores de t para los que la funcion no es nula
rango = find ((t >= -T/2) & (t <= T/2));
y(rango) = A; % Valor de la funcin en el rango de tiempo no nulo
plot(t, y, 'b', 'LineWidth', 2); % Curva en azul de grosor 2
xlabel('t', 'FontName', 'Times','Fontsize', 14); % Abscisas
ylabel('Amplitud','FontName','Times','Fontsize', 14); % Ordenadas
grid on; % Malla
axis([-3, 3, -A/2, 2*A]); % rea de dibujo
title('Pulso rectangular','FontName', 'Times','Fontsize',24) % Titulo
clear all; % Elimina las variables utilizadas en esta rutina

ING. ARMANDO ALBERTO CAJAHUARINGA CAMACO Pgina 2


ANALISIS DE SEALES Y SISTEMAS GENERACION DE SEALES

P2) Escribir un cdigo para graficar una seal combinada


Graficar la seal
( )
( )= 1 ( )
1< < 2
+ > 2
Funcin combinada
El siguiente ejemplo combina dos funciones en una. A fin de poder utilizar la funcin combina-
da sin necesidad de repetirla en otros momentos, el ejemplo consta de dos rutinas. La primera
es una funcin que puede ser invocada desde otras rutinas; su ejecucin aislada no produce
ningn resultado. La segunda es la presentacin de la funcin combinada.
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
return;

%%%%% FUNCION COMBINADA %%%%%


clear all; % Elimina variables utilizadas en otras rutinas
T1 = 0; % Comienzo de la primera funcion
T2 = 1; % Comienzo de la segunda funcion
% Base de tiempos
tmin = -3;
tmax = 3;
puntos = 1000;
t = linspace(tmin, tmax, puntos);
y = funccomb(t); % Llama a la funcin combinada
plot(t, y, 'b', 'LineWidth', 2); % Curva en azul de grosor 2
xlabel('t', 'FontName', 'Times', 'Fontsize',14): % Abscisas
ylabel('Amplitud','FontName', 'Times','Fontsize',14); % Ordenadas
grid on; % Malla
axis([(3/4)*tmin, (3/4)*tmax, -(1/3)*max(y),(3/2)*max(y)]); % rea de dibujo
title('Funcin combinada', 'FontName', 'Times', 'Fontsize', 24); % Titulo
clear all; % Elimina las variables utilizadas en esta rutina

ING. ARMANDO ALBERTO CAJAHUARINGA CAMACO Pgina 3


ANALISIS DE SEALES Y SISTEMAS GENERACION DE SEALES

P3) Reflexin, desplazamiento y escalado de una funcin


La rutina que sigue permite realizar diversas operaciones (reflexin, escalados horizontal y
vertical, desplazamiento) con una funcin, as como combinar todas o algunas de estas opera-
ciones. La funcin elegida como ejemplo es la descrita anteriormente. En este caso,
al contrario que en los precedentes, no se han etiquetado los ejes, a fin de que el etiquetado
automtico realizado por Matlab permita comprobar el efecto de cada operacin.
Graficar la seal [ ( + )]

T = 1;
V = 0.5;
H = 2;
tt = H*(-(t+T));
y = V*funccomb(tt); % Operacin combinada
subplot (3, 2, 6); % Recuadro
plot (t, y, 'b', 'LineWidth', 2); % Funcin en azul de grosor 2
xlabel ('t', 'FontName', 'Times', 'Fontsize', 14); % Abscisas
ylabel ('Combinacin', 'FontName', 'Times', 'Fontsize', 14); % Ordenadas
grid on; % Malla
axis ([(3/4)*tmin, (3/4)*tmax, -(2/3)*max(y), (3/2)*max(y)]); % rea de dibujo
clear all; % Elimina las variables utilizadas en esta rutina

P4) Funciones peridicas


La primera funcin que vimos en este apartado es peridica (la funcin coseno). Dicha fun-
cin, como otras trigonomtricas, tiene una definicin establecida en la que la periodicidad
est implcita. Sin embargo, para otras funciones la periodicidad ha de ser definida explcita-
mente. Es el caso, por ejemplo, del paso del pulso rectangular a un tren de pulsos rectangula-
res. La siguiente rutina ilustra cmo definir esta funcin peridica.

ING. ARMANDO ALBERTO CAJAHUARINGA CAMACO Pgina 4


ANALISIS DE SEALES Y SISTEMAS GENERACION DE SEALES

%%%%% TREN DE PULSOS RECTANGULARES


clear all; % Elimina variables utilizadas en otras rutinas
A = 1; % Amplitud
P = 2; % Duracion del pulso
T = 6; % Periodo
tmin = -7*P; % Base de tiempos
tmax = 7*P;
puntos = 10000:
t = linspace(tmin, tmax, puntos);
y = zeros(1, length(t)) % Anula la funcion
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]; % Instantes centrales de todos los pulsos
k = 1; % Amplitud de cada pulso
while k <= length(tc)
rango = find((t >= tc(k) - P/2) & (t <= tc(k) + P/2));
y(rango) = A;
k = k + 1;
end
plot(t, y, 'b', 'LineWidth', 2); % Curva en azul de grosor 2
xlabel('t','FontName', 'Times','Fontsize',14); % Abscisas
ylabel('Amplitud','FontName','Times','Fontsize', 14); % Ordenadas
grid on; % Malla
axis([tmin, tmax, -A/3, (3/2*A]); % Area de dibujo
title('Tren de pulsos rectangulares','FontName','Times','Fontsize', 24);
% Titulo
clear all; % Elimina las variables utilizadas en esta rutina

GENERACION DE SEALES PE-


RIODICASY APERIODICAS USAN-
DO FUNCIONES DE MATLAB
P5) Generar una seal diente de sierra con
flanco a la derecha, de 5 voltios de ampli-
tud, frecuencia de 1 KHz.
t=linspace(0,3e-3,500);
y=sawtooth(2*pi*1e3*t);
plot(t,y)
grid on

La seal vara en 1 y no cumple con la


amplitud.

ING. ARMANDO ALBERTO CAJAHUARINGA CAMACO Pgina 5


ANALISIS DE SEALES Y SISTEMAS GENERACION DE SEALES

Primero desplazaremos en uno a la seal ante-


rior para obtener una amplitud de 2, luego,
escalaremos para obtener la amplitud requeri-
da.

offset=ones(1,length(t));
y1=2.5*(offset+sawtooth(2*pi*1e3*t));
plot(t,y1)
grid on

P6) Generar una seal diente de sierra con flanco a la derecha, de 5 voltios de amplitud, y
perodo de 10 segundos. La seal se almacenara en la variable ( ).

P7) z=exp(y);
plot(t1,z)

P8) p=y.*y;
plot(t1,p)

ING. ARMANDO ALBERTO CAJAHUARINGA CAMACO Pgina 6


ANALISIS DE SEALES Y SISTEMAS GENERACION DE SEALES

P9) Generar una seal diente de sierra con flanco a la derecha, izquierda; y una seal trian-
gular simtrica.
y=sawtooth(t,0);
subplot(1,3,1)
plot(t1,y)
subplot(1,3,2)
y=sawtooth(t,1);
plot(t1,y)
subplot(1,3,3)
y=sawtooth(t,.4);
plot(t1,y)

P10) Para generar 2 segundos de un pulso triangular (respectivamente rectangular) a una tasa
de muestra de 10 kHz (t =1/fs=0.0001) y un ancho de 20 ms, use:
fs = 10000;
t = -1:1/fs:1;
x1 = tripuls(t,20e-3);
x2 = rectpuls(t,20e-3);
subplot(211),plot(t,x1), axis([-0.1 0.1 -0.2 1.2])
ING. ARMANDO ALBERTO CAJAHUARINGA CAMACO Pgina 7
ANALISIS DE SEALES Y SISTEMAS GENERACION DE SEALES

xlabel('Tiempo (seg)');
ylabel('Amplitud');
title('Pulso Triangular Aperiodico')
subplot(212),plot(t,x2), axis([-0.1 0.1 -0.2 1.2])
xlabel('Tiempo (seg)');
ylabel('Amplitud');
title('Pulso Rectangular Aperiodico')
% set(gcf,'Color',[1 1 1]),

Formas de ondas peridicas


Adems de las funciones sin y cos en MATLAB, las herramientas ofrecen otras funciones que
generan seales peridicas tales como diente de sierra y cuadrada.

La funcin sawtooth genera una onda diente de sierra con picos de 1 con un periodo de
2*pi. Un parmetro opcional width especifica a mltiplo fraccional de 2*pi para el cual ocurre
los mximos de la seal.

La funcin square genera una onda cuadrada con un periodo of 2*pi. Un parmetro opcional
especifica el duty cycle, el porcentaje del periodo para el cual la seal es positiva.

P11) Generar 1.5 segundos de una onda diente de sierra (respectivamente cuadrada) a 50 Hz
(ancho de 1/50=0.02) con una tasa de muestreo de 10 kHz (incremento, 1/10 KHz=0.1 ms),
use:
fs = 10000;
t = 0:1/fs:1.5;
x1 = sawtooth(2*pi*50*t);
x2 = square(2*pi*50*t);
subplot(211),plot(t,x1), axis([0 0.2 -1.2 1.2])
xlabel('Time (sec)');
ylabel('Amplitude');
title('Sawtooth Periodic Wave')

ING. ARMANDO ALBERTO CAJAHUARINGA CAMACO Pgina 8


ANALISIS DE SEALES Y SISTEMAS GENERACION DE SEALES

subplot(212),plot(t,x2), axis([0 0.2 -1.2 1.2])


xlabel('Time (sec)');
ylabel('Amplitude');
title('Square Periodic Wave')

Cdigo en Matlab para generar tren de pulsos rectangulares

fc=2e9;
fs = 20e9; % sample freq
D = [2.5 10 17.5]' * 1e-9; % pulse delay times
t = 0 : 1/fs : 2500/fs; % signal evaluation time
w = 4e-9; % width of each pulse
yp = pulstran(t,D,@rectpuls,w);

if we plot this using matlab.. it will generate rectangular pulse train with amplitude varying
from 0 to 1.. But how to modify this code so that it has to generate a pulse (amplitude) vary-
ing from (-1 to 1);

.. Please let me know how to modify.. is there any other method.

Respuesta: nicamente agregue esta lnea en el cdigo.


yp=2*yp-1;

Muhammad Hanif

Hacer peridico una seal pulso


P12) Ejemplo 1
Este ejemplo genera una forma de onda diente de sierra asimtrica con una frecuencia de re-
peticin de 3 Hz y un ancho de diente de sierra de 0.1 seg. La seal tendr una longitud de 1
seg. y una tasa de muestreo de 1 kHz:
t = 0:1/1e3:1; % Frecuencia de muestreo de 1 kHz para 1 seg
d = 0:1/3:1; % Frecuencia de repeticin es 3 Hz
y = pulstran(t,d,'tripuls',0.1,-1);

ING. ARMANDO ALBERTO CAJAHUARINGA CAMACO Pgina 9


ANALISIS DE SEALES Y SISTEMAS GENERACION DE SEALES

plot(t,y)

P13) Ejemplo 2
This example generates a periodic Gaussian pulse signal at 10 kHz, with 50% bandwidth. The
pulse repetition frequency is 1 kHz, sample rate is 50 kHz, and pulse train length is 10 msec.
The repetition amplitude should attenuate by 0.8 each time:
t = 0:1/50E3:10e-3;
d = [0:1/1E3:10e-3; 0.8.^(0:10)]';
y = pulstran(t,d,'gauspuls',10e3,0.5);
plot(t,y)

ING. ARMANDO ALBERTO CAJAHUARINGA CAMACO Pgina 10


ANALISIS DE SEALES Y SISTEMAS GENERACION DE SEALES

P14) Ejemplo3
Se genera un arco de parbola en t1 y se 0.09

repetir esta grfica cada 0.3 segundos. El 0.08

tiempo de muestreo es 0.01 (fs=100), los 0.07


valores repetidos de amplitud se almace-
0.06
nan en un vector y el eje de tiempo es t.
0.05
fs= 100;
t=0:1/fs:200/fs; 0.04

t1=0:1/fs:0.3; 0.03
y=t1.^2;
0.02
d=[0 0.3 0.6 0.9];
v=pulstran(t,d,y,fs); 0.01

plot(t,v) 0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

P15) Representacin de Otras Seales


En este apartado se pide graficar otras seales sencillas. Vamos a representar todas entre 5
y 10 segundos con incrementos de 0.05. Fijaros que al tratarse de representaciones con las
mismas caractersticas temporales, podis usar la misma base de tiempos para todos los ca-
sos. A continuacin se indican las seales a representar. Para las sinusoides amortiguadas in-
cluir la representacin de la envolvente de la curva.

a) ( )= ( ), Escaln unitario.

.
b) ( )= Seal exponencial real.

.
c) ( )= Exponencial real que empieza en t=0.

.
d) ( )= (6 ) Sinusoide amortiguada.
5
.
e) ( )= (6 ) Sinusoide amortiguada que empieza en t=0.
5
f) ( )= Exponencial compleja. Graficar parte real e imaginaria.

Graficar magnitud o modulo y fase.

g) ( . ) Otro ejemplo de exponencial compleja.


( )=
P16) Operaciones Simples con Seales

Ahora vamos a hacer algunas operaciones simples


con una seal definida por su grfica. Vamos a comen-
zar introduciendo en Matlab la seal ( ) dada por este
dibujo:
En principio, vale cualquier base de tiempos que
abarque desde el 2 hasta el 2. Vamos a darle un poco
de margen por ambos lados y la hacemos de 3 a 3 con incrementos de 0.05.
t = -3:0.05:3;

Hay que calcular la ecuacin para la recta que va entre t=-2 y t=0. Esta recta tendr
la ecuacin tpica: r(t) = mt + b donde:
ING. ARMANDO ALBERTO CAJAHUARINGA CAMACO Pgina 11
ANALISIS DE SEALES Y SISTEMAS GENERACION DE SEALES

m es la pendiente. Al tratarse de una recta creciente debe resultar positiva. El


valor de m se puede calcular como la tangente del ngulo que forma la recta con el eje hori-
zontal (eje t). En este caso: = = = .
b es el trmino independiente. Se puede calcular conociendo m y cualquier punto de la rec-
ta, por ejemplo r(-2)=0 r(0)=1 (con este ltimo obtenemos una ecuacin extremadamente
simple que resulta b = 1). De hecho, el trmino independiente de una recta siempre es igual al
punto en que corta al eje vertical (cuidado con esta propiedad porque, a veces, no es posible
ver el punto de forma tan trivial como en este caso).

Por tanto, ( ) entre -2 y 0 (y slo entre -2 y 0) es igual a la expresin: t/2+1. Por supuesto,
( ) es igual a 1 entre 0 y 2 e igual a cero en el resto de intervalos. Veamos como crear el
vector de seal.
L = length(t); % Averiguar la longitud
x = zeros(l,L); % Primero todo ceros
pl = find(t==-2); % Busco el -2
p2 = find(t==0); % Busco el 0
p3 = find(t==2); % Busco el 2
% Con el incremento elegido; -2, 0 y 2 estarn
% en la base de tiempos
x(pl:p2) = t(pl:p2)/2+1; % Parte de recta creciente
x(p2:p3) = 1; % Parte constante
% x en t=0 lo hemos calculado con dos formulas
% dando el mismo resultado

Una vez que tenemos la seal ( ) en matlab vamos a realizar algunas operaciones simples
con ella.

a) Traslacin: calcular y representar 1( ) = ( 3).


Para este apartado veremos dos soluciones: EJECUTAR LAS DOS Y VER BIEN EN LA DIFEREN-
CIA DE MTODOS.

Solucin 1:
Sabemos que la seal es la misma pero todos los puntos se trasladan de tiempo t a tiempo
t+3. Esto es: basta con sumar 3 a la base de tiempos.
t1 = t + 3;
xl = x;
Solucin 2:
Movemos el vector de valores 3 unidades de tiempo hacia delante (y hacemos crecer la base
de tiempos).
t_aux = 0.05:0.05:3; % Tres unidades de tiempo
% No empieza en cero porque lo vamos a
% aadir por la derecha
L3 = length(t_aux);
ING. ARMANDO ALBERTO CAJAHUARINGA CAMACO Pgina 12
ANALISIS DE SEALES Y SISTEMAS GENERACION DE SEALES

% Averiguar cuantos valores son los 3 segundos


x_aux = zeros(1,L3);
% Ceros para poner por la izquierda
xl = [x_aux x]; % Los valores son los mismos
% (con ceros por delante)
t1 = [t max(t)+t_aux];
% Crear nueva base de tiempos

b) Escalado: calcular y representar 2( ) = (2 ).


Sabemos que la seal es la misma pero "comprimida" (a la mitad). Por tanto, el punto situado
en t pasar a t/2. Esto es: basta con dividir por 2 la base de tiempos.
t2 = t/2; % Tres unidades de tiempo
x2 = x;

Ntese que haciendo esto hemos dividido por dos el "incremento temporal" de la base de
tiempos (los tiempos ahora estn separados 0.025 segundos).

c) Reflexin: calcular y representar 3( ) = ( ).


Ahora se trata de que el punto situado en t pase a -t. La primera idea es cambiar de signo la
base de tiempos. Eso es correcto pero no es suficiente porque tanto la base de tiempos como
el vector de valores estn en orden inverso al que debieran. Eso debemos resolverlo invirtien-
do ambos vectores.
t3 = -t; % Base de tiempos invertida
x3 = x; % Los valores son los mismos
final = length(t3);
t3 = t3(final:-1:1) ;
x3 = x3(final:-1:1); % Invertir

ING. ARMANDO ALBERTO CAJAHUARINGA CAMACO Pgina 13


ANALISIS DE SEALES Y SISTEMAS GENERACION DE SEALES

d) Sumar: sumar ( ) 1( ) (la seal del apartado a).


Para sumar dos seales no hay ms que sumar los valores pero DEBEMOS TENER LA MISMA
BASE DE TIEMPO PARA AMBAS SEALES. Si conservamos las variables 1 y 1 tenemos mu-
cho hecho (se refiere a las variables del apartado a, solucin 2). Viendo que 1 es la misma
base de tiempos de pero extendida 3 unidades de tiempo no hace falta ms que
extender igualmente la base de tiempos de (y aadir el nmero adecuado de ceros a los va-
lores de ).

Lextra = length(t1)-length(t);
% Diferencia de longitudes temporales
% (en numero de valores)
t = t1; % Extendemos la base de tiempos de
x = [x zeros(1,Lextra)]; % Aadimos ceros
t4 = t;
x4 = x + x1; % Calcular la seal suma (x4)

EJERCICIO
Generar la seal ( ) de la figura y calcular y representar
las seales: 1( ) = ( 2), 2( ) = ( /3), 3( ) =
( ), 4( ) = ( ) 1( ).

Concepto de Sistema
Ahora vamos a realizar en Matlab un par de sistemas sencillos. Los textos de teora
definen un sistema como cualquier ente capaz de transformar seales. Para afianzar la idea de
que un sistema transforma seales vamos a usar el concepto de "funcin de Matlab" (que ya
conocemos de la prctica introductoria) para crear nuestros primeros sistemas.
Un sistema lo vamos a definir como una funcin que podemos crear con el editor de Matlab
(o con cualquier otro editor) utilizando una cabecera del tipo:

ING. ARMANDO ALBERTO CAJAHUARINGA CAMACO Pgina 14


ANALISIS DE SEALES Y SISTEMAS GENERACION DE SEALES

function [y,ty] = Nombre(x,tx)


%
% Instrucciones que generen "y" y "ty"
% (a partir de x y tx).
%
% Estas instrucciones se graban en "Nombre.m"
%

Ntese que hemos querido reforzar la idea de que una seal en Matlab es una base de
tiempos y un vector de valores. La funcin recibe como argumentos los dos vectores de la
seal ( ) (entrada) y devuelve como resultados los dos vectores de la seal ( ) (salida).
Por ejemplo, para implementar el sistema que eleva al cuadrado ( ( ) = [ ( )] )
podemos usar la funcin:
function [y,ty] = Cuadrado(x,tx)
ty = tx; % La base de tiempos es la misma
y = x.^2; % Los valores se elevan al cuadrado

Si se conservan las variables del apartado anterior se puede probar esta funcin:

[y,ty] = Cuadrado(x,t);
% Fijaos en la diferencia entre el nombre
% de la variable t y el del argumento tx

Obteniendo la siguiente seal (recordar que hemos extendido la base de tiempos


hasta t=6):

Ejercicio
Crear una funcin que desplace la seal de entrada unidades de tiempo hacia la derecha (es
decir: implementad el sistema: ( )= ( )). Ntese que la funcin deber recibir al me-
nos , como parmetro de entrada adicional, con lo que la cabecera ser:

function [y,ty] = Desplazamiento(x,tx,to)

Nota.- Probablemente, tambin ser necesario conocer el incremento temporal que existe en-
tre los valores de la base de tiempos de entrada. Pueden aadirlo como parmetro pero Se
puede deducirlo a partir de ?

ING. ARMANDO ALBERTO CAJAHUARINGA CAMACO Pgina 15

Vous aimerez peut-être aussi