Está en la página 1de 14

PRCTICA 1A: SEALES EN TIEMPO DISCRETO

NOMBRE: Ral Suquinagua (0105441257).


En la presente seccin es estudiante graficar secuencias de seales
discretas bsicas, para el intervalo: 5 5. Incluya el(los)
comando(s) de Matlab que utiliz para cada caso:
SECUENCIAS BSICAS
1[] = {5,3, 5, 3}
Cdigo:
x1_n= [0 0 0 0 0 5 3 -5 -3 0 0];
n= [-5:5];
figure (1);
stem(n,x1_n,'filled','black');
title('grafica de x1[n]');
Grfica:
grafica de x1[n]
5
4
3
2
1
0
-1
-2
-3
-4
-5
-5

-4

-3

-2

-1

2 [] = 1 []
Cdigo:
x1_n=[0 0 0 0 0 5 3 -5 -3 0 0];
n=[-5:5];
x2_n = fliplr(x1_n); n = -fliplr(n);
figure(2);
stem(n,x2_n,'filled','black');

title('grafica de x2[n]');
Grfica:
grafica de x2[n]
5
4
3
2
1
0
-1
-2
-3
-4
-5
-5

-4

-3

-2

-1

3 [] = (1) 2 []

Cdigo:
x4_n=(-1).^n;
x3_n=x4_n.*x1_n;
figure(3);
stem(n,x3_n,'filled','red')
title('grafica de x3[n]')
Grfica:

grafica de x3[n]
5
4
3
2
1
0
-1
-2
-3
-4
-5
-5

-4

-3

-2

-1

SECUENCIAS FUNDAMENTALES
5

4[] = 7 [ 2]
=5

Cdigo:
function [x4_n,n] = impulsos(funimp)
%%ejecutar
[x4,n] = impulsos(@impseq)
impuni=funimp;
n = [-10:10];
aux1 = 7*impuni(n,-10,10);
aux2 = [((-1).^abs(n)> 0)];
x4_n=aux1.*aux2;
%calculo de la energia de x4[n]
E4 = sum(abs(x4_n.^2))
%grafica
figure(4);
stem(n,x4_n,'filled','blue')
title('grafica de x4[n]')

Grfica:
grafica de x4[n]
7

0
-10

-8

-6

-4

-2

5[] = 7 (1) [ ]
Cdigo:

=5

%%ejecutar
[x5_n,n] = impulsos2(@impseq)
impuni=funimp;
n1 = [-5:0];
aux1 = 7*impuni(n1,-5,0).*(-1).^n1;
n2 = [-10:10];

10

n = min(min(n1),min(n2)):max(max(n1),max(n2));
y1 = zeros(1,length(n)); y2 = y1;aux2=y2;
y1(find((n>=min(n1))&(n<=max(n1))==1))=aux1;
y2(find((n>=min(n2))&(n<=max(n2))==1))=aux2;
aux3 = y1+y2;
x5_n = fliplr(aux3); n = -fliplr(n);
%calculo de la energia de x5[n]
E5 = sum(abs(x5_n.^2))
%grafica
figure(5);
stem(n,x5_n,'filled','blue')
title('grafica de x5[n]')
Grfica:
grafica de x5[n]
8
6
4
2
0
-2
-4
-6
-8
-10

-8

-6

-4

-2

ESCALONES UNITARIOS
6[] = 7 [ + 6] 7 [ + 7]
Cdigo:
function [x6_n,n] = unitarios1(fununit)
%%ejecutar
[x6_n,n] = impulsos2(@stepseq)
unitario=fununit;
n1 = [-10:10];
n2=[-10:10];
aux1= fliplr(7.*unitario(-7,-10,10))
aux2 = 7*unitario(-6,-10,10);n2=-fliplr(n2);
%multiplicamos las funciones auxiliares
n = min(min(n1),min(n2)):max(max(n1),max(n2));
y1 = zeros(1,length(n)); y2 = y1;
y1(find((n>=min(n1))&(n<=max(n1))==1))=aux1;
y2(find((n>=min(n2))&(n<=max(n2))==1))=aux2;
x6_n = y1 .* y2;
%graficamos x6[n]
figure(6);
stem(n,x6_n,'filled','blue')
title('grafica de x6[n]')

10

Grfica:
grafica de x6[n]
50
45
40
35
30
25
20
15
10
5
0
-10

-8

-6

-4

-2

10

7[] = 6[]
Cdigo:
x7_n=-fliplr(x6_n);n=-fliplr(n);
figure(7);
stem(n,x7_n,'filled','red')
title('grafica de x7[n]')
Grfica:
grafica de x7[n]
0
-5
-10
-15
-20
-25
-30
-35
-40
-45
-50
-10

-8

-6

-4

-2

EXPONENCIAL DISCRETO REAL


