Está en la página 1de 29

DEPARTAMENTO DE ELECTRICA Y ELECTRNICA

SEALES Y SISTEMAS

TRABAJO FORMATIVO No. 1


NRC: 3165
INTEGRANTES:
JOS ARELLANO
MAURICIO BEZ
BRYAN RUEDA

Sangolqui - Ecuador

TEMA:
Introduccin al uso de seales.
OBJETIVOS:
o Utilizar de Matlab para la generacin y visualizacin de seales
o Analizar las propiedades y transformaciones de la variable independiente de seales.
E. W. Kamen y B.S Heck, Fundamentos de Seales y Sistemas usando la web y Matlab. 3ra Ed.,
Mxico, Pearson Education, 2008;
Ejercicio # 1.1 Considere las seales de tiempo continuo de la figura P1.1
i)

Muestre que cada una de estas seales es igual a la suma de los pulsos
| |
rectangulares
y/o los pulsos triangulares
.

ii)

Utilice MATLAB para graficar las se;ales de la figura P1.1

CDIGO DEL PROGRAMA


x1=@(t) rectpuls(t);
x2=@(t) tripuls(t);
s=-7:0.000001:7;
pa1=x1(s/4);
pa2=x1(s/2);
pa3=x1(s/4)+x1(s/2);
figure(1)%GRAFICA A
subplot(2,3,1)
plot(s,pa1), axis([-3 3 -1 2])
title('rec(t/4)')
grid on
subplot(2,3,3)
plot(s,pa2), axis([-3 3 -1 2])
grid on

title('rec(t/2)')
subplot(2,3,5)
plot(s,pa3), axis([-3 3 -1 3])
title('x(t)=rec(t/2)+rec(t/4)')
grid on
figure(2)%GRAFICA B
pb1=2*x2(s/8);
pb2=x1(s/4);
pb3=pb1.*(pb2)-pb2;
pb4=pb1-pb3;
subplot(2,3,1)
plot(s,pb1), axis([-5 5 -1 3])
title('2*tripulso(t/8)')
grid on
subplot(2,3,2)
plot(s,pb2), axis([-5 5 -1 3])
title('rect(t/4)')
grid on
subplot(2,3,3)
plot(s,pb3), axis([-5 5 -1 3])
title('rect(t/8)*tripulso(t/2)-rect(t/8)')
grid on
subplot(2,3,5)
plot(s,pb4), axis([-5 5 -1 3])
title('x(t)=tripulso(t/8)+rect(t/8)*tripulso(t/2)-rect(t/8)')
grid on
figure(3)%GRAFICA C
pc1=2*x1(s/12);
pc2=2*x1(s/6);
pc3=2*x2(s/6);
pc4=pc1+pc2+pc3;
subplot(2,3,1)
plot(s,pc1), axis([-7 7 -1 7])
title('2*rect(t/12)')
grid on
subplot(2,3,2)
plot(s,pc2), axis([-7 7 -1 7])
title('2*rect(t/6)')
grid on
subplot(2,3,3)
plot(s,pc3), axis([-7 7 -1 7])
title('2*tripulso(t/6)')
grid on
subplot(2,3,5)
plot(s,pc4), axis([-7 7 -1 7])
title('x(t)=2*(rect(t/6)+rect(t/12)+tripulso(t/6))')
grid on
figure(4)%GRAFICA D
pd1=4*x1(s/4);
pd2=2*x2(s/4);
pd3=pd1-pd2;
subplot(2,3,1)
plot(s,pd1), axis([-3 3 -1 5])
title('4*rect(t/4)')
grid on
subplot(2,3,3)
plot(s,pd2), axis([-3 3 -1 5])

title('2*tripulso(t/4)')
grid on
subplot(2,3,5)
plot(s,pd3), axis([-3 3 -1 5])
title('x(t)=4*rect(t/4)-2*tripulso(t/4)')
grid on
figure(5)%GRAFICA E
m=100;
pe1=0;
for i=0:2:m
pe1=pe1+x1(s-(0.5+i));
pe2=x1(s-(0.5));
end
subplot(1,2,1)
plot(s,pe2), axis([-1 6 -1 3])
title('rect(t-0.5)')
grid on
subplot(1,2,2)
plot(s,pe1), axis([-1 6 -1 3])
title('x(t)=rect(t-(0.5+n))')
grid on

