Documentos de Académico
Documentos de Profesional
Documentos de Cultura
211 Matlab-Senales
211 Matlab-Senales
1 Representacin de seales
En esta seccin vamos a proporcionar las bases para representar grficamente funciones con ayuda de Matlab. El caso de mayor inters en la asignatura a la que se refiere este
manual es aqul en el que tales funciones son seales dependientes del tiempo. Es decir, se
trata de obtener grficas en las que el eje de abscisas corresponde al tiempo, y el eje de ordenadas indica los valores que toma una determinada magnitud elctrica (corriente, tensin,
potencia, etctera) en funcin del tiempo.
En el primer apartado de la seccin indicaremos cmo definir la base de tiempos; en
otras palabras, mostraremos cmo establecer el rango de valores de la variable tiempo para
el que interesa representar los valores de la magnitud considerada. Seguiremos exponiendo
la forma de obtener una representacin bsica, y a continuacin detallaremos cmo editar la
figura resultante y cmo combinar distintas funciones en una sola grfica.
En el segundo apartado proporcionaremos unos cuantos cdigos de Matlab que pueden usarse para representar algunas de las seales ms utilizadas en el estudio de sistemas lineales. Para cada cdigo detallaremos algunos aspectos particulares que pueden tener relevancia en la representacin de otras seales. El tercer y ltimo apartado contiene algunos
ejercicios propuestos que el lector puede intentar resolver para comprobar el grado de asimilacin de los contenidos de esta seccin.
Cabe mencionar que en ninguna parte de este manual se habla de la convolucin, pese
a la importancia que tiene esta operacin en anlisis de sistemas lineales y a que Matlab contiene una instruccin relacionada con ella. Esta ausencia est justificada por el hecho de que
la convolucin presenta diferencias cuando se aplica a seales continuas y a discretas. El tratamiento de Matlab corresponde a estas ltimas, que no se contemplan en este manual.
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
tuvieran incluidos todos los valores comprendidos entre -10 s y 10 s. De esa forma obtendramos una representacin 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 consecutivos 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 -10
s, -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
consideraciones, la instruccin para definir la base de tiempos es
t = valorinicial: intervalo: valorfinal
% 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 automticamente 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 mximo (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 incluidos en ella. Obviamente, en la instruccin linspace los valores del tiempo estn
equiespaciados en la base.
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
Antes de continuar conviene precisar que estas formas de definir la base de tiempos se
denominan 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
% Determina la longitud del vector t
length (t)
p0 = find(t == t0)
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
y = y1:y2:...yn;
plot (y)
De esta forma tendramos en el eje de abscisas las posiciones del vector y en el eje de
ordenadas los valores correspondientes a dichas posiciones. Este tipo de representacin grfica apenas tiene inters con relacin a los objetivos del presente manual.
La forma habitual de representar grficamente una funcin consiste en utilizar la instruccin
plot (t, y)
Con esta instruccin obtenemos los valores del tiempo (no los de posiciones) en el eje
de abscisas, mientras que en el de ordenadas tenemos los valores de la funcin correspondientes a los diferentes instantes.
En este tipo de representacin Matlab intenta presentar al usuario una curva continua
(recurdese lo indicado ms arriba a propsito de la influencia de la seleccin del intervalo
en la definicin de la base de tiempos). Sin embargo, por distintos motivos puede interesar
prescindir de dicha representacin continua y obtener en su lugar una representacin discreta. En ese caso utilizaramos la instruccin
stem (t, y)
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
plot (t, y, i)
% i: color elegido para la representacin de una funcin
En principio, Matlab hace las representaciones con lnea continua. Pero tambin es posible conseguir una representacin a puntos o a rayas discontinuas de la curva. En ese caso,
la instruccin a utilizar es
plot (t, y, s)
Tambin puede variarse el grosor de la lnea representativa de la funcin y(t). Para ello
puede utilizarse la instruccin
plot (t, y, LineWidth, i)
A falta de indicacin respecto al grosor a utilizar, Matlab representa la funcin automticamente con un grosor de 1 punto.
Edicin: ejes coordenados
Otro elemento de edicin es la alteracin de los valores extremos que definen los ejes
coordenados. En principio, Matlab establece automticamente los ejes, adjudicando a sus
extremos los valores extremos de la base de tiempos y de la funcin. Por ejemplo, si se representa la variacin de una funcin entre los instantes 2.5 s y 7.3 s y dicha variacin est
comprendida entre -1.8 y 3, el eje de abscisas de la representacin cubrir el intervalo 2.57.3 s y el eje de ordenadas, el intervalo -1.8-3. Si se desea alterar los lmites de los ejes de
coordenadas puede utilizarse la instruccin
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
Con la curva representada en la grfica Matlab asigna automticamente los identificativos correspondientes a los ejes de abscisas y de ordenadas (por ejemplo, tiempo y corriente, respectivamente), al igual que lo hace con los nmeros que han de figurar en tales
ejes. Tales identificativos pueden ser modificados mediante la instruccin
xlabel (texto, FontName, f, Fontsize, s)
ylabel (texto, FontName, f, Fontsize, s)
% texto: texto que se desea que figure como indicativo del eje
% f: tipo de letra (Helvtica, Times, Courier, etctera)
% s: tamao de letra (10, 12, 14,... puntos)
Para modificar las caractersticas de los nmeros que aparecen en los ejes puede utilizarse la instruccin
set (gca, FontName, f, Fontsize, s)
Con esta instruccin aparece un texto centrado en la parte superior de la figura, fuera
del espacio delimitado por los ejes. Naturalmente, las caractersticas particulares de este
texto (tipo, tamao y color de letra) pueden ser variadas de la misma forma que se indic
anteriormente para otras instrucciones.
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
Las rectas que definen la malla parten de los puntos de los ejes a los que se ha asignado nmeros en la representacin.
En ocasiones puede interesarnos tener, no una malla completa, sino una restringida. Es
decir, se trata de marcar determinados puntos especiales en los ejes y hacer que salgan nicamente de ellos las rectas de la malla. Adems, podemos querer etiquetar los puntos de los
ejes desde los que parten las rectas de la malla. Ambas funciones pueden realizarse de
forma combinada mediante la instruccin
set (gca, xtick, [x1 x2 ... xn],
XTickLabel, {tx1; tx2; ... txn},
ytick, [y1 y2 ... ym],
YTickLabel, {ty1; ty2; ... tym})
% x1 x2 ... xn: puntos del eje de abscisas de los cuales han de partir las rectas de la malla
% tx1 tx2 ... txn: textos asignados a los puntos del eje de abscisas
de los cuales han de partir las rectas de la malla
% y1 y2 ... ym: puntos del eje de ordenadas de los cuales han de partir las rectas de la malla
% ty1 ty2 ... tym: textos asignados a los puntos del eje de ordenadas
de los cuales han de partir las rectas de la malla
% Esta instruccin ha de ir precedida de la de grid on
Evidentemente, esta instruccin puede incluir las caractersticas de las letras (tipo y tamao) que se desean. Para ello basta incluir las especificaciones correspondientes, indicadas
ms arriba, a continuacin de la especificacin de los textos de cada eje.
Obtencin de distintas curvas con una sola rutina
En principio, si damos a Matlab las instrucciones para representar distintas curvas
como resultado de la ejecucin de una nica rutina, el programa nos presentar slo la ltima. Para poder ver todas las curvas generadas como consecuencia de la ejecucin de la rutina hay distintas posibilidades.
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
Las distintas figuras son presentadas de forma agrupada, de modo que en principio
slo se ve la ltima. Desplazando el cuadro correspondiente a sta, aparece a la vista la figura precedente.
Una alternativa a esta posibilidad consiste en utilizar la instruccin
% Genera figuras secuencialmente
pause on
% Separa los bloques correspondientes a dos figuras
En este caso cada figura desaparece antes de ser presentada la siguiente, pero slo
cuando el usuario pulsa la tecla de retorno; mientras no lo hace, se mantiene la imagen de la
ltima figura generada. Para evitar la interaccin entre dos programas que contienen esta
instruccin y que se ejecutan secuencialmente conviene cerrar cada uno de ellos con la instruccin
pause off
Con esta instruccin todas las curvas generadas durante la ejecucin de la rutina se
presentan en una nica figura, cuyas caractersticas de ejes y enmallado son las definidas
para la representacin de la primera curva. A este respecto debe tomarse la precaucin de
asegurar previamente que todas las funciones pueden representarse en el cuadrado seleccionado por la definicin de los ejes (si est presente) correspondientes a la primera figura; si
una de ellas cae fuera del rea de dibujo (la definida por los ejes o la establecida automticamente por Matlab si tal definicin no est presente), naturalmente no ser representada.
Al igual que ocurra con la instruccin pause conviene terminar el programa con la
instruccin
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
hold off
Una cuarta posibilidad de visualizar las distintas curvas generadas durante la ejecucin
de una rutina consiste en dividir una figura en diversos recuadros y representar una o ms
curvas (mediante la aplicacin de la instruccin hold on) en cada uno de ellos. La definicin
de los recuadros se hace mediante la instruccin
subplot (filas, columnas, cuadro)
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
10
Esta instruccin tiene por objeto suprimir de Matlab la informacin relativa a cualquiera de las variables utilizadas en una determinada rutina, de forma que no se altere inadvertidamente la ejecucin de otra rutina distinta. La sentencia del principio evita la posible influencia de variables procedentes de otras rutinas.
Coseno
El cdigo adjunto puede utilizarse para generar la funcin coseno mostrada en la figura. Cabe observar que la curva no pasa por el origen de los ejes coordenados porque la fase
de la funcin no es nula.
Tambin conviene destacar que no deben confundirse el periodo de la funcin (el de
cualquier funcin peridica), que es t0 en este caso, con el periodo de muestreo para efectuar la representacin (lo que hemos denominado intervalo ms arriba), que vale 10-9 s en
este caso.
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
%%%%% COSENO
11
%%%%%
clear all;
t = -2*10^(-6):10^(-9):2*10^(-6);
% Base de tiempos
T = 10^(-6);
f = 1/T;
w = 2*pi*f;
fase = pi/4;
am = 2;
y = am*cos(w*t + fase);
%
%
%
%
%
%
Periodo de la funcin
Frecuencia de la funcin
Frecuencia angular de la funcin
Fase de la funcin
Amplitud de la funcin
Funcin
Funcin coseno
A
= 2f
f = 1/T
Datos:
coseno de periodo T
y = Acos(t + )
T, A
-A
-T
t (segundos)
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
12
Exponenciales reales
El cdigo adjunto permite obtener los cuatro tipos posibles de exponenciales reales.
Cada exponencial est caracterizada por el coeficiente del exponente y por el coeficiente de
la exponencial. Obsrvese que se ha utilizado la sentencia subplot para representar las cuatro curvas en una sola figura. Obsrvese tambin que la base de tiempos es nica para todas
las figuras.
%%%%% FUNCIONES EXPONENCIALES
%%%%%
clear all;
% Base de tiempos
c = -0.5;
A = 2;
y1 = A*exp(c*t);
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
13
y = Aexp(ct)
A>0 c>0
A>0 c<0
A
0
Datos:
c, A
0
0
t (segundos)
t (segundos)
A<0 c<0
A<0 c>0
t (segundos)
t (segundos)
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
14
Exponenciales complejas
Las dos primeras curvas muestran la variacin con el tiempo de las partes real e imaginaria de una funcin exponencial compleja. Obsrvese que para obtener tales partes se hace
uso de las instrucciones real e imag. Obsrvese tambin que tal variacin es muy similar en
ambos casos; la nica diferencia significativa es la existencia de un desfase entre ambas representaciones (se alejan en distinta medida del eje de ordenadas).
Las restantes cuatro curvas muestran la influencia de los signos de los parmetros en
la variacin con el tiempo de las partes real e imaginaria de una funcin exponencial compleja. Obsrvese que en este caso, al contrario que en el anterior, se hace uso de las instrucciones cos y sin, respectivamente, para representar las partes real e imaginaria de una funcin. Obviamente, ambos tipos de representaciones son completamente equivalentes. Obsrvese tambin que en esta rutina aparecen instrucciones de la forma
% Operacin elemento a elemento
y = A*exp(sigma*t).*sin(w*t + fase)
clear all
% Base de tiempos
am = 0.5;
fase = pi/4;
A = am*exp(j*fase);
sigma = 0.5*10^3;
T = 10^(-3);
f = 1/T;
w = 2*pi*f;
s = sigma + j*w;
y = A*exp(s*t);
%
%
%
%
%
%
%
%
%
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
'Fontsize', 12);
title ('Exponencial compleja', 'FontName', 'Times', 'Fontsize', 24)
15
% Ttulo
Exponencial compleja
A = aej
s = + j
Parte real
y = Aexp(st)
a
-a
= 2f
Datos:
a, , , T
Parte imaginaria
f = 1/T
a
-a
t
%%%%% FUNCIN EXPONENCIAL
clear all;
%%%%%
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
16
A = am*exp(j*fase);
%
sigma = 0.5*10^3;
%
T = 10^(-3);
%
f = 1/T;
%
w = 2*pi*f;
%
s = sigma + j*w;
%
env = A*exp(sigma*t);
%
y = A*exp(sigma*t).*cos(w*t + fase);%
Amplitud compleja
Parte real del coeficiente del exponente
Periodo de la funcin
Frecuencia
Frecuencia angular
Coeficiente del exponente
Envolvente superior
Funcin
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
17
sigma = -0.5*10^3;
% Parte real del coeficiente del exponente
env = A*exp(sigma*t);
% Envolvente superior
y = A*exp(sigma*t).*sin(w*t + fase);% Funcin
subplot (2, 2, 4);
% Recuadro parte imaginaria
plot (t, y, 'b', 'LineWidth', 2);
% Curva en azul de grosor 2
hold on;
plot (t, env, 'r');
% Envolvente de la parte superior (en rojo)
plot (t, -env, 'r');
% Envolvente de la parte inferior (en rojo)
xlabel ('t', 'FontName', 'Times', 'Fontsize', 14);
% Abscisas
ylabel ('Parte imaginaria (sigma < 0)', 'FontName', 'Times', 'Fontsize', 14); % Ord
grid on;
% Malla
axis ([-2*10^(-3), 2*10^(-3), -3, 3]);
% rea de dibujo
set (gca, 'xtick', [0], 'XTickLabel', {'0'}, 'FontName', 'Times', 'Fontsize', 12);
set (gca, 'ytick', [-0.5 0.5], 'YTickLabel', {' -a'; '
a'}, 'FontName', 'Times',
'Fontsize', 12);
hold off;
clear all;
A = aej
a
-a
f = 1/T
Datos:
a, , , T
s = + j
= 2f
y = Aexp(t) x
x sen(t + )
a
-a
y = Aexp(t) x
x cos(t + )
a
-a
a
-a
Pulso rectangular
El cdigo que sigue permite representar un pulso rectangular de amplitud y periodo
dados, centrado en el origen de coordenadas. Se recomienda prestar una atencin especfica
a la forma de definir el intervalo en el que la funcin tiene un valor no nulo.
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
18
%%%%%
t = -4: 0.001: 4;
% Base de tiempos
Pulso rectangular
y=A
Amplitud
Para
- T/2 < t < T/2
Datos:
T, A
-T/2
T/2
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
19
Pulso triangular
El cdigo que sigue permite representar un pulso triangular de amplitud y periodo
definidos por el usuario, centrado en el origen de coordenadas.
%%%%% FUNCIN PULSO TRIANGULAR
clear all
%%%%%
% Base de tiempos
tmin = -4;
tmax = 4;
puntos = 10000;
t = linspace (tmin, tmax, puntos);
y = zeros (1, length(t));
A = 1;
T = 2;
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
20
Pulso triangular
Para
- T/2 < t < T/2
A
Amplitud
y=Ax
x (1 - abs(t))/(T/2))
Datos:
T, A
-T/2
T/2
Funcin escaln
La rutina que sigue permite representar la funcin escaln. Obsrvese que hay dos posibilidades de definirla; en realidad, una es la funcin reflejada de la otra (vase ms adelante
otro ejemplo de funciones reflejadas). La rutina tambin permite observar las variaciones de
la representacin en funcin de que el parmetro T sea positivo o negativo. Obsrvese que
la discontinuidad se halla a la izquierda del cero para valores negativos de T y la derecha
para valores positivos.
%%%%% FUNCIN ESCALN
%%%%%
clear all;
% Base de tiempos
tmin = -4;
tmax = 4;
puntos = 1000;
t = tmin: 1/puntos: tmax;
y = zeros (1, length(t));
A = 1;
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
T = 2;
21
% Tiempo de discontinuidad
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
22
12);
set (gca, 'ytick', [0 A], 'YTickLabel', {' 0'; ' A'}, 'FontName', 'Times', 'Fontsize', 12);
title ('Escaln u(T - t)', 'FontName', 'Times', 'Fontsize', 24); % Ttulo
y = zeros (1, length(t));
A = 1;
T = -2;
Escaln u(T - t)
T>0
Para t < T
u(t - T) = 0
u(T - t) = A
T>0
Escaln u(t - T)
Para t > T
u(t - T) = A
u(T - t) = 0
T<0
T, A
T<0
Datos:
0
T
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
23
Signo
La rutina siguiente permite representar la funcin signo. En realidad, la rutina, al igual
que ocurre con la destinada a representar la funcin coseno, no hace ms que establecer las
condiciones de representacin por cuanto la funcin est disponible directamente en Matlab.
Obsrvese que, con relacin a esta funcin, podramos obtener cuatro representaciones distintas similares a las obtenidas en el caso de la funcin escaln. Obsrvese tambin que en la
representacin grfica aparece una pequea discontinuidad en la lnea vertical, que es debida a que la resolucin utilizada no permite mayor precisin.
%%%%% FUNCIN SIGNO
%%%%%
clear all;
% Base de tiempos
tmin = -4;
tmax = 4;
puntos = 10000;
t = linspace (tmin, tmax, puntos);
A = 1;
y = A*sign(t);
% Funcin
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
24
Funcin signo
Amplitud
y = Asign(t)
Datos:
A
-A
Sinc
La funcin sinc tambin est disponible directamente en Matlab, con lo que la rutina
que sigue tiene por objeto nicamente establecer las condiciones de la representacin.
%%%%% FUNCIN SINC
%%%%%
clear all;
% Base de tiempos
tmin = -8;
tmax = 8;
puntos = 10000;
t = linspace (tmin, tmax, puntos);
A = 1;
y = A*sinc(t);
% Funcin
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
25
size', 12);
title ('Funcin sinc', 'FontName', 'Times', 'Fontsize', 24);
clear all;
% Ttulo
Funcin sinc
A
Datos:
Amplitud
y = Asinc(t)
A
0
-8
-6
-4
-2
Funcin combinada
El siguiente ejemplo combina dos funciones en una. A fin de poder utilizar la funcin
combinada 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;
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
26
T1 = 0;
T2 = 1;
% 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
set (gca, 'xtick', [T1 T2], 'XTickLabel', {'T1'; 'T2'}, 'FontName', 'Times', 'Fontsize', 12);
set (gca, 'ytick', [0], 'YTickLabel', {' 0'}, 'FontName', 'Times', 'Fontsize', 12);
title ('Funcin combinada', 'FontName', 'Times', 'Fontsize', 24);
% Ttulo
clear all;
Funcin combinada
Para t > T2
y = - e-t + e-(t-T2)
Datos:
Amplitud
T1, T2
0
T1
T2
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
27
%%%%%
T1 = 0;
T2 = 1;
% Base de tiempos
tmin = -3;
tmax = 3;
puntos = 1000;
t = linspace(tmin, tmax, puntos);
y = funccomb(t) + 0.02;
% Funcin original
% Parte par
% Parte impar
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
28
T1
T2
%%%%%
clear all;
T1 = 0;
T2 = 1;
% Base de tiempos
tmin = -3;
tmax = 3;
puntos = 1000;
t = linspace(tmin, tmax, puntos);
y = funccomb(t);
subplot (3, 2, 1);
% Funcin original
% Recuadro
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
29
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
Original
y(t)
y(-t)
0.8
0.6
0.4
0.2
0
-0.2
-0.4
Reflexin
30
-2
-1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-2
-1
t
Escalado t
Escalado y
y(Ht)
0.2
0
-0.2
-2
-1
-2
-1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
Combinacin
Desplazamiento
V[-H(t + T)]
0.8
0.6
0.4
0.2
0
-0.2
-0.4
y(t + T)
0.4
Vy(t)
0.4
0.2
0
-0.2
-2
-1
-2
-1
Funciones peridicas
La primera funcin que vimos en este apartado es peridica (la funcin coseno). Dicha
funcin, 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 explcitamente. Es el caso, por ejemplo, del paso del pulso rectangular a un tren de pulsos rectangulares. La siguiente rutina ilustra cmo definir esta funcin peridica.
%%%%% TREN DE PULSOS RECTANGULARES
clear all;
A = 1;
P = 2;
T = 6;
%%%%%
tmin = -7*P;
% Base de tiempos
tmax = 7*P;
puntos = 10000;
t = linspace (tmin, tmax, puntos);
y = zeros (1, length(t));
% Anula la funcin
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
n = 0;
while n*T>tmin
n = n - 1;
end
tc1 = (n: 0)*T;
31
m = 1;
while m*T<tmax
m = m + 1;
end
tc2 = (0: m)*T;
tc = [tc1 tc2];
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]);
% rea de dibujo
set (gca, 'xtick', [-T/2 -P/2 0 P/2 T/2], 'XTickLabel', {'-T/2'; '-P/2'; '0'; 'P/2';
'T/2'}, 'FontName', 'Times', 'Fontsize', 12);
set (gca, 'ytick', [0 A], 'YTickLabel', {' 0'; ' A'}, 'FontName', 'Times', 'Fontsize', 12);
title ('Tren de pulsos rectangulares', 'FontName', 'Times', 'Fontsize', 24);
% Ttulo
clear all;
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
32
Amplitud
T/2
-T/2
0
t
T/2
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
Ejercicio 2
33
-T/2 -P/2
Ejercicio 3
0 P/2
t
T/2
T-Texp
T
t
T+Texp
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO
34
Ejercicio 4
Pulso trapezoidal
T1
T2
T3
T4
t
Ejercicio 5
Funcin combinada
Amplitud
ymax
0
ymin
0
2T
t
-3T
-2T
t
3T
Amplitud
ymax
0
ymin
-T
Dpto. Teora de la Seal y Comunicaciones. Escuela Tcnica Superior de Ing. Telecomunicacin. UNIVERSIDAD DE VIGO