Está en la página 1de 20

Sistemas y Circuitos

Pr

actica 2: Se

nales
Curso Acad

emico 07/08
1. Partes Par e Impar de una Se nal
En este primer apartado, aprenderemos a calcular las partes par e impar de una se nal, con ayuda
de Matlab. Primero, para se nales continuas, y luego para secuencias discretas.
1.1. Ejemplo 1
Calcule la parte par y la parte impar de la siguiente se nal continua:
1 -1 -2
1
t
x(t)
1.2. Solucion al Ejemplo 1 con Matlab
Para calcular las partes par e impar de la se nal propuesta, debemos efectuar las siguientes opera-
ciones:
Par{x(t)} = x
p
(t) =
x(t) + x(t)
2
Impar{x(t)} = x
i
(t) =
x(t) x(t)
2
Veamos como hacerlo rapidamente con ayuda de Matlab. Teclee, desde la lnea de comandos, las
siguientes sentencias
1
:
close all; clc; clear;
syms t;
x = (t+2)*(heaviside(t+2)-heaviside(t+1)) - t*(heaviside(t+1)-heaviside(t)) +...
t*(heaviside(t)-heaviside(t-1)) + heaviside(t-1);
xPAR = (x + subs(x,t,-t))/2;
xIMPAR = (x - subs(x,t,-t))/2;
La primera lnea sirve para cerrar cualquier gura que pudiera estar abierta (close all;), limpiar
la lnea de comandos, por si hubiera alg un codigo escrito previamente (clc;), y borrar el valor de
cualquier variable que estuviera previamente denida (clear;). A continuacion, denimos la va-
riable simbolica t (syms t;), que sera la variable temporal, esto es, nuestra variable independiente.
Lo siguiente, es denir la se nal x(t). Repare en que podemos construirla a base de lneas rectas y
funciones escalon, seg un:
x(t) = (t + 2) [u(t + 2) u(t + 1)] + (t) [u(t + 1) u(t)] + (t) [u(t) u(t 1) +u(t 1)] +u(t 1)
1
j, porque, no es necesario que escriba cada lnea; puede copiar las sentencias en el .pdf y pegarlas en Matlab.
En lo que s debe invertir tiempo es en comprender que signica, para que sirve, y como se utiliza, cada comando
ejecutado.
1
En Matlab, el escalon se consigue mediante la funcion heaviside.
Toda vez que tenemos denida la se nal x(t), obtenemos sus partes par e impar (xPAR e xIMPAR,
respectivamente), aplicando las expresiones matematicas anteriores. Fjese bien en que, para evaluar
una funcion en un punto distinto a t, hemos utilizado la funcion subs.
A continuacion, representaremos gracamente las tres se nales. Teclee, desde la lnea de comandos:
figure(1);
ezplot(x,[-4,4]);
Linea = findobj(type, line);
set(Linea, linewidth, 3);
title(x(t));
axis equal
grid
pause
figure(2);
ezplot(xPAR,[-4,4]);
Linea = findobj(type, line);
set(Linea, linewidth, 3);
title(PARTE PAR);
axis equal
grid
pause
figure(3);
ezplot(xIMPAR,[-4,4]);
Linea = findobj(type, line);
set(Linea, linewidth, 3);
title(PARTE IMPAR);
axis equal
grid
Con cada bloque, abrimos una gura nueva y representamos en ella una se nal. Aprenda que ezplot
sirve para dibujar se nales denidas en forma simbolica, y que podemos indicar como parametro el
intervalo donde queremos ver la se nal (en este caso, [-4, 4]). El resto de lneas, sirven para mejorar
la visualizacion (aumentar el grueso de la lnea, poner un ttulo en la graca, igualar el tama no
de las unidades en ambos ejes y sobreimpresionar una rejilla de lneas punteadas para identicar
mejor los puntos signicativos de las se nales; el pause, detiene temporalmente la ejecucion hasta
pulsar el enter).
Obtenemos el siguiente resultado:
4 3 2 1 0 1 2 3 4
2
1
0
1
2
3
t
x(t)
2
4 3 2 1 0 1 2 3 4
2
1
0
1
2
3
t
PARTE PAR
4 3 2 1 0 1 2 3 4
3
2
1
0
1
2
3
t
PARTE IMPAR
1.3. Ejercicio 1
Nos plantemos ahora automatizar los calculos anteriores, programando una funcion que tome como
entrada una se nal continua cualquiera, y ofrezca como salida sus partes par e impar, visualizando,
ademas, las tres se nales.
Programar funciones en Matlab es tan sencillo como escribir comandos similares a los anteriores
en un chero cuya primera lnea es:
function [VarSalida1,VarSalida2,...] = NombreFuncion(VarEntrada1,VarEntrada2,...)
y guardar ese chero con la extension .m. A partir de ese momento, existe una nueva funcion de
Matlab llamada NombreFuncion que podemos ejecutar desde la lnea de comandos, como cualquie-
ra de las predenidas en Matlab, siempre y cuando estemos en el directorio en el que guardamos
el chero (j con esto), pasandole los correspondientes valores de las variables de entrada, y
obteniendo los valores de las diferentes variables de salida (si es que las hay, en ambos casos).
Para el ejemplo que nos ocupa, vamos a crear una funcion llamada ParImparCon
2
. Para ello, copie
las siguientes sentencias en un chero nuevo, desde el editor de Matlab, y guardelo con el nombre
ParImparCon.m:
2
Es costumbre recomendable asignar a las funciones nombres que indiquen lo que hacen (en este caso: parte Par,
parte Impar, se nales Continuas).
3
function ParImparCon(x,I)
%""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
% PROP