GRFICA A

GRFICA B

GRFICA C

GRFICA D

GRFICA E

Ejercicio # 1.2 Obtener la grfica por computadora de una seal de tiempo continuo requiere algo
de cuidado al elegir el incremento de tiempo
(el espacio entre los puntos) Como explicamos en
la seccin 1.1, un incremento muy grande provocar una grfica dentada. Ms an, un incremento
muy grande podra provocar un fenmeno conocido como aliasing o apodamiento, el cual
distorsiona la informacin dada de una seal. Para evitar el aliasing al definir una funcin sinusoide
. Una regla de oro en el caso de una
mediante computadora. Como x(t)=cos(wt+b), elija

funcin sinusoide en decaimiento exponencial como


.
(
)

es elegir

a) Calcule el mximo incremento de tiempo para graficar


en MATLAB,
Verifique su resultado mediante la grfica
para
a
s con los
siguientes incrementos de tiempo:
,
,
,
. Observe
el aparente camcio de frecuencia en la grfica debido al efecto de aliasing para
Cmo espera que su grfica aparezca cuando
? Verifique su
resultado.
Intentamos graficar la funcin
est dado por:

por lo tanto el incremento que se debera usar

Como podemos ver en la funcin

, se tiene que

, por lo tanto se tiene:

Donde podemos ver que el valor mximo que se nos recomienda para usar en los
incrementos de tiempo es de 1.
A continuacin comprobaremos lo anteriormente dicho graficando la seal
para
, con aumentos t de :
,
,
,
Para

Sin (pi*t) Aumentos de 0.1


1
0.8
0.6
0.4

xt

0.2
0
-0.2
-0.4
-0.6
-0.8
-1

Codigo fuente
clc
clear all
t=[0:0.1:20]
xt=sin(pi*t)
grid on
hold on
plot(t,xt)
xlabel('t')
ylabel('xt')

10
t

12

14

16

18

20

title('Sin (pi*t) Aumentos de 0.1')

Para
Sin (pi*t) Aumentos de 0.5
1
0.8
0.6
0.4

xt

0.2
0
-0.2
-0.4
-0.6
-0.8
-1

10
t

12

14

16

18

20

14

16

18

20

Codigo fuente
clc
clear all
t=[0:0.5:20]
xt=sin(pi*t)
grid on
hold on
plot(t,xt)
xlabel('t')
ylabel('xt')
title('Sin (pi*t) Aumentos de 0.5')
hold off
Para
Sin (pi*t) Aumentos de 0.9
1
0.8
0.6
0.4

xt

0.2
0
-0.2
-0.4
-0.6
-0.8
-1

10
t

12

Codigo Fuente
clc
clear all

Sin (pi*t) Aumentos de 1.5


1
0.8
0.6
0.4
0.2
0

xt

Para

t=[0:0.9:20]
xt=sin(pi*t)
grid on
hold on
plot(t,xt)
xlabel('t')
ylabel('xt')
title('Sin (pi*t) Aumentos de 0.9')
hold off
.

-0.2
-0.4
-0.6
-0.8
-1

10
t

Codigo fuente
clc
clear all
t=[0:1.5:20]
xt=sin(pi*t)
grid on
hold on
plot(t,xt)
xlabel('t')
ylabel('xt')
title('Sin (pi*t) Aumentos de 1.5')
hold off

12

14

16

18

20

b) Calcule el tiempo mximo de incremento para graficar


su resultado al graficar
para
a
s con
Intentamos graficar la funcin
debera usar est dado por:

. Verifique
s

por lo tanto el incremento que se

Como podemos ver en la funcin


tanto se tiene:

, se tiene que

, por lo

Donde podemos ver que el valor mximo que se nos recomienda para usar en los
incrementos de tiempo es de 0.25
A continuacin comprobaremos lo anteriormente dicho graficando la seal
para
, con aumentos t de :
,
,
.
Para

.
e-0.1tCos(pi*t) Aumentos de 0.1
1
0.8
0.6
0.4

xt

0.2
0
-0.2
-0.4
-0.6
-0.8
-1

10
t

12

14

Codigo fuente
clc
clear all
t=[0:0.1:20]
xt=exp(-0.1*t)*cos(pi*t)
grid on
hold on
plot(t,xt)
xlabel('t')
ylabel('xt')
title('e^{-0.1t}Cos(pi*t) Aumentos de 0.1')
hold off

