PRACTICAS
TRATAMIENTO DE SEALES
INTRODUCCIN
La aproximacin a la seal continua ser tanto mejor cuanto mayor sea el nmero de
muestras que seleccionemos para representarla, es decir, cuanto menor sea el intervalo
temporal utilizado para obtener puntos de la seal. A este intervalo temporal lo
denominaremos perodo de muestreo, y a la operacin consistente en discretizar una seal
continua muestrear. El perodo de muestreo elegido debe ser suficientemente pequeo
para que la seal que queremos representar quede perfectamente identificada.
En Matlab, para representar seales en el tiempo, debemos calcular los valores que en
este eje corresponden a cada punto de la seal muestreada utilizando la informacin que
tenemos del intervalo de muestreo. Si queremos representar una seal constante de valor
1 entre 0 y 1 segundo mediante 100 muestras, generaremos 2 vectores, uno para el eje de
amplitudes y otro para el eje de tiempos. En este caso el intervalo ser de 0.01 segundos.
Los vectores necesarios sern:
1
TRATAMIENTO DE SEALES-PRCTICAS
x = ones(1,100);
t = [0.01:0.01:1];
plot(t,x);
xlabel('tiempo (seg)');
ylabel('amplitud');
title('Representacin continua de una seal discreta');
1.8
1.6
1.4
1.2
amplitud
0.8
0.6
0.4
0.2
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
tiempo (seg)
stem([0:0.015:0.08], sin(2*pi*50*[0:0.015:0.08]));
axis([0 0.1 -1.5 1.5]);
xlabel('tiempo (seg)');
ylabel('amplitud');
title('Sinusoide 50 Hz muestreo 0.015 seg');
2
TRATAMIENTO DE SEALES-PRCTICAS
amplitud 0.5
-0.5
-1
-1.5
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
tiempo (seg)
stem([0:0.001:0.08], sin(2*pi*50*[0:0.001:0.08]));
axis([0 0.1 -1.5 1.5]);
xlabel('tiempo (seg)');
ylabel('amplitud');
title('Sinusoide 50 Hz muestreo 0.001 seg');
Sinusoide 50 Hz muestreo 0.001 seg
1.5
0.5
amplitud
-0.5
-1
-1.5
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
tiempo (seg)
3
TRATAMIENTO DE SEALES-PRCTICAS
Las seales son funciones del tiempo que representan la evolucin de una determinada
variable, como puede ser la tensin en bornes de un condensador, la temperatura de un
horno, o la actividad elctrica de una fibra muscular. Distinguiremos dos tipos de seales,
continuas y discretas.
Las seales continuas, x(t), son funciones de una variable continua (tiempo), mientras
que las discretas, x[n], se definen nicamente para valores discretos de la variable
independiente.
y t x t
y t x t T
x t x t T
x n x n N
4
TRATAMIENTO DE SEALES-PRCTICAS
x t x t ; x n x n
x t x t ; x n x n
Toda seal puede ser descompuesta en su parte par y su parte impar de la forma
siguiente:
x t x p t xi t
donde
1
xp t x t x t
2
1
xi t x t x t
2
1 n0
n
0 n0
n = -4:1:4;
x = zeros(size(n));
x(n==0) = 1;
stem(n,x);
axis([-4 4 -0.5 1.5]);
title('Seal impulso unidad');
xlabel('n (muestras)');
ylabel('x[n]');
5
TRATAMIENTO DE SEALES-PRCTICAS
1
x[n]
0.5
-0.5
-4 -3 -2 -1 0 1 2 3 4
n (muestras)
1 n0
u n
0 n0
n = -4:1:4;
x= zeros(size(n));
x(n>=0)=1;
stem(n,x);
axis([-4 4 -0.5 1.5]);
title('Seal escaln');
xlabel('n (muestras)');
ylabel('x[n]');
6
TRATAMIENTO DE SEALES-PRCTICAS
Seal escaln
1.5
1
x[n]
0.5
-0.5
-4 -3 -2 -1 0 1 2 3 4
n (muestras)
n
u n k
k
n u n u n 1
Y se cumplir tambin:
u n n k
k 0
x n n n0 x n0 n n0
1 t 0
u t
0 t0
7
TRATAMIENTO DE SEALES-PRCTICAS
t k 1 1
1 k
u dd 1 d k 1 t u t
k!
Para definir el impulso unidad partimos de un pulso de rea unidad, cuya integral es
una aproximacin del escaln unidad. A medida que hacemos ms estrecho el pulso
manteniendo su rea constante, su integral es una mejor aproximacin del escaln unidad.
En el lmite podemos escribir:
d
t u t
dt
x t t t dt x t
0 0
t2 n2
E x t dt E x n
2 2
t1 n1
t2 n2
1 1
x t dt P x n
2 2
P
t 2 t1 t1 n2 n1 1 n1
1.7.- Sistemas
8
TRATAMIENTO DE SEALES-PRCTICAS
Un sistema es una relacin matemtica entre una seal de entrada y una seal de
salida.
x t y t
y t g x t
1.7.2.1.- Linealidad
f 1 x1 t 2 x2 t f 1 x1 t f 2 x2 t 1 f x1 t 2 f x2 t 1 y1 t 2 y 2 t
1.7.2.2.- Memoria
1.7.2.3.- Causalidad
2.- Enunciados
9
TRATAMIENTO DE SEALES-PRCTICAS
2t 2t 0
a) x1 t u t 1 b) x2 t 2 0.5t 0t 2
0 resto
sen 6t
e) x5 t e
2 t
f ) x6 t
6t
2 t
g ) x7 t sen (intervalo 20, 20 )
t 2
Ejemplos:
u = inline('t>=0')
t=-10:0.01:10;
x1 = u(t-1);
plot(t,x1)
axis([-10 10 -0.1 1.1]);
title('Seal 1a');
grid;
xlabel('tiempo (segundos)');
ylabel('x1(t)');
Seal 1a
0.8
0.6
x 1(t)
0.4
0.2
-10 -8 -6 -4 -2 0 2 4 6 8 10
tiempo (segundos)
10
TRATAMIENTO DE SEALES-PRCTICAS
t=-10:0.01:10;
plot(t,u(t),'r');
hold on;
plot(t,u(t-1),'k','linewidth',2);
axis([-10 10 -0.1 1.1]);
grid on;
title('Seal 1a');
xlabel('tiempo (segundos)');
ylabel('u(t), u(t-1)');
legend('u(t)', 'u(t-1)')
Seal 1a
u(t)
1 u(t-1)
0.8
0.6
u(t), u(t-1)
0.4
0.2
-10 -8 -6 -4 -2 0 2 4 6 8 10
tiempo (segundos)
b) Para resolver este apartado, puede ser conveniente el uso de parntesis lgicos. Por ejemplo, el alumno
puede considerar
fb = inline('(2+t).*(-2<=t).*(t<0) ')
y ampliarla para conseguir la funcin pedida.
Por qu se pone .* en vez de *? Si se pone * funciona fb(3)? Si se pone * funciona fb(0:.1:3)?
t0
11
TRATAMIENTO DE SEALES-PRCTICAS
2.3.- Dibujar las siguientes seales, su parte par e impar, y reconstruir la seal original a
partir de ellas:
2 1 t 3
a ) x1 t e
t 1
b) x 2 t
0 resto
c) x3 t 3sen 6t c ) x4 t 4 cos 2t
x t 4e 2t cos t
a ) x t 1 b) x 2 t
t
c) x 2t 1 d ) x 4
2
e) x t x t u t f ) x t t 1 t 1
2.5.- Una forma aproximada de calcular la energa de una seal x t es aproximar el rea
de x 2 t utilizando un intervalo de muestreo muy pequeo. Si, adems, x t es una
seal peridica, podemos calcular su potencia dividiendo la energa de un periodo entre el
periodo.
Dada la seal:
sen 2t
x t 3 t
t
sen 2t
a) Dibuja la seal x t . Cul es su relacin con la seal 3 ?
t
b) Calcula la energa de la seal.
c) Calcula la potencia de la seal si la seal x t es un periodo de una seal
peridica con T =1.4 segundos.
12
TRATAMIENTO DE SEALES-PRCTICAS
2.6.- Dibuje las siguientes seales y determine si son seales peridicas, y en ese caso,
cul es su perodo fundamental.
a ) x1 t 3 cos 4t
3
b) x2 t Re e j t 1 c) x3 t cos 2 2t
13