OSITO:
% Programa que calcula las partes Par e Impar de una Se~nal Continua,
% visualizando ademas, las tres se~nales.
%
% USO:
% ParImparCon(x,I)
%
% ARGUMENTOS...
% ...DE ENTRADA: x ---> Se~nal Continua.
% I ---> Intervalo (de la variable independiente) donde se
% representaran las se~nales.
% ...DE SALIDA: NO HAY
%
% COMENTARIOS:
% La se~nal x debe ser una funcion simbolica, de una unica variable
% independiente, que debe ser t.
%
% VER TAMBI

EN:
% ParImparDis
%
%""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
% (C) NOMBRE ALUMNO, 2005.
% Version 1.0
%""""""""""""""""""""""""""""""""""""""""
syms t;
% Definicion de variable independiente simbolica.
xPAR = (x + subs(x,t,-t))/2;
% Parte Par de la se~nal.
xIMPAR = (x - subs(x,t,-t))/2;
% Parte Impar de la se~nal.
F = figure(1);
set(F,name,PARTE PAR Y PARTE IMPAR (SE
~
NALES CONTINUAS));
subplot(221)
ezplot(x,I);
Linea = findobj(type, line);
set(Linea, linewidth, 3);
title(SE
~
NAL ORIGINAL: x(t));
axis equal
grid
subplot(223)
ezplot(xPAR,I);
Linea = findobj(type, line);
set(Linea, linewidth, 3);
title(PARTE PAR: x_p(t));
axis equal
grid
subplot(224)
ezplot(xIMPAR,I);
Linea = findobj(type, line);
set(Linea, linewidth, 3);
title(PARTE IMPAR: x_i(t));
axis equal
grid
4
Preste atencion a lo siguiente:
La primera lnea, nos sirve para denir una nueva funcion, que podremos utilizar a partir de
ahora cuantas veces deseemos.
La funcion denida (llamada ParImparCon) tiene dos argumentos de entrada, y ninguno de
salida.
Cualquier lnea incluida en un chero .m que comience con el caracter %, es un comentario,
esto es, no forma parte del codigo. En particular, la sucesion de lneas comentadas que suceden
a la denicion de la funcion, seran la ayuda de la funcion, y facilitan el uso de la misma por
una persona distinta a la que la programo
3
. Compruebe esto, tecleando, desde la lnea de
comandos help ParImparCon, despues de que haya grabado el chero.
La posibilidad de incluir varias gracas en una misma gura mediante la funcion subplot.
Teclee help subplot, desde la lnea de comandos, para aprender a utilizarlo.
1.4. Hito 1
Calcule las partes Par e Impar de las siguientes se nales continuas, utilizando la funcion ParImparCon:
a. x
1
(t) = sen(t), representando en el intervalo [4, 4].
b. x
2
(t) = |cos(t)|, en el intervalo [3, 3].
c. x
3
(t) = 4 {t [u(t) u(t 1)] + (t + 2) [u(t 1) u(t 2)]}, en el intervalo [4, 4].
Compruebe que obtiene los resultados mostrados a continuacion. Para la primera se nal:
10 5 0 5 10
5
0
5
t
SEAL ORIGINAL: x(t)
10 5 0 5 10
5
0
5
t
PARTE PAR: x
p
(t)
10 5 0 5 10
5
0
5
t
PARTE IMPAR: x
i
(t)
Repare en que, por tratarse de una se nal con simetra impar, su parte par es la se nal identicamente
nula, y su parte impar coincide con la propia se nal.
Note, ademas, que se trata de una se nal periodica, de periodo 2, y que, por tanto, caben 4 periodos
(4 ondas completas) en el intervalo de visualizacion.
3
Tambien son de gran ayuda para el propio programador, si se utiliza la funcion alg un tiempo despues de haberla
programado.
5
Para la segunda se nal:
5 0 5
6
4
2
0
2
4
6
t
SEAL ORIGINAL: x(t)
5 0 5
6
4
2
0
2
4
6
t
PARTE PAR: x
p
(t)
5 0 5
6
4
2
0
2
4
6
t
PARTE IMPAR: x
i
(t)
En este caso, al ser una se nal con simetra par, es, precisamente, su parte impar la que se anula, y
la parte par la que coincide con la propia se nal.
Note, ademas, que la presencia del valor absoluto hace que toda la se nal quede por encima del eje
de abscisas, y que el periodo ahora sea (j), dando cabida a 6 periodos completos (6 semi
ondas) en el intervalo de visualizacion.
Por ultimo, para la tercera se nal:
4 2 0 2 4
1
0
1
2
3
4
t
SEAL ORIGINAL: x(t)
4 2 0 2 4
1
0
1
2
3
t
PARTE PAR: x
p
(t)
4 2 0 2 4
2
1
0
1
2
t
PARTE IMPAR: x
i
(t)
Como esta se nal no presenta ning un tipo de simetra, ahora son no nulas ni la parte par, ni la parte
impar.
6
No pase por alto, en los tres casos, que:
La parte par de una se nal, siempre tiene simetra par, as como la parte impar, siempre tiene
simetra impar.
Si sumamos la parte par y la parte impar de una se nal, obtenemos la se nal original.
2. Ejemplo 2
Calcule la parte par y la parte impar de la siguiente secuencia discreta:
3 4
-3 -4
1
n
1 2
-1 -2
. . .
. . .
-1
x[n]
2.1. Solucion al Ejemplo 2 con Matlab
Para calcular las partes par e impar de la secuencia, debemos efectuar las siguientes operaciones:
Par{x[n]} = x
p
[n] =
x[n] + x[n]
2
ImPar{x[n]} = x
i
[n] =
x[n] x[n]
2
En este caso, por tratarse de una secuencia discreta, no es necesario utilizar el calculo simbolico, y
basta con emplear el calculo matricial.
Esto quiere decir que las secuencias discretas se tratan, en Matlab, como vectores. Al utilizar
vectores para representar secuencias surge un problema cuando esas secuencias son de longitud
innita, es decir, con innitas muestras no nulas, al ser imposible trabajar con la totalidad de
la se nal. Preste especial cuidado en estos casos. Piense en la implicaciones que ello conlleva. Sepa,
desde ahora que, a veces, solo sera posible alcanzar resultados aproximados, y comportamientos
cualitativos.
Para resolver el ejemplo, creamos una nueva funcion llamada ParImparDis cuyo codigo puede ver
en la pagina siguiente. Ojeelo, y preste especial atencion a lo siguiente:
La forma en que abatimos una secuencia discreta.
La funcion utilizada para representar gracamente secuencias discretas (stem). Teclee help stem,
desde la lnea de comandos, para ver las distintas opciones de que disponemos.
7
function ParImparDis(x,n)
%""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
% PROP

OSITO:
% Programa que calcula las partes Par e Impar de una Secuencia Discreta,
% visualizando ademas, las tres secuencias.
%
% USO:
% ParImparDis(x,n)
%
% ARGUMENTOS...
% ...DE ENTRADA: x ---> Muestras de la secuencia discreta.
% n ---> Vector temporal discreto a que se refieren las
% muestras.
% ...DE SALIDA: NO HAY
%
% COMENTARIOS:
% Las muestras del vector x deben corresponder estar centradas respecto
% del origen, esto es, el vector n debe ser de la forma:
% [-L,...,0,...,L].
%
% VER TAMBI

EN:
% ParImparCon
%
%""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
% (C) NOMBRE ALUMNO, 2005.
% Version 1.0
%""""""""""""""""""""""""""""""""""""""""
xPAR = (x + x(end:-1:1))/2;
% Parte Par de la secuencia. Par determinar x[-n], basta con leer las
% muestras de la secuencia al reves, esto es, empezando por la ultima y
% terminando por la primera.
xIMPAR = (x - x(end:-1:1))/2;
% Parte Impar de la secuencia.
F = figure(1);
set(F,name,PARTE PAR Y PARTE IMPAR (SECUENCIAS DISCRETAS));
subplot(221)
stem(n,x,filled);
xlabel(n);
grid
title(SECUENCIA ORIGINAL: x[n]);
subplot(223)
stem(n,xPAR,filled);
xlabel(n);
grid
title(PARTE PAR: x_p[n]);
subplot(224)
stem(n,xIMPAR,filled);
xlabel(n);
grid
title(PARTE IMPAR: x_i[n]);
8
Una vez que hemos creado la funcion, para determinar la solucion del ejemplo, escribimos en la
lnea de comandos, las sentencias siguientes:
close all; clc; clear;
x = [-1*ones(1,10),1*ones(1,11)];
n = -10:10;
ParImparDis(x,n);
Y obtenemos el siguiente resultado:
10 5 0 5 10
1
0.5
0
0.5
1
n
SECUENCIA ORIGINAL: x[n]
10 5 0 5 10
0
0.2
0.4
0.6
0.8
1
n
PARTE PAR: x
p
[n]
10 5 0 5 10
1
0.5
0
0.5
1
n
PARTE IMPAR: x
i
[n]
3. Ejercicio 2
Calcule la parte par y la parte impar de la siguiente secuencia discreta:
3
4 -3
-4
1
n
1 2 -1 -2 . . .
. . .
-1
[ ] x n
2 2
-1
5
-5
1
9
4. Hito 2
Utilice el programa ImparParDis para resolver el Ejercicio 2.
Compruebe que se obtiene el siguiente resultado:
5 0 5
1
0.5
0
0.5
1
1.5
2
n
SECUENCIA ORIGINAL: x[n]
5 0 5
0.5
0
0.5
1
1.5
n
PARTE PAR: x
p
[n]
5 0 5
1.5
1
0.5
0
0.5
1
1.5
n
PARTE IMPAR: x
i
[n]
Observe que sigue siendo valido que la parte par tiene simetra par, la parte impar tiene simetra
impar, y la suma de ambas, coincide con la secuencia original.
10
5. Potencia y Energa
En este apartado aprenderemos a calcular los valores de potencia y energa asociados tanto a
se nales continuas como a secuencias discretas.
5.1. Ejemplo 3
Calcule la energa de la se nal x
a
(t) = e
2t
u(t), y la potencia de la secuencia x
b
[n] = cos(

4
n).
5.2. Solucion al Ejemplo 3
Para calcular la energa (note que es se nal continua):
close all; clc; clear;
syms t;
xa = exp(-2*t)*heaviside(t);
E_xa = int(xa^2,t,-Inf,+Inf)
Y encontramos que:
E
x
a
(t)
=
1
4
Preste atencion al calculo de la integral mediante el comando int, (solo es preciso indicar la funcion
que se quiere integrar, la variable de integracion, y los lmites de la integral denida, en este caso,
desde hasta +). Fjese tambien en que, en este caso, no es necesario indicar explcitamente
el valor absoluto (presente en la expresion matematica que dene la energa), al estar la funcion
elevada al cuadrado, y por tratarse de una se nal real.
j Aprenda las posibilidades que ofrece la funcion int, llamando a la ayuda desde la lnea de
comandos, help int. Piense en todo el partido que puede sacar a esta funcion, calculando inte-
grales a golpe de tecla.
A continuacion, calculamos el valor de potencia solicitado. Dese cuenta de que se trata de una
secuencia discreta y periodica (N
0
= 8), y que, por tanto, podemos reducir el calculo del valor
medio del modulo al cuadrado de la se nal; eso es precisamente la potencia, a un solo periodo.
Escribimos:
close all; clc; clear;
n = 0:7;
x = cos((pi/4)*n);
N0 = 8;
P_xb = (1/N0)*sum(abs(x).^2)
pause
Y encontramos que:
P
x
b
[n]
=
1
2
Repare en la manera de indicar el valor absoluto (abs), y en la necesidad de incluir un punto (.)
previo a la potenciacion (.^), para indicar que la operacion se hace elemento a elemento, y que no
estamos realizando un producto de vectores, lo que dara como resultado una matriz.
6. Ejercicio 3
Calcule la energa de la secuencia x
1
[n] = (
1
2
)
n
u[n], y la potencia de la se nal x
2
(t) = e
j(2t+

4
)
.
11
7. Hito 3
Resuelva el Ejercicio 3, y compruebe que los valores pedidos son:
E
x
1
[n]
=
4
3
P
x
2
(t)
= 1
Tenga cuidado con la secuencia, porque es de duracion innita. Seleccione una precision alta para
calcular esta energa (File Preferences... Numeric format: long), y utilice sucesivamente, 5,
10 y 100 puntos para calcularla. Compruebe que as, la estimacion de la energa va siendo cada vez
mejor:
1.33203125000000, 1.33333206176758, 1.33333333333333
En cuanto a la se nal, fjese que es periodica de periodo , (recuerde que las exponenciales complejas
continuas siempre son periodicas). Aproveche para representar gracamente esta se nal, y compro-
bar visualmente su periodicidad. No olvide que, por tratarse de una se nal compleja, necesita dos
gracas para ello, una para la parte real, otra para la parte imaginaria, o bien, una para el modulo,
y otra para el argumento. Utilice el siguiente codigo para la visualizacion:
close all; clc; clear;
syms t;
x = exp(j*(2*t+(pi/4)));
figure(1);
subplot(221)
ezplot(x*x,[-1.5*pi,1.5*pi]);
Linea = findobj(type, line);
set(Linea, linewidth, 2.5);
ylabel(|x(t)|);
xlabel(t);
title(M

ODULO);
axis equal
grid
subplot(222)
ezplot(atan(imag(x)/real(x)),[-1.5*pi,1.5*pi]);
Linea = findobj(type, line);
set(Linea, linewidth, 2.5);
ylabel(Arg\{x(t)\});
xlabel(t);
title(ARGUMENTO);
axis equal
grid
subplot(223)
ezplot(real(x),[-1.5*pi,1.5*pi]);
Linea = findobj(type, line);
set(Linea, linewidth, 2.5);
ylabel(Real\{x(t)\});
xlabel(t);
title(PARTE REAL);
axis equal
grid
subplot(224)
ezplot(imag(x),[-1.5*pi,1.5*pi]);
Linea = findobj(type, line);
set(Linea, linewidth, 2.5);
ylabel(Imag\{x(t)\});
xlabel(t);
title(PARTE IMAGINARIA);
axis equal
grid
12
Y obtendra como resultado:
4 2 0 2 4
2
1
0
1
2
3
4
t
MDULO
|
x
(
t
)
|
4 2 0 2 4
3
2
1
0
1
2
3
t
ARGUMENTO
A
r
g
{
x
(
t
)
}
4 2 0 2 4
3
2
1
0
1
2
3
t
PARTE REAL
R
e
a
l
{
x
(
t
)
}
4 2 0 2 4
3
2
1
0
1
2
3
t
PARTE IMAGINARIA
I
m
a
g
{
x
(
t
)
}
Preste especial atencion a lo siguiente:
Como el periodo de la se nal (T
0
= ) se aprecia visualmente en ambas representaciones
(moduloargumento, realimaginaria).
Todos los angulos, en la representacion graca del argumento se connan al intervalo [

2
, +

2
].
El desfase que introduce en la se nal la fase de