16

18

20

Para

.
e-0.1tCos(pi*t) Aumentos de 0.5
1
0.8
0.6
0.4

xt

0.2
0
-0.2
-0.4
-0.6
-0.8
-1

10
t

12

14

16

18

20

16

18

20

Cdigo Fuente
clc
clear all
t=[0:0.5:20]
xt=exp(-0.1*t)*cos(pi*t)
grid on
hold on
plot(t,xt)
xlabel('t')
ylabel('xt')
title('e^{-0.1t}Cos(pi*t) Aumentos de 0.5')
hold off
Para

.
e-0.1tCos(pi*t) Aumentos de 1
1
0.8
0.6
0.4

xt

0.2
0
-0.2
-0.4
-0.6
-0.8
-1

Codigo Fuente
clc
clear all

10
t

12

14

t=[0:1:20]
xt=exp(-0.1)*cos(pi*t)
grid on
hold on
plot(t,xt)
xlabel('t')
ylabel('xt')
title('e^{-0.1}Cos(pi*t) Aumentos de 1')
hold off
.
e-0.1tCos(pi*t) Aumentos de 1.5
1
0.8
0.6
0.4
0.2
xt

Para

0
-0.2
-0.4
-0.6
-0.8

10
t

12

14

Codigo Fuente
clc
clear all
t=[0:1.5:20]
xt=exp(-0.1)*cos(pi*t)
grid on
hold on
plot(t,xt)
xlabel('t')
ylabel('xt')
title('e^{-0.1}Cos(pi*t) Aumentos de 1.5')
hold off

16

18

20

Para

.
e-0.1tCos(pi*t) Aumentos de 2
1
0.9
0.8
0.7

xt

0.6
0.5
0.4
0.3
0.2
0.1

10
t

12

14

16

18

20

Cdigo Fuente
clc
clear all
t=[0:2:20]
xt=exp(-0.1)*cos(pi*t)
grid on
hold on
plot(t,xt)
xlabel('t')
ylabel('xt')
title('e^{-0.1}Cos(pi*t) Aumentos de 2')
hold off
(

c) Calcule el tiempo mximo de incremento para graficar


sus resultados mediante una grafica
para t=0 a t=10s con

). Verifique

El problema con el aliasing existe no solamente con las grficas, sino tambin con el
procesamiento digital de seales continuas en el tiempo. Un programa de
computadora que emula un sistema de tiempo continuo debe tener una seal de
entrada definida de tal manera que esta tenga el mnimo aliasing.
En referencia al ejercicio 1.2 realice un resumen sobre el fenmeno conocido como
aliasing y relacione con lo aprendido en muestreo. Cite por lo menos 2 ejemplos
prcticos.
Intentamos graficar la funcin
debera usar est dado por:

Como podemos ver en la funcin


se tiene:

por lo tanto el incremento que se

, se tiene que

, por lo tanto

Donde podemos ver que el valor mximo que se nos recomienda para usar en los
incrementos de tiempo es de 0.61
A continuacin comprobaremos lo anteriormente dicho graficando la seal
para
, con aumentos t de :
,
,
e-tCos((pi/4)*t) Aumentos de 0.1
1.2

0.8

xt

0.6

0.4

0.2

-0.2

Para

10
t

clc
clear all
syms t
x=(exp(-t)*cos((pi/4)*t));
t=[0:0.1:20];
xt=eval(x);
grid on
hold on
plot(t,xt);
xlabel('t')
ylabel('xt')
title('e^{-t}Cos(pi*t) Aumentos de 0.1')
hold off
Para

12

14

16

18

20

e-tCos((pi/4)*t) Aumentos de 1.2


1.2

0.8

xt

0.6

0.4

0.2

-0.2

10
t

12

14

16

18

20

clc
clear all
syms t
x=(exp(-t)*cos((pi/4)*t));
t=[0:1.2:20];
xt=eval(x);
grid on
hold on
plot(t,xt);
xlabel('t')
ylabel('xt')
title('e^{-t}Cos(pi*t) Aumentos de 1.2')
hold off
Para
e-tCos((pi/4)*t) Aumentos de 3
1.2

0.8

xt

0.6

0.4

0.2

-0.2

10
t