1 ||
8[] = ( ) (( + 5) ( 6))
7

10

Cdigo:
function [x8_n,n] = unitarios2(fununit)
%%ejecutar
[x8_n,n] = unitarios2(@stepseq)
unitario=fununit;
n = [-10:10];
x8_n = ((1/7).^(abs(n))).*(unitario(-5,-10,10)-unitario(6,-10,10));
%graficamos x6[n]
figure(8);
stem(n,x8_n,'filled','blue')
title('grafica de x8[n]')
Grfica:
grafica de x8[n]
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-10

-8

-6

-4

-2

SECUENCIA SINUSOIDAL
Para el intervalo 50 50
6
9[] = 7 cos (
)
24
Cdigo:
n=[-50:50];
x9_n=7*cos((pi*6*n)/24);
figure(9);
stem(n,x9_n,'filled','red')
title('grafica de x9[n]')
Grfica:

10

grafica de x9[n]
8
6
4
2
0
-2
-4
-6
-8
-50

-40

-30

-20

-10

10

20

30

40

50

Explique el por qu del nmero de muestras en un ciclo completo de la


funcin coseno en x9[n].
En cada ciclo se obtiene 8 muestras esto se lo puede verificar haciendo el
siguiente artificio: cos (
8 muestras.

32
24

)=cos (

2
8

) por este motivo cada ciclo de 2 toma

10[] = 7 cos (
Cdigo:


+ )
16
2

%funcion x10[n]
x10_n=7*cos(((pi*n)/16)+(pi/2));
figure(10);
stem(n,x10_n,'filled','black')
title('grafica de x10[n]')
Grfica:
grafica de x10[n]
8
6
4
2
0
-2
-4
-6
-8
-50

-40

-30

-20

-10

10

20

30

40

50

Explique el por qu del nmero de muestras en un ciclo completo de la


funcin coseno en x10[n] y por qu su valor en n=0 es diferente de k.
En cada ciclo se obtiene 32 muestras esto se lo puede verificar haciendo
2

el siguiente artificio: (
) por este motivo cada ciclo de 2 toma 32
216
muestras.
La muestra en n=0 es diferente de 6 debido al desfase que contiene el coseno

de
que hace que la funcin tenga un desplazamiento.
2

2
11[] = 2 cos (
)
16
Cdigo:
%funcion x11[n]
x11_n=2*cos((2*pi*n*sqrt(7))/16);
figure(11);
stem(n,x11_n,'filled','blue')
title('grafica de x11[n]')

Grfica:
grafica de x11[n]
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-50

-40

-30

-20

-10

10

20

30

40

50

Explique el por qu de la seal cosenoidal x11 no es peridica.


Adems indique que sucede si r=k.

Una seal es peridica si el cociente entre y 16 es un nmero


racional. En el caso r=k =7, la raz no va ser un numero entero peor
an el cociente va a ser racional, por lo tanto no es una funcin
peridica.

CALCULO DE LA ENERGA DE SEALES DISCRETAS


Calcule la energa o potencia promedio de las seales: x1, x2, x3,,
x11.

De la funcin x1[n]:
Cdigo:
x1_n=[0 0 0 0 0 5 3 -5 -3 0 0];
n=[-5:5];
%calculo de la energia de x1[n]
E1=sum(abs(x1_n.^2))
E1 =68

De la funcin x2[n]:
Cdigo:
x2_n = fliplr(x1_n); n = -fliplr(n);
%calculo de la energia de x2[n]
E2=sum(abs(x2_n.^2))
E2 =68

De la funcin x3[n]:
Cdigo:
aux=(-1).^n;
x3_n=aux.*x1_n;
%calculo de la energia de x3[n]
E3=sum(abs(x3_n.^2))
E3 =68

De la funcin x4[n]:
Cdigo:
function [x4_n,n] = impulsos(funimp)
%%ejecutar
[x4,n] = impulsos(@impseq)
impuni=funimp;
n = [-10:10];
aux1 = 7*impuni(n,-10,10);
aux2 = [((-1).^abs(n)> 0)];

x4_n=aux1.*aux2;
%calculo de la energia de x4[n]
E4 = sum(abs(x4_n.^2))
E4 =539

De la funcin x5[n]:
Cdigo:
%%ejecutar
[x5_n,n] = impulsos2(@impseq)
impuni=funimp;
n1 = [-5:0];
aux1 = 7*impuni(n1,-5,0).*(-1).^n1;
n2 = [-10:10];
n = min(min(n1),min(n2)):max(max(n1),max(n2));
y1 = zeros(1,length(n)); y2 = y1;aux2=y2;
y1(find((n>=min(n1))&(n<=max(n1))==1))=aux1;
y2(find((n>=min(n2))&(n<=max(n2))==1))=aux2;
aux3 = y1+y2;
x5_n = fliplr(aux3); n = -fliplr(n);
E5 = sum(abs(x5_n.^2))
E5 =294