4
, desplazando las gracas un cuarto de periodo
hacia la izquierda.
13
8. Operaciones Basicas con Se nales
Por ultimo, ilustraremos con algunos ejemplos las operaciones basicas con se nales continuas.
8.1. Ejemplo 4
Siendo x(t) la se nal continua de la gura, obtenga x

t
2
+ 1

:
1 2
1
t
x(t)
8.2. Solucion al Ejemplo 4 con Matlab
Para calcular la transformacion solicitada, debemos realizar un escalado y un desplazamiento,
ambos en el eje OX. El orden en que realicemos las operaciones es indiferente, siempre y cuando
pongamos cuidado en hacerlo bien. Utilizamos las siguientes sentencias, para obtener x

t
2
+1

por
ambos caminos:
close all; clc; clear;
syms t; x =
heaviside(t)-heaviside(t-1)+(-t+2)*(heaviside(t-1)-heaviside(t-2));
y1 = subs(x,t,t/2);
z1 = subs(y1,t,t+2);
figure(1);
subplot(321)
ezplot(x,[-3,5]);
Linea = findobj(type, line);
set(Linea, linewidth, 3);
title(x(t));
axis equal
grid
pause
subplot(323)
ezplot(y1,[-3,5]);
Linea = findobj(type, line);
set(Linea, linewidth, 3);
title(PRIMERO ESCALAR);
ylabel(y_1(t)=x(t/2));
axis equal
grid
pause
subplot(325)
ezplot(z1,[-3,5]);
Linea = findobj(type, line);
set(Linea, linewidth, 3);
ylabel(z_1(t)=y_1(t+2)=x(t/2+1));
title(DESPU

ES DESPLAZAR);
axis equal
grid
pause
14
y2 = subs(x,t,t+1);
z2 = subs(y2,t,t/2);
subplot(322)
ezplot(x,[-3,5]);
Linea = findobj(type, line);
set(Linea, linewidth, 3);
title(x(t));
axis equal
grid
pause
subplot(324)
ezplot(y2,[-3,5]);
Linea = findobj(type, line);
set(Linea, linewidth, 3); title(PRIMERO DESPLAZAR);
ylabel(y_2(t)=x(t+1)); axis equal grid pause
subplot(326)
ezplot(z2,[-3,5]);
Linea = findobj(type, line);
set(Linea, linewidth, 3);
ylabel(z_2(t)=y_2(t/2)=x(t/2+1));
title(DESPU

ES ESCALAR);
axis equal
grid
De manera que obtenemos, sucesivamente, las gracas siguientes:
2 0 2 4
1
0
1
2
t
x(t)
2 0 2 4
0.5
0
0.5
1
1.5
t
PRIMERO ESCALAR
y
1
(
t
)
=
x
(
t
/
2
)
2 0 2 4
1
0
1
2
t
DESPUS DESPLAZAR
z
1
(
t
)
=
y
1
(
t
+
2
)
=
x
(
t
/
2
+
1
)
2 0 2 4
1
0
1
2
t
x(t)
2 0 2 4
0.5
0
0.5
1
1.5
t
PRIMERO DESPLAZAR
y
2
(
t
)
=
x
(
t
+
1
)
2 0 2 4
1
0
1
2
t
DESPUS ESCALAR
z
2
(
t
)
=
y
2
(
t
/
2
)
=
x
(
t
/
2
+
1
)
15
Tome nota de lo siguiente:
Cada columna representa un orden diferente en las operaciones (en la primera columna,
primero se escala y luego se desplaza; en la segunda columna, primero se desplaza y luego se
escala).
Efectivamente, por ambos caminos llegamos al mismo resultado.
Si primero escalamos y luego desplazamos, las cuantas de ambas operaciones deben ser:
1
2
para el escalado, y 2 (j) para el desplazamiento
4
.
Si primero desplazamos y luego escalamos, las cuantas de ambas operaciones deben ser:
1 para el escalado, y
1
2
para el desplazamiento, es decir, las que se obtienen directamente por
inspeccion visual de la se nal.
Aclarado lo anterior, sistematizamos la operacion, escribiendo una funcion que obtenga y represente
cualquier transformacion de una se nal. Mire como hacerlo:
function OperacionesBasicas(x,Ix,y,Iy)
%""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
% PROP