Codigo Fuente
clc
clear all
syms t
x=(exp(-t)*cos((pi/4)*t));
t=[0:3:20];
xt=eval(x);

12

14

16

18

grid on
hold on
plot(t,xt);
xlabel('t')
ylabel('xt')
title('e^{-t}Cos(pi*t) Aumentos de 3')
hold off

Aliasing
Sabemos que una seal continua definida en el tiempo no puede ser de banda limitada. Debido a
que las seales reales son limitadas en el tiempo.
Si se muestrea una seal limitada en el tiempo con un intervalo de muestreo T no importa que tan
pequeo sea este intervalo
Se dice que se produce aliasing cuando se pretende discretizar una funcin continua, y la
frecuencia de muestreo que se usa es inferior a la frecuencia de Nyquist, por lo cual la frecuencia
de muestreo es insuficiente para realizar una correcta reconstruccin de la seal original.
Segn el teorema de Nyquist o de Muestreo cuando se pretende discretizar una seal continua es
necesario que la frecuencia de muestreo sea superior al doble de la mxima frecuencia a
muestrear, para que se pueda realizar una correcta reconstruccin de la seal original
Dnde:
Frecuencia de muestreo
Mxima frecuencia de la seal a discretizar
Ejercicio # 1.5
Utilice MATLAB para graficar las siguientes seales, sobre el intervalo de
[
]
a)
b)
* (
)
+
(
)

CDIGO DEL PROGRAMA


f1=@(t) exp(t);
f2=@(t) cos(t);
f3=@(t) heaviside(t);
s=-1:0.000001:5;
p=pi;
figure(1)
x1=(f1(-s).*f3(s))+((f1(-s).*(f1(2*s-4)-1)).*f3(s-2))-(f1(s-4).*f3(s-4));
plot(s,x1), axis([-1 5 -1 5])
title('Grfica 1.5a');
xlabel('t');
ylabel('x(t)');
grid on
figure(2)
x2=f2(s).*(f3(s+(p/2))-2*f3(s-p))+(f2(s).*f3(s-(3*p/2)));
plot(s,x2), axis([-1 5 -1 2])
title('Grfica 1.5b');
xlabel('t');
ylabel('x(t)');
grid on

GRFICA A

GRFICA B

Ejercicio # 1.9
Utilice un mtodo analtico para determinar si las seales de la (a) a la (f) son peridicas; si
lo son, encuentre el periodo fundamental. Utilice MATLAB para graficar cada seal y

verifique su prediccin de periodicidad. Utilice un incremento pequeo de tiempo para las


seales de tiempo continuo para hacer que su grfica sea suave
a)
( )
b)
c)
d)
e)
f)

