Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UCSM-FCIFF-PPIE
PROCESAMIENTO DIGITAL DE SEALES
PRIMERA PRCTICA
SEALES Y SISTEMAS EN MATLAB
1. OBJETIVOS
Conocer la forma de representacin de las seales discretas
Conocer las funciones implementadas sobre seales discretas
2. MARCO TERICO
2.1 Seal
Una seal es una portadora fsica de informacin (adquirida por algn sistema de medicin
o sensado), que dependen de la naturaleza de la informacin (mientras una seal de audio
es presin de aire, una imagen es una onda de luz). Pueden ser representadas
matemticamente como una funcin de una o ms variables, que suelen depender del
tiempo.
2.2 Seales discretas
Una seal x[n] en tiempo discreto, es una funcin de una variable independiente entera
(nmero de muestra), es decir est definida solo para valores enteros del argumento
Seal discreta
Las seales discretas ms usadas son:
Alumno: Olanda Nuez Ricky
III. ACTIVIDADES
Para los ejercicios siguientes:
Indicar los comandos de MatLab a utilizar
Consignar las tabulaciones y las grficas obtenidas para las funciones construidas
Grficos Bsicos 2D
1. Construir la grfica siguiente
x = [1 3 0.5 2.5 2];
y = [0 1 2 3 4];
plot(x,y)
Alumno: Olanda Nuez Ricky
2. Cambiar el comando plot por el comando stem, que sucedi con la grafica?
3. Colquele ttulo y nombre a los ejes de la grfica, usando title, ylabel, xlabel
Impulso unitario
4. Usando el editor de MatLab crear la funcin, comente cada lnea
function[x,n]=impseq(n0,n1,n2)
%Generacion x(n) = delta(n-n0); n1<=n<=n2
%[x,n]=impseq(n0,n1,n2)
n=[n1:n2];
x=[(n-n0)==0];
stem(n,x);
se crea una function llamada impsseq y se ingresan los valores (n0,n1,n2) y nos da como
resultado funcion (x,n)
function[x,n]=impseq(n0,n1,n2)
Alumno: Olanda Nuez Ricky
n tomara valores desde n1 hasta n2 iterativamente
n=[n1:n2];
siempre que n-n0 sea igual a 0 nos dara un impulso en n0
x=[(n-n0)==0];
graficar impulso
stem(n,x);
function[x,n]=impseq(n0,n1,n2)
n=[n1:n2];
x=[(n-n0)==0];
stem(n,x);
impseq(8,2,10)
ans =
Columns 1 through 7
0 0 0 0 0 0 1 0 0
5. Utiliza la funcin para genera un impulso en n=6 visualizando entre 0 y 8 el nmero de
muestras
function[x,n]=impseq(n0,n1,n2)
n=[n1:n2];
x=[(n-n0)==0];
stem(n,x);
>> impseq(6,0,8)
ans =
Columns 1 through 7
0 0 0 0 0 0 1 0 0
Alumno: Olanda Nuez Ricky
6. Agregar el comando grid on.
7. Modifique la funcin para darle al pulso una amplitud A, donde A sera el cuarto
parmetro de entrada
function[x,n]=impseq(n0,n1,n2,n3)
n=[n1:n2];
x=[(n-n0)==0];
x=x*n3;
stem(n,x);
impseq(6,0,8,2)
ans =
Columns 1 through 7
0 0 0 0 0 0 2 0 0
Alumno: Olanda Nuez Ricky
8. Repita 5 considerando un pulso de amplitud -4 en n=5 visto de -5 a 15
function[x,n]=impseq(n0,n1,n2,n3)
n=[n1:n2];
x=[(n-n0)==0];
x=x*n3;
stem(n,x);
impseq(5,-5,15,-4)
ans =
Columns 1 through 7
0 0 0 0 0 0 0 0 0 0 -4 0 0 0
Columns 15 through 21
0 0 0 0 0 0 0
9. Modifique las propiedades del grfico en trminos de colores y smbolo (genere al
menos tres variantes.
Alumno: Olanda Nuez Ricky
-5 0 5 10 15
-4
-3.5
-3
-2.5
-2
-1.5
-1
-0.5
0
-5 0 5 10 15
-4
-3.5
-3
-2.5
-2
-1.5
-1
-0.5
0
-5 0 5 10 15
-4
-3.5
-3
-2.5
-2
-1.5
-1
-0.5
0
-5 0 5 10 15
-4
-3.5
-3
-2.5
-2
-1.5
-1
-0.5
0
-5 0 5 10 15
-4
-3.5
-3
-2.5
-2
-1.5
-1
-0.5
0
Alumno: Olanda Nuez Ricky
10. Agregar leyenda al grfico usando el comnado legend
Escaln unitario
11. Usando el editor de MatLab crear la funcin, comente cada lnea
function[x,n]=stepseq(n0,n1,n2)
%Generacion x(n) = u(n-n0); n1<=n<=n2
-5 0 5 10 15
-4
-3.5
-3
-2.5
-2
-1.5
-1
-0.5
0
-5 0 5 10 15
-4
-3.5
-3
-2.5
-2
-1.5
-1
-0.5
0
-5 0 5 10 15
-4
-3.5
-3
-2.5
-2
-1.5
-1
-0.5
0
-5 0 5 10 15
-4
-3.5
-3
-2.5
-2
-1.5
-1
-0.5
0
-5 0 5 10 15
-4
-3.5
-3
-2.5
-2
-1.5
-1
-0.5
0
muestras
Alumno: Olanda Nuez Ricky
%[x,n]=stepseq(n0,n1,n2)
n=[n1:n2];
x=[(n-n0)>=0];
stem(n,x);
se crea una function llamada stepseq y se ingresan los valores (n0,n1,n2) y nos da como
resultado funcion (x,n)
function[x,n]=stepseq(n0,n1,n2)
n tomara valores desde n1 hasta n2 iterativamente
n=[n1:n2];
siempre que n-n0 sea mayor e igual a 0 nos dara un impulso en n0
x=[(n-n0)>=0];
graficar impulso
stem(n,x);
>> stepseq(5,0,10)
ans =
Columns 1 through 7
0 0 0 0 0 1 1
Columns 8 through 11
1 1 1 1
12. Utilice la funcin para genera un escaln a partir de n=5 visualizando entre -2 y 10 el
nmero de muestras, colocar los nombres y leyendas respectivas
function[x,n]=stepseq(n0,n1,n2)
%Generacion x(n) = u(n-n0); n1<=n<=n2
%[x,n]=stepseq(n0,n1,n2)
n=[n1:n2];
0 1 2 3 4 5 6 7 8 9 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Alumno: Olanda Nuez Ricky
x=[(n-n0)>=0];
stem(n,x);
legend('leyenda');
stepseq(5,-2,10)
ans =
Columns 1 through 7
0 0 0 0 0 0 0
Columns 8 through 13
1 1 1 1 1 1
13. Modifique la funcin para darle al escaln una amplitud A, donde A sera el cuarto
parmetro de entrada
function[x,n]=stepseq(n0,n1,n2,n3)
%Generacion x(n) = u(n-n0); n1<=n<=n2
%[x,n]=stepseq(n0,n1,n2)
n=[n1:n2];
x=[(n-n0)>=0];
x=x*n3;
stem(n,x);
legend('leyenda');
>> stepseq(5,-2,10,4)
ans =
Columns 1 through 7
0 0 0 0 0 0 0
-2 0 2 4 6 8 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
periodo de muestreo
a
m
p
l
i
t
u
d
escalon unitario
impulsos
Alumno: Olanda Nuez Ricky
Columns 8 through 13
4 4 4 4 4 4
14. Repita 12 para generar un escaln de amplitud -2 a partir de n=4 visualizando muestras
entre -2 y 15
function[x,n]=stepseq(n0,n1,n2,n3)
%Generacion x(n) = u(n-n0); n1<=n<=n2
%[x,n]=stepseq(n0,n1,n2)
n=[n1:n2];
x=[(n-n0)>=0];
x=x*n3;
stem(n,x);
legend('leyenda');
>> stepseq(4,-2,15,-2)
ans =
Columns 1 through 7
0 0 0 0 0 0 -2
Columns 8 through 14
-2 -2 -2 -2 -2 -2 -2
Columns 15 through 18
-2 -2 -2 -2
-2 0 2 4 6 8 10
0
0.5
1
1.5
2
2.5
3
3.5
4
leyenda
Alumno: Olanda Nuez Ricky
Exponencial
Una secuencia exponencial responde a la expresin:
x[n] = C z^n Donde C y z son, en general, nmeros complejos.
15. Construya las siguientes exponenciales
% Exponencial
n1=0;n2=20;
n=[n1:n2];
x=0.5.^n;
stem(n,x);
% Exponencial
n = 0:0.1:10;
x=0.5.^n;
stem(n,x);
-2 0 2 4 6 8 10 12 14 16
-2
-1.8
-1.6
-1.4
-1.2
-1
-0.8
-0.6
-0.4
-0.2
0
leyenda
0 2 4 6 8 10 12 14 16 18 20
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Alumno: Olanda Nuez Ricky
El comando n = 0:0.1:10; define el vector con componentes de rango de 0 a 10 en pasos de 0.1; La
funcin x = 0.9.^n; define un vector con componentes 0.9.^(0.1), 0.9.^(0.2), 0.9.^(0.3), etc.
>> n = 0:0.1:10;
>> x=0.9.^n;
>> stem(n,x);
% Exponencial
n = 0:20;
x=5.^n;
stem(n,x);
%Exponencial Compleja
n1=0;n2=10;
n=[n1:n2];
0 1 2 3 4 5 6 7 8 9 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 1 2 3 4 5 6 7 8 9 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 2 4 6 8 10 12 14 16 18 20
0
1
2
3
4
5
6
7
8
9
10
x 10
13
Alumno: Olanda Nuez Ricky
x=exp((2+3j)*n);
stem(n,x);
Uso del comando subplot
El comando subplot nos permite desplegar en pantalla varias grficas. subplot(m,n,a) 'm' y 'n' son
una matriz que representa las cantidades de grficas que se van desplegar; 'a' indicara el lugar que
ocupara la grfica en el subplot.
16. Crear un programa en matlab donde grafique solo la parte real y la parte imaginaria por
separado; usando subplot, de cualquier exponencial compleja
Seal senoidal
17. Graficar la siguiente seal senoidal
18. Graficar la siguiente seal senoidal, observe que la suma tambin es peridica
0 1 2 3 4 5 6 7 8 9 10
-2
-1
0
1
2
3
4
5
6
7
8
x 10
7
0 10 20 30 40 50 60
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
%Seal Senoidal
n1=0;n2=60;
n=[n1:n2];
x=2*sin(0.2*pi*n+pi/5);
stem(n,x);
%Seal Senoidal
n1=0;n2=120;
n=[n1:n2];
x=2*cos(0.2*pi*n+pi/5)+sin(0.5*pi*n);
stem(n,x);
Alumno: Olanda Nuez Ricky
CUESTIONARIO FINAL
1. Crear un programa en matlab donde se grafiquen las siguientes ondas: (use subplot)
cos(2n/16)
>> n1=0;n2=120;
>> n=[n1:n2];
>> x=cos(2*pi*n/16);
>> stem(n,x);
cos(2n2/16)
cos(2n4/16)
cos(2n8/16)
cos(2n12/16)
2. Forme y grafique el muestreo de las siguientes seales usando una razn de muestreo de l0 Hz
(10 muestras por segundo). Incluya las graficas en su reporte:
a. y1 = cos(6t);
b. y2 = 3exp(-4t)*cos(5t);
0 20 40 60 80 100 120
-3
-2
-1
0
1
2
3
0 20 40 60 80 100 120
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Alumno: Olanda Nuez Ricky
c. sume un ruido escalado a 0.2 en y1. (use la funcin randn, y escriba help randn si no
sabe cmo usarla).
CONCLUSIONES
Emita al menos cinco conclusiones en torno al manejo de seales en MatLab