OSITO:
% Programa que realiza una trasformacion sobre una se~nal y representa ambas
% en los intervalos solicitados.
%
% USO:
% OperacionesBasicas(x,Ix,y,Iy)
%
% ARGUMENTOS...
% ...DE ENTRADA: x ---> Se~nal original.
% Ix ---> Intervalo de visualizacion de la se~nal original.
% y ---> Se~nal transformada.
% Iy ---> Intervalo de visualizacion de la se~nal
% transformada.
% ...DE SALIDA: NO HAY
%
% COMENTARIOS:
% La se~nal x debe ser una funcion simbolica, de una unica variable
% independiente, que debe ser t.
%
% VER TAMBI

EN:
%
%
%""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
% (C) NOMBRE ALUMNO, 2005.
% Version 1.0
%""""""""""""""""""""""""""""""""""""""""
syms t;
F = figure(1);
set(F,name,OPERACIONES B

ASICAS CON SE
~
NALES CONTINUAS);
subplot(211)
ezplot(x,Ix);
Linea = findobj(type, line);
set(Linea, linewidth, 3);
title(SE
~
NAL ORIGINAL: x(t));
axis equal
grid
4
Recuerde que, de manera general, si expresamos la se nal como x(B t + C), cuando primero se escala y luego
se desplaza, el escalado sera en la cuanta indicada por B, pero j, porque el desplazamiento sera en la cuanta
indicada por
C
B
.
16
subplot(212)
ezplot(y,Iy);
Linea = findobj(type, line);
set(Linea, linewidth, 3);
title(TRANSFORMACI

ON SOLICITADA: y(t));
axis equal
grid
Con ayuda de la funcion anterior, para resolver el ejemplo 4, basta teclear desde la lnea de
comandos, las siguientes sentencias:
close all; clc; clear;
syms t;
x = heaviside(t)-heaviside(t-1)+(-t+2)*(heaviside(t-1)-heaviside(t-2));
y = subs(x,t,t/2+1);
OperacionesBasicas(x,[-4 4],y,[-4 4])
Y obtenemos:
4 3 2 1 0 1 2 3 4
0.5
0
0.5
1
1.5
t
SEAL ORIGINAL: x(t)
4 3 2 1 0 1 2 3 4
0.5
0
0.5
1
1.5
t
TRANSFORMACIN SOLICITADA: y(t)
9. Ejercicio 4
Siendo x(t) la siguiente se nal:
x(t)
t 1 2 3 4 -1
-1
1
2
17
obtenga las siguientes trasformaciones de la se nal:
a. x(t + 1)
b. x(2t 1)
c. x(2t + 4)
d. x(t 2)
e. x

t+6
3

f.
1
2
x


t
3
+ 2

1
10. Hito 4
Resuelva el Ejercicio 4 con ayuda de la funcion Se~nalesBasicas, y compruebe que se obtienen los
siguientes resultados:
x(t + 1):
6 4 2 0 2 4 6
1
0
1
2
3
t
SEAL ORIGINAL: x(t)
6 4 2 0 2 4 6
1
0
1
2
3
t
TRANSFORMACIN SOLICITADA: y(t)
x(2t 1):
6 4 2 0 2 4 6
1
0
1
2
3
t
SEAL ORIGINAL: x(t)
6 4 2 0 2 4 6
1
0
1
2
3
t
TRANSFORMACIN SOLICITADA: y(t)
18
x(2t + 4):
6 4 2 0 2 4 6
1
0
1
2
3
t
SEAL ORIGINAL: x(t)
6 4 2 0 2 4 6
1
0
1
2
3
t
TRANSFORMACIN SOLICITADA: y(t)
x(t 2):
6 4 2 0 2 4 6
1
0
1
2
3
t
SEAL ORIGINAL: x(t)
6 4 2 0 2 4 6
1
0
1
2
3
t
TRANSFORMACIN SOLICITADA: y(t)
19
x

t+6
3

:
6 4 2 0 2 4 6
1
0
1
2
3
t
SEAL ORIGINAL: x(t)
6 4 2 0 2 4 6
1
0
1
2
3
t
TRANSFORMACIN SOLICITADA: y(t)

1
2
x


t
3
+ 2

1:
6 4 2 0 2 4 6
1
0
1
2
3
t
SEAL ORIGINAL: x(t)
6 4 2 0 2 4 6
3
2
1
0
t
TRANSFORMACIN SOLICITADA: y(t)
20

También podría gustarte