(
[ ]
[ ]
[ ]

El mtodo analtico a utilizar ser:

La frmula del periodo fundamental ser:

CDIGO DEL PROGRAMA


GRFICA A
t=0:0.001:2*pi;
x=cos(pi*t)+cos((4*pi/5)*t);
plot(x)
title('Grfica 1.9a')
xlabel('t')
ylabel('x(t)')
grid on

EL PERIODO FUNDAMETAL ES:

LA SEAL ES PERIDICA

CDIGO DEL PROGRAMA


GRFICA B
t=0:0.001:2*pi;
x=cos(2*pi*((t-4)))+sin(5*pi*t);
plot(x)
title('Grfica 1.9b')
xlabel('t')
ylabel('x(t)')
grid on

EL PERIODO FUNDAMETAL ES:

LA SEAL ES PERIDICA

CDIGO DEL PROGRAMA


GRFICA C
t=-pi:0.001:2*pi;
x=cos(2*pi*t)+sin(10*t);
plot(x,'r')
title('Grfica 1.9c')
xlabel('t')
ylabel('x(t)')
grid on

EL PERIODO FUNDAMETAL ES:

LA SEAL NO ES PERIDICA
CDIGO DEL PROGRAMA
GRFICA D
n=0:0.1:4;
x=sin(10*n);
stem(n,x);
title('Grfica 1.9d')
xlabel('n')
ylabel('x[n]')
grid on

La seal no es peridica debido a que consta de un solo periodo en este caso es: 10

CDIGO DEL PROGRAMA


GRFICA E
n=-10:1:10;
x=sin((10*n*pi)/3);
stem(n,x,'r');
title('Grfica 1.9e')
xlabel('n')
ylabel('x[n]')
grid on

Es una seal PERIODICA debido a que consta de un solo periodo en este caso es:
CDIGO DEL PROGRAMA
GRFICA F

Es una seal PERIODICA lo que podemos comprobar con la grfica.


Usando MATLAB, Grabar la frase Universidad de las Fuerzas Armadas ESPE, Seales y
Sistemas, Integrantes de grupo Nombre Integrantes A, B, C. Esta ser conocida como seal x(t)
Indicar la duracin del mensaje x(t) en milisegundos y el tamao de la matriz generada. Ingresar la
frase x(t) como una seal a matlab y graficar.
Determinar la potencia o energa de la seal x(t).
Generar y graficar una seal y(t) que corresponda a ltimos 2000 ms de la seal x(t).
Usando las propiedades de transformacin de la variable independiente, graficar: x(-t), x(2t),
x(0,5t), x(t-c) donde c es una constante de 3 segundos.
Generar y almacenar las seales del literal en un formato de audio.
Investigar cmo encontrar la frecuencia mxima de la seal x(t) y determinar el valor en su
grabacin.
Cuando un dispositivo digital almacena una seal de audio, la almacena en forma de seal
discreta, es decir el computador hace un muestreo de la seal continua que recibe el
micrfono y luego la discretiza. Mediante la siguiente ecuacin

Donde:
t : tiempo
n: numero de muestras
T :Periodo de muestreo
El periodo de muestreo se selecciona en base a la frecuencia que se va a discretizar
mediante la siguiente ecuacin

Donde:
: Frecuencia del muestreo
Para seales de audio generalmente se trabaja con una frecuencia de muestreo mxima
de 44100Hz que es con la que se grab la seal del trabajo, por lo tanto el periodo de
muestreo est dado por:

Como se indic anteriormente el tiempo estar dado por:


En la seal del trabajo se us tiempo de 13 segundos.
Para obtener el nmero de muestras realizamos:

Para indicar la duracin del mensaje y y la dimensin de la matiz generada realizamos lo


siguiente:

CDIGO DEL PROGRAMA


clc
clear all
%Lectura de la seal de audio
[s Fs]=wavread('signal.wav');
%Reproduccion de la seal
sound(s,Fs)
%Tiempo de la seal
tiempo=size(s,1)/(Fs)
%Tamao de la matriz generada
size(s)
%ploteo de la seal
figure(1)
plot(s)
hold on
%Determinar la energia o la Potencia de la Seal
contador=1;
sum=0;
while contador<= size(s)
sum=sum+(s(contador))^2;
contador=contador+1;
end
Energia= sum
%Generar y graficar una seal correspondiente a los ultimos 2000ms de la
%seal
%Necesitamos eliminar todas las muestras hasta los 11 segundos, el numero
%de muestras hasta los 11 segundos esta dada por
nmsegonce=Fs*11;
%Definimos la seal y para que comience despues de los 11 segundos
y=s(nmsegonce:end);
sound(y,Fs)
%Grafica de la seal y
plot(s)
hold on
plot(y,'r')
title('Seal Grabada')
xlabel('t')
ylabel('x(t)')
grid on
figure(2)
z=s(end:-1:1);%se invierte la seal
plot(z)
title('Seal x(-t)')
xlabel('t')
ylabel('x(t)')
sound(z,Fs)
grid on
figure(3)
plot(2*s)

title('Seal x(2t)')
xlabel('t')
ylabel('x(t)')
sound(z,2*Fs)
grid on
figure(4)
plot(s/2)
title('Seal x(0.5t)')
xlabel('t')
ylabel('x(t)')
sound(s,Fs/2)
grid on
figure(5)
plot(s-3)
title('Seal x(t-c)')
xlabel('t')
ylabel('x(t)')
grid on
%Frecuencia maxima
XX=abs(fft(s));
max(XX)

Determinar la potencia o energa de la seal x(t).


Al estar almacenado el audio como una seal discreta la energa est dada
por:
|

[ ]|

Para en nuestro anlisis en Matlab usaremos:


|

[ ]|

Funcin y(t)(Ultimos 2000ms)


0.02

0.015

0.01

y(t)

0.005

-0.005

-0.01

-0.015

5
t

9
4

x 10

Frecuencia Max =
126.9984

También podría gustarte