De la funcin x6[n]:
Cdigo:
n1 = [-10:10];
n2=[-10:10];
aux1= fliplr(7.*unitario(-7,-10,10))
aux2 = 7*unitario(-6,-10,10);n2=-fliplr(n2);
%multiplicamos las funciones auxiliares
n = min(min(n1),min(n2)):max(max(n1),max(n2));
y1 = zeros(1,length(n)); y2 = y1;
y1(find((n>=min(n1))&(n<=max(n1))==1))=aux1;
y2(find((n>=min(n2))&(n<=max(n2))==1))=aux2;
x6_n = y1 .* y2;
%calculo de la energia de x6[n]
E6 = sum(abs(x6_n.^2))
E6 =33614

De la funcin x7[n]:
Cdigo:
%funcion x7[n]
x7_n=-fliplr(x6_n);n=-fliplr(n);
%calculo de la energia de x7[n]
E7 = sum(abs(x7_n.^2))
E7 =33614

De la funcin x8[n]:
Cdigo:
n = [-10:10];
x8_n = ((1/7).^(abs(n))).*(unitario(-5,-10,10)-unitario(6,-10,10));
%calculo de la energia de x8[n]
E8 = sum(abs(x8_n.^2))
E8 =1.04417

De la funcin x9[n]:
Cdigo:
%funcion x9[n]
n=[-50:50];
x9_n=7*cos((pi*6*n)/24);
%calculo de la energia de x9[n]
%se calcula la potencia porque es una seal periodica
P9=(1/8)*sum(abs(x9_n(1:8)).^2)
P9 =24.5

De la funcin x10[n]:
Cdigo:
%funcion x10[n]
x10_n=7*cos(((pi*n)/16)+(pi/2));
%calculo de la energia de x10[n]
%se calcula la potencia porque es una seal periodica
P10=(1/32)*sum(abs(x10_n(1:32)).^2)
P9 =24.5

De la funcin x11[n]:
Cdigo:
%funcion x11[n]
x11_n=2*cos((2*pi*n*sqrt(7))/16);
%calculo de la energia de x11[n]
E11 = sum(abs(x11_n.^2))
E11 =199.7873
FUNCIN COSENOIDAL

Si la funcin pulso cosenoidal discreto se define como:

Desarrolle una funcin en matlab que sirva para graficar un pulso


cosenoidal discreto, y que adems permita graficarla para cualquier
posicin n0, en el intervalo de n definido entre n1 y n2.
Cdigo:
function [x12_n,n] = cosine(M,n0,n1,n2)
%ejecutar [resultado,n] = cosine(M,n0,n1,n2)__
n=[n1:n2];
%cortamos la seal____________________________
aux1 = [((abs(n)-abs(M)) <= 0)];
aux2 = cos((n*pi)/(2.*M));
x12_n=aux2.*aux1;
%desplazamiento_______________________________
n3 = n+n0;
%comparaciones________________________________
if n0>0
w=length(x12_n)-abs(n0);
n4=n3(1:w);
x=x12_n(1:w);
end
if n0<0
w1=length(x12_n);
w2=abs(n0)+1;
n4=n3(w2:w1);
x=x12_n(w2:w1);
end
%sumamos_____________________________________
m = min(min(n),min(n4)):max(max(n),max(n4));
y1 = zeros(1,length(n)); y2 = y1;aux2=y2;
y1(find((m>=min(n4))&(m<=max(n4))==1))=x;
y2(find((m>=min(n))&(m<=max(n))==1))=aux2;
y = y1+y2;
%%graficamos lafuncion________________________
figure(12);
stem(m,y,'filled','blue')
title('grafica de x12[n]')
end
Grfica

grafica de x12[n]
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-10

-8

-6

-4

-2

10

CONCLUSIONES

Se vio que para hacer un desplazamiento a la grfica


nicamente hay que desplazar su referencia en el tiempo,
esto en otros lenguajes de programacin sera ms
complicado.
Tambin se puede llamar funciones dentro de otras funciones
nicamente anteponiendo el signo de arroba antes del script
que se desea llamar, esto se lo utiliz cuando se grafic
impulsos unitarios y escalones unitarios.
En la prctica realizada se vio como modelar diferentes tipos
de funciones y por este motivo nos sirve para reforzar los
conocimientos aprendidos en clase.
Esta prctica es necesaria para inicializarnos en el
procesamiento digital de seales, debido a que este software
cuenta con gran variedad de funciones para dicha materia.

REFERENCIAS
[1] Vinay K. Ingle & John G. Proakis, Digital Signal Processing
Using MATLAB, Northeastern University, Third Edition, Cengage
Learning, 2012.

También podría gustarte