You are on page 1of 34

Informe del Taller I

Ivan Javier Sanchez Galvis


Procesamiento Digital de Se
nales
Escuela de Ingeniera Electrica, Electronica y de Telecomunicaciones
Bucaramanga

23 de septiembre de 2014

1.

Objetivos
Realizar un primer acercamiento a la herramienta de programacion de Matlab con
relacion al Procesamiento Digitales de Se
nales.
Analizar se
nales en tiempo discreto com
unmente empleadas en Procesamiento Digitales
de Se
nales.
Implementar en el dominio del tiempo la convolucion.

2.

Manipulaci
on de se
nales discretas b
asicas

a. El siguiente codigo en Matlab permite generar y visualizar una una se


nal seno con 30
muestras.
1
2
3
4
5
6
7
8

clc
clear all
close all
n= 10:19;
se n=s i n ( n/2+10) ;
stem ( sen )
x l a b e l ( muestras n )
y l a b e l ( f u n c i o n seno ( n ) )

b. Usando el comando help, se pueden ver las opciones disponibles que hay con la funcion
stem. A continuacion se muestran las posibles configuraciones que se pueden realizar.
1
2
3
4

h e l p stem
stem
D i s c r e t e s e q u e n c e o r stem p l o t .
stem (Y) p l o t s th e data s e q u e n c e Y as stems from t he x a x i s
t e r m i n a t e d with c i r c l e s f o r t he data v a l u e . I f Y i s a
matrix then
each column i s p l o t t e d as a s e p a r a t e s e r i e s .

stem (X,Y) p l o t s th e data s e q u e n c e Y a t t he v a l u e s


specified
i n X.

9
10

stem ( . . . , f i l l e d ) p r o d u c e s a stem p l o t with f i l l e d


markers .

11
12

13

stem ( . . . , LINESPEC ) u s e s t he l i n e t y p e s p e c i f i e d f o r th e
stems and
markers . See PLOT f o r p o s s i b i l i t i e s .

14
15

16

stem (AX, . . . ) p l o t s i n t o a x e s with handle AX. Use GCA t o


g e t th e
handle t o t he c u r r e n t a x e s o r t o c r e a t e one i f none e x i s t .

17
18

19

H = stem ( . . . ) r e t u r n s a v e c t o r o f s t e m s e r i e s h a n d l e s i n H,
one handle
p er column o f data i n Y.
De estas opciones se puede ver que para obtener una grafica con el eje horizontal ajustado se debe usar stem(X,Y), donde X es el vector correspondiente al eje horizontal
y Y el vector de valores de la funcion que se desea graficar.

c. El comando clc se encarga de limpiar las digitaciones que se han hecho en el command
window pero no elimina la informacion obtenida en las ejecuciones realizadas, para
realizar esto, de usa el comando clear all. Para cerrar las ventanas que se hayan
generado en la ejecucion de codigos anteriores, se usa el comando close all.
La grafica obtenida luego de ejecutar el codigo anterior se presenta en la Figura 1. En
esta se puede observar que el eje de muestras n no coincide con lo establecido en el
codigo, en el cual se determino que las muestras deban ir de -10 a 19, pero en la grafica
van de 1 a 29.

Figura 1: Grafica de la funcion seno

d. A continuacion se presenta la modificacion del codigo insertando stem(n,sen) donde


anteriormente estaba stem(sen).
1
2
3
4
5
6
7
8

clc
clear all
close all
n= 10:19;
se n=s i n ( n/2+10) ;
stem ( n , sen )
x l a b e l ( muestras n )
y l a b e l ( f u n c i o n seno ( n ) )
Ejecutando este nuevo codigo, se obtiene la grafica presentada en la Figura 2. En esta
grafica se puede observar que el eje horizontal esta ajustado a lo que se determino en
el codigo.

Figura 2: Grafica de la funcion seno con el eje horizontal ajustado

3.

Ejecutando un Script

a. Ahora se hara uso del editor de textos de Matlab para facilitar la digitacion de los
codigos que se deseen ejecutar. A continuacion se presenta un script que permite generar
y visualizar una secuencia de datos discretos a partir de una se
nal senoidal.
En el siguiente codigo se usaran comentarios para especificar el rol de las variables,
as como las unidades asociadas.
1
2
3

clc
clear all
close all

4
5
6
7
8
9
10
11
12
13
14

m=50; % Cantidad de muestras


f r e c =40; % f r e c u e n c i a de l a s e n
a l en Hz
Tsample= 3/ f r e c ; % p e r i o d o de muestreo en segundos
n= (m1) / 2 : (m1) / 2 ; % i n s t a n t e s de muestreo
nT= n Tsample ;
y=s i n (2 p i f r e c nT) ;
p l o t (nT , y )
t i t l e ( Sen
al Discreta ) ;
x l a b e l ( nT )
y l a b e l ( Magnitud )
La Figura 3 muestra la grafica obtenida luego de ejecutar el codigo anterior. Contrario
a lo que se esperaba, la grafica no parece ser una funcion seno. Esto se debe a que el
periodo de muestreo no es lo suficientemente peque
no para obtener la se
nal original.

Figura 3: Grafica de la funcion seno con Tsample=3/frec

b. Para obtener una mejor visualizacion de la se


nal, se reemplaza el valor de Tsample,
el cual era de 3/frec pero ahora sera de 0.2/frec.

Figura 4: Grafica de la funcion seno con Tsample=0.2/frec

De estas dos figuras se puede ver que la se


nal parece ser continua, a diferencia de lo
observado en las Figras 1 y 2. Esto se debe a que se uso el comando plot en lugar de
stem. Por lo tanto, esta funcion no permite visualizar adecuadamente una se
nal seno
discreta.
c. A conitnuacion se presenta el codigo ahora usando el comando stem y con Tsample
igual a 3/frec.
1
2
3

clc
clear all
close all

4
5
6
7
8
9
10
11
12
13
14

m=50; % Cantidad de muestras


f r e c =40; % f r e c u e n c i a de l a s e n
a l en Hz
Tsample= 3/ f r e c ; % p e r i o d o de muestreo en segundos
n= (m1) / 2 : (m1) / 2 ; % i n s t a n t e s de muestreo
nT= n Tsample ;
y=s i n (2 p i f r e c nT) ;
stem (nT , y )
t i t l e ( Sen
al Discreta ) ;
x l a b e l ( nT )
y l a b e l ( Magnitud )
Con este nuevo codigo se obtiene la grafica mostrada en la Figura 5.
Haciendo el cambio de Tsample=3/frec a Tsample=0.2/frec se obtiene la grafica de
la Figura 6.
El periodo de la funcion continua se puede determinar a partir de la variable frec.
Pues esta variable define la frecuencia en Hz de la se
nal seno que se esta analizando,
por lo tanto si se desea saber el periodo de la se
nal en segundos basta con realizar la
operacion 1/frec para obtener la informacion del periodo.
5

Figura 5: Grafica usan stem con Tsample=3/frec

Figura 6: Grafica usan stem con Tsample=0.2/frec

d. Se
nal Sinc
La se
nal sinc es una funcion que en el dominio del tiempo representa un filtro pasa
bajo ideal. La se
nal sinc se define de la siguiente forma:

sinc(n)

sin(c n)

c
c n

n=0
(1)
n 6= 0

Donde c es la frecuencia de corte del filtro paso bajo asociado.


6

A continuacion se presenta el codigo que permite generar y visualizar la funcion sinc.


1
2
3
4

5
6

% C a l c u l a 2m+1 muestras de l a f u n c i o n s i n (2 p i f l t ) / ( p i t )
% para n=m : m ( e s d e c i r , c e n t r a d o a l r e d e d o r d e l o r i g e n ) .
% f c : F r e c u e n c i a de c o r t e [ Hz ] a s o c i a d a a un f i l t r o paso b a j o
% : n o r m a l i z a d a e n t r e 0 y 1 r e s p e c t o a l a f r e c u e n c i a de
muestreo , por l o t a n t o l a
% : f r e c u e n c i a maxima p e r m i t i d a e s f c = 0 . 5 .
% x : s a l i d a , muestras de l a f u n c i o n s i n c

7
8

clear all

9
10
11
12
13

14
15
16
17
18

m=50;
f c =0.25;
wc=f c 2 p i ;
n=(m:m) ; %2m+1 i n s t a n t e s de muestreo c e n t r a d o a l r e d e d o r de
cero
xn=s i n ( wc n ) ;
xd=p i n ;
x ( 1 :m)= xn ( 1 :m) . / xd ( 1 :m) ;
x (m+1)=2 f c ;
x (m+2:2m+1)= xn (m+2:2m+1) . / xd (m+2:2m+1) ;

19
20
21
22
23

24
25

% graficar sen
al
figure
stem ( n , x )
t i t l e ( s t r c a t ( Generacion de l a S e n
a l S i n c f c= , num2str (
fc ) ) )
xlabel ( Instantes n )
y l a b e l ( Sen
al Sinc )
Ejecutando este codigo se obtiene la grafica de la Figua 7

Figura 7: Grafica de la funcion sinc

e. Ejecutando nuevamente el codigo pero esta vez con m=5 y m=150 se obtienen las
graficas presentadas en las Figuras 8 y 9 respectivamente.

Figura 8: Grafica de la funcion sinc con m=5

Figura 9: Grafica de la funcion sinc con m=150

Como se puede observar en cada una de estas figuras, el valor de m determina el


n
umero de muestras que se desean graficar. De tal forma que entre mas grande sea el
valor de m mayor sera la informacion de la se
nal sinc que se podra observar. Es como
si el valor de m provocara un acercamiento cuando es menor y un alejamiento cuando
es mayor.
Ahora se desea obervar que sucede cuando se vara el valor de fc, para lo cual se
muestran los resultados al ejecutar el codigo con valores de fc=0.1 y 0.5 manteniendo
8

el valor de m en 50. Las Figuras 10 y 11 muestran los resultados obtenidos al ejecutar


el codigo con los cambios mencionados.

Figura 10: Grafica de la funcion sinc con m=50 y fc=0.1

Figura 11: Grafica de la funcion sinc con m=50 y fc=0.5

Como se puede observar en estas dos graficas, el valor de fc afecta la frecuencia de la


se
nal sinc. En el caso de fc=0.1 se obtuvieron cuatro muestras en cada lobulo y nueve
en el lobulo centrado en la grafica. Lo cual son mas muestras que lo obtenido en la
Figura 7, en la cual a un fc=0.25 se obtuvo una muestra por lobulo y tres muestras en
el lobulo que esta centrado en la grafica.
Para el caso de fc=0.5 ilustrado en la Figura 11, la frecuencia es tal que los puntos
muestreados coinciden con los cruces por cero de la se
nal sinc.
9

Observando los casos anteriores, se ve que al aumentar fc disminuyen el n


umero de
muestras por lobulo, lo cual llega a su punto crtico cuando se hace fc=0.5, en la que
solo se tiene la muestra en cero. Esto llevara a pensar a que una frecuencia mayor
a 0.5 tampoco se obtendran muestras entre lobulos, sin embargo, en la Figura 12 se
observa que a una frecuencia de 0.8 se obtienen nuevamente muestras por lobulo.

Figura 12: Grafica de la funcion sinc con m=50 y fc=0.8

Esto se debe a que fc va asociado al argumento de la funcion seno que describe la


funcion sinc. Por lo tanto, dado que la funcion seno tiene simetra impar, para valores
de fc de 0.5 a 1 se repetira la cantidad de muestras que para valores de fc de 0.5 a 0
pero con el valor de las muestras tendran signos diferentes, salvo el valor en la muestra
cero.
Si se quisiera estimar como sera el resultado de graficar la funcion sinc con fc=0.2,
se podra decir que tendra la misma forma que cuando fc=0.8, de la cual se tiene la
grafica en la Figura 12, pero reflejada en el eje horizontal y manteniendo la muestra
cero con el valor de 2*fc.

Figura 13: Grafica de la funcion sinc con m=50 y fc=0.2

10

f. Se
nal Escal
on
La se
nal escalon es comunmente usada en el procesamiento de se
nales. Cuando se
trabaja con se
nales en tiempo discreto, la se
nal escalon se define de la siguiente forma:
(
u(n n0 )

n n0
para otros valores de n

1
0

(2)

El siguiente codigo permite generar y visualizar una se


nal escalon, ademas se pueden
modificar su amplitud, duracion e instante de inicio.
1
2

3
4
5
6

% C a l c u l a 2m+1 muestras de l a f u n c i o n u [ n ]
% para n= m+no :m+no ( e s d e c i r , c e n t r a d o a l r e d e d o r d e l o r i g e n )
.
% A : Amplitud de l a s e n
al
%m : Duracio n de l a s e n
al
% no : El i n s t a n t e de i n i c i o
% u : s a l i d a , muestras de l a f u n c i o n s i n c

7
8
9
10

clc
clear all
close all

11
12
13
14
15

16
17

A=2;
m=20;
no=5;
n=m:m; %2m+1 i n s t a n t e s de muestreo c e n t r a d o a l r e d e d o r de
cero
u ( 1 :m+no )=z e r o s (m+no , 1 ) ;
u (m+no +1:2m+1)=2 ones (mno +1 ,1) ;

18
19
20
21
22

23
24

% graficar sen
al
figure
stem ( n , u )
t i t l e ( s t r c a t ( Generacion de l a S e n
a l E s c a l o n A= , num2str
(A) ) )
xlabel ( Instantes n )
y l a b e l ( Sen
a l E s c a l o n )
Este codigo genera una se
nal escalon de amplitud 2 e inicia en la muestra -5 hasta la
muestra 20. Al ejecutarse el codigo se genera la grafica mostrada en la Figura 14.

11

Figura 14: Grafica de la se


nal escalon con no=-5 y m=20

g. Las Figuras 15 y 16 presentan mas graficas de se


nales escalon variando los parametros
de esta. Para la primera se utilizo una amplitud de 5, con un tiempo de inicio de 7 y con
una duracion hasta la muestra 50. Por su parte, la otra grafica muestra los resultados
para una se
nal escalon con amplitud de -4, inician en la muestra -10 y terminando en
la muestra 30.

Figura 15: Grafica de la se


nal escalon con no=7 y m=50

12

Figura 16: Grafica de la se


nal escalon con no=-10 y m=30

h. Se
nal Rampa
La se
nal rampa es otro tipo de se
nal basica en el procesamiento de se
nales. Esta se
nal
puede ser vista como una acumulacion de la se
nal rampa. A continuacion se presenta
el codigo que permite generar u visualizar una se
nal rampa.
1
2

3
4
5
6

% C a l c u l a 2m+1 muestras de l a s e n
a l rampa
% para n= m+no :m+no ( e s d e c i r , c e n t r a d o a l r e d e d o r d e l o r i g e n )
.
% A : P e n d i e n t e de l a s e n
al
%m : Duracio n de l a s e n
al
% no : El i n s t a n t e de c r u c e por c e r o
% r : s a l i d a , muestras de l a f u n c i o n s i n c

7
8
9
10

clc
clear all
close all

11
12
13
14
15

16
17

A=5;
m=50;
no =7;
n=m:m; %2m+1 i n s t a n t e s de muestreo c e n t r a d o a l r e d e d o r de
cero
r ( 1 :m+no )=z e r o s (m+no , 1 ) ;
r (m+no +1:2m+1)=Acumsum ( ones (mno +1 ,1) ) ;

18
19

% graficar sen
al
13

20
21
22

23
24

figure
stem ( n , r )
t i t l e ( s t r c a t ( Generacion de l a S e n
a l Rampa A= , num2str (A
) ) )
xlabel ( Instantes n )
y l a b e l ( Sen
a l Rampa )
Al ejecutar este codigo se obtiene la grafica mostrada en la Figura 17, en la cual se
definio una pendiente de 5, con un instante de cruce por cero igual a 7 y se grafico hasta
la muestra 50.

Figura 17: Grafica de la se


nal rampa con no=5 y m=50

i. De la Figura 18 a la 19 se presentan los resultados conseguidos con el codigo de la se


nal
rampa variando los parametros que la definen. En la primera grafica se definio una
pendiente de 2 con un instante de inicio de -10 y se grafico hasta la muestra 20. La
segunda grafica muestra los resultados conseguidos al determinar una pendiente de de
-4 con un instante de inicio -5 y se grafico hasta la muestra 30.

14

Figura 18: Grafica de la se


nal rampa con no=-10 y m=20

Figura 19: Grafica de la se


nal rampa con no=-5 y m=30

15

j. Se
nal exponencial (an para a real)
La se
nal exponencial es un tipo de se
nales que son propias de los sistemas discretos
lineales e invariantes en el tiempo, por lo tanto, es importante poder analizarlas por
medio de su generacion y visualizacion en Matlab.
El siguiente codigo permite generar y visualizar una se
nal exponencial, de tal forma
que el usuario puede definir la base, la duracion y el instante de inicio.
1
2

3
4
5
6

% C a l c u l a 2m+1 muestras de l a s e n
al exponencial real
% para n= m+no :m+no ( e s d e c i r , c e n t r a d o a l r e d e d o r d e l o r i g e n )
.
% a : Base de l a s e n
al
%m : Duracio n de l a s e n
al
% no : I n s t a n t e de i n i c i o
% x : s a l i d a , muestras de l a f u n c i o n s i n c

7
8
9
10

clc
clear all
close all

11
12
13
14
15

16
17

a =0.5;
m=20;
no =0;
n=m:m; %2m+1 i n s t a n t e s de muestreo c e n t r a d o a l r e d e d o r de
cero
x ( 1 :m+no )=z e r o s (m+no , 1 ) ;
x (m+no +1:2m+1)=a . ( 0 :mno ) ;

18
19
20
21
22

23
24

% graficar sen
al
figure
stem ( n , x )
t i t l e ( s t r c a t ( Generacion de l a S e n
a l E x p o n e n c i a l a= ,
num2str ( a ) ) )
xlabel ( Instantes n )
y l a b e l ( Sen
al Esponencial r e a l )
Al ejecutarse este codigo se produce la se
nal exponencial mostrada en la Figura 20. En
esta se puede ver que la se
nal va desde la muestra -10 hasta la muestra 30. La base
definida en el codigo fue de 0.5.

k. Para probar el correcto funcionamiento del codigo implementado se realizaron dos


pruebas mas. La primera consistio en generar una se
nal exponencial con base negativa
igual a -0.7 iniciando en la muestra -5 y finalizando en la muestra 30. Los resultados
de esta prueba se presentan en la Figura 21. En esa grafica se puede ver como el signo
de las muestras va variando entre una y otra. Esto se debe a que la base de la se
nal
generada es negativa.
Como segunda prueba se quizo observar si el codigo funcionaba correctamente para
bases mayores a 1. Por lo tanto se definio que la base fuera 2. Los resultados de esta
prueba se presentan en la grafica de la Figura 22, en la cual se puede observar que la
se
nal comienza a crecer desde la muestra 3 hasta la muestra 6. Se escogio una duracion
16

corta de la se
nal dado que era una se
nal que creca en gran medida cada vez que se
graficaban mas muestras.

Figura 20: Grafica de la se


nal exponencial con no=-10 y m=30

Figura 21: Grafica de la se


nal exponencial con no=-10 y m=30

17

Figura 22: Grafica de la se


nal exponencial con no=-10 y m=30

l. Se
nal exponencial [(a + jb)n base compleja])
Las se
nales exponenciales complejas son la forma general de las funciones propias de los
sistemas discretos lineales e invariantes en el tiempo. Este tipo de se
nales por lo general
se dividen en dos partes para poderlas analizar graficamente: Parte real e imaginario o
magnitud y fase.El siguiente codigo permite generar y visualizar una se
nal exponencial
compleja.
1
2

3
4
5
6
7

% C a l c u l a 2m+1 muestras de l a s e n
a l exponencial compleja
% para n= m+no :m+no ( e s d e c i r , c e n t r a d o a l r e d e d o r d e l o r i g e n )
.
% a : Parde r e a l de l a base de l a s e n
al
% b : Parde c o m p l e j a de l a base de l a s e n
al
%m : Duracio n de l a s e n
al
% no : I n s t a n t e de i n i c i o
% x : s a l i d a , muestras de l a f u n c i o n s i n c

8
9
10
11

clc
clear all
close all

12
13
14
15
16
17

18
19

a =0.2;
b=0.3;
m=6;
no=3;
n=m:m; %2m+1 i n s t a n t e s de muestreo c e n t r a d o a l r e d e d o r de
cero
x ( 1 :m+no )=z e r o s (m+no , 1 ) ;
x (m+no +1:2m+1)=(a+1 i b ) . ( 0 :mno ) ;
18

20
21
22
23
24

25
26
27
28
29

30
31
32
33
34

35
36
37
38
39

40
41

% graficar sen
al
figure
stem ( n , r e a l ( x ) )
t i t l e ( s t r c a t ( Generacion de l a S e n
al
num2str ( a ) , y b= , num2str ( b ) ) )
xlabel ( Instantes n )
y l a b e l ( Parte Real )
figure
stem ( n , imag ( x ) )
t i t l e ( s t r c a t ( Generacion de l a S e n
al
num2str ( a ) , y b= , num2str ( b ) ) )
xlabel ( Instantes n )
y l a b e l ( Parte I m a g i n a r i a )
figure
stem ( n , abs ( x ) , r )
t i t l e ( s t r c a t ( Generacion de l a S e n
al
num2str ( a ) , y b= , num2str ( b ) ) )
xlabel ( Instantes n )
y l a b e l ( Magnitud )
figure
stem ( n , phase ( x ) , r )
t i t l e ( s t r c a t ( Generacion de l a S e n
al
num2str ( a ) , y b= , num2str ( b ) ) )
xlabel ( Instantes n )
y l a b e l ( Fase en r a d i a n e s )

E x p o n e n c i a l a= ,

E x p o n e n c i a l a= ,

E x p o n e n c i a l a= ,

E x p o n e n c i a l a= ,

Al ejecutar este codigo se genera una se


nal exponencial compleja con a=0.8 y b=0.5.
Las siguientes cuatro figuras presentan las graficas obtenidas despues de la ejecucion
del codigo. Coo se menciono anteriormente, para poder hacer un analisis grafico de
estas se
nales es necesario dividirlas en dos partes.
Las Figuras 23 y 24 muestran la parte real y la parte imaginaria respectivamente, mientras que las Figuras 25 y 26 muestras la magnitud y fase de la se
nal. A simple vista
pareciera que las dos primeras se
nales no tienen nada que ver con las dos siguientes,
pero en realidad son la misma, solo que en una la informacion de la se
nal exponencial
se presenta de forma diferente a las otras.
m. Al igual que en los codigos anteriores, para este tambien se realizo otra prueba para
corroborar su funcionamiento. Para esta segunda prueba se genero una se
nal donde se
determino a=-0.4 y b =-0.7, con un instante de inicio en la muestra 3 y finalizando en
la muestra 20. La parte real e imaginaria de esta se
nal se muestran en las Figuras 27
y 28, mientras que la magnitud y fase se presentan en la Figuras 29 y 30.
Para diferenciar mejor los dos tipos de visualizacion, se grafico en azul las componentes
real e imaginaria de la se
nal y en rojo la magnitud y fase de la misma.

19

Figura 23: Grafica de la parte real de la se


nal con no=-4 y m=10

Figura 24: Grafica de la parte imaginaria de la se


nal con no=-4 y m=10

20

Figura 25: Grafica de la magnitud de la se


nal con no=-4 y m=10

Figura 26: Grafica de la fase de la se


nal con no=-4 y m=10

21

Figura 27: Grafica de la parte real de la se


nal con no=3 y m=20

Figura 28: Grafica de la parte imaginaria de la se


nal con no=3 y m=20

22

Figura 29: Grafica de la magnitud de la se


nal con no=3 y m=20

Figura 30: Grafica de la fase de la se


nal con no=3 y m=20

23

4.

Convoluci
on

a. El proceso de convolucion para secuencias discretas se define de la siguiente forma:


y(n) =

x(k)h(n k) =

k=

h(k)x(n k)

(3)

k=

De esta ecuacion se puede ver que la convolucion cumple con la propiedad conmutativa.
Ademas, de la misma ecuacion se puede determinar el tama
no de la secuencia de salida
y. Si se mira la se
nal x como la entrada a un sistema discreto con respuesta al impulso
h, se puede ver que la u
ltima muestra de la se
nal resultante y sera la duracion de la
respuesta al impulso contando a partir de la u
ltima muestra de la se
nal de entrada
x. Por lo tanto, si la se
nal x tiene xn0 muestras y la respuesta al impulso tiene hn0
muestras, con tanto hn0 veces a partir de xn0 , se tiene que la cantidad de muestras
que definen la se
nal de salida sera de yn0 = xn0 + hn0 1.
A continuacion se presenta un codigo que permite calcular la operacion de convolucion
y visualizar cada una de las se
nales de entrada y la se
nal resultante. Este programa
pide como entrada al usuario que inserte en forma de vector cada una de las se
nales de
entrada al proceso de convolucion. Estas se
nales son llamas x y h. El usuario tambien
debe ingresar en xno y hno la componente del vector que corresponde a la muestra
cero de la secuencia discreta de x y h respectivamente. Con estos datos de entrada el
programa se encarga de calcular el vector y que corresponde a la secuencia de salida
as como determinar la componente yno que da informacion de donde se encuentra la
muestra cero. Finalmente el programe permite la visualizacion de la se
nal resultante y
de las se
nales de entrada.
1
2
3

%% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
%Convolucio n %
%% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %

4
5
6
7
8
9
10
11

% C a l c u l a l a c o n v o l u c i o n e n t r e una s e n
a l x y una s e n
al h
% x : Sen
a l de e n t r a d a 1
% h : Sen
a l de e n t r a d a 2
% y : Sen
a l de s a l i d a
% xno : I n s t a n t e c e r o en l a s e n
al 1
% hno : I n s t a n t e c e r o en l a s e n
al 2
% yno : I n s t a n t e c e r o en l a s e n
a l de s a l i d a

12
13
14
15

clc
clear all
close all

16
17
18
19
20
21
22
23

x=[1 2 1 2];
xn=l e n g t h ( x ) ;
xno =1;
h=[1 2 3 2 1 ] ;
hn=l e n g t h ( h ) ;
hno =1;
yno=hno+xno 1;
24

24

n=l i n s p a c e (2xnohno , xnxno+hnhno , hn+xn1) ; % Eje h o r i z o n t a l

25
26
27
28
29
30
31
32
33
34
35
36
37

f o r j =1:hn+xn1
y ( j ) =0;
f o r k=1: j
i f jk+1>xn
x ( jk+1)=0;
end
i f k>hn
h ( k ) =0;
end
y ( j )=x ( jk+1)h ( k )+y ( j ) ;
end

38
39

end

40
41

42

h=[ z e r o s ( 1 , ynohno ) h ( 1 : hn+xn1yno+hno ) ] ; % A j u s t e de l a s


sen
ales
x=[ z e r o s ( 1 , ynoxno ) x ( 1 : hn+xn1yno+xno ) ] ;

43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58

% graficar sen
al
figure
s u b p l o t ( 3 1 1 ) , stem ( n , x )
t i t l e ( Sen
a l de e n t r a d a x )
xlabel ( Instantes n )
y l a b e l ( Amplitud )
s u b p l o t ( 3 1 2 ) , stem ( n , h , r )
t i t l e ( Sen
a l de e n t r a d a h )
xlabel ( Instantes n )
y l a b e l ( Amplitud )
s u b p l o t ( 3 1 3 ) , stem ( n , y , m )
t i t l e ( Sen
a l de s a l i d a y )
xlabel ( Instantes n )
y l a b e l ( Amplitud )

b. En las paginas siguientes se mostraran los resultados obtenidos para diferentes entradas
x y respuestas al impulso h.

25

a- . h(n) = {1, 2, 3, 2, 1}

x(n) = {1, 2, 1, 2}

Figura 31: Grafica de las se


nales de entrada y la de salida
b- . h(n) = {1, 2, 3, 2, 1}

x(n) = {1, 2, 1, 2}

Figura 32: Grafica de las se


nales de entrada y la de salida

26

c- . h(n) = {1, 2, 1, 2}

x(n) = {1, 2, 3, 2, 1}

Figura 33: Grafica de las se


nales de entrada y la de salida
d- . h(n) = {1, 2, 3, 2, 1}

x(n) = {1, 2, 2, 2}

Figura 34: Grafica de las se


nales de entrada y la de salida

27

e- . h(n) = {1, 2, 3, 2, 1}

x(n) = {1,5, 2, 2, 1}

Figura 35: Grafica de las se


nales de entrada y la de salida

c . Haciendo una comparacion de los resultados presentados el el literal anterior, se ve


que la secuencia obtenida en a- y b- es la misma, pero el eje temporal vara en una
unidad. Esto se debe a que las secuencias de x y h es la misma en ambos casos, salvo
que en el segundo caso el instante cero esta en la componente dos. Para el caso c-,
las secuencias x y h estan cambiadas a como se presentaron en b-, a
un as, ambas
respuestas obtuvieron la misma secuencia y el mismo eje temporal, esto es un ejemplo
que muestra la propiedad conmutativa de la convolucion.
Para los u
ltimos dos casos, se tiene que la secuencia h es la misma que se presento en
a- y b-, pero la secuencia x vara en un dato. Para el caso d- la tercera componente
pasa a ser -2, esto provoca que en la salida exista un dato con gran magnitud y signo
negativo en la muestra 4. Mientras que en el caso e- lo que se cambio fue el valor de
la primera componente, la cual paso de ser 1 a 1.5, esto hizo que en la se
nal de salida
el valor de los datos fuera en promedio mayor que en los demas resultados.
En todos los casos se observa que el mayor valor en la secuencia de salida se presenta en
la tercera componente. Esto coincide con el mayor valor de la secuencia de la respuesta
impulsional. Este mayor valor se da en ese instante dado que es ah donde la suma de
las componentes de la suma de convolucion presenta mayor energa. A continuacion se
presenta un resultado analtico del caso a- par ala muestra 2.
y(2) = (0)(1) + (0)(2) + (1)(3) + (2)(2) + (1)(1) + (2)(0) = 6
d . Ahora se probara la convolucion con se
nales senoidales y los sistemas de a- y c-.

28

(4)

h(n) = {1, 2, 3, 2, 1}

x(n) = sin(2(Fc /Fs )n)

Figura 36: Convolucion de entrada senoidal con Fc = 1 [KHz] y Fs = 300 [KHz]

h(n) = {1, 2, 1, 2}

x(n) = sin(2(Fc /Fs )n)

Figura 37: Convolucion de entrada senoidal con Fc = 1 [KHz] y Fs = 300 [KHz]

29

h(n) = {1, 2, 3, 2, 1}

x(n) = sin(2(Fc /Fs )n)

Figura 38: Convolucion de entrada senoidal con Fc = 10 [KHz] y Fs = 300 [KHz]

h(n) = {1, 2, 1, 2}

x(n) = sin(2(Fc /Fs )n)

Figura 39: Convolucion de entrada senoidal con Fc = 10 [KHz] y Fs = 300 [KHz]

30

h(n) = {1, 2, 3, 2, 1}

x(n) = sin(2(Fc /Fs )n)

Figura 40: Convolucion de entrada senoidal con Fc = 50 [KHz] y Fs = 300 [KHz]

h(n) = {1, 2, 1, 2}

x(n) = sin(2(Fc /Fs )n)

Figura 41: Convolucion de entrada senoidal con Fc = 50 [KHz] y Fs = 300 [KHz]

31

h(n) = {1, 2, 3, 2, 1}

x(n) = sin(2(Fc /Fs )n)

Figura 42: Convolucion de entrada senoidal con Fc = 100 [KHz] y Fs = 300 [KHz]

h(n) = {1, 2, 1, 2}

x(n) = sin(2(Fc /Fs )n)

Figura 43: Convolucion de entrada senoidal con Fc = 100 [KHz] y Fs = 300 [KHz]

32

De estos resultados se puede concluir que el sistema a- cumple la funcion de un filtro


pasa-bajas. Esto se observa ya que para las se
nales senoidal de 1,10 y 50 KHz la salida
tuvo mayor amplitud que la entrada, mientras que para la se
nal senoidal de 100 KHz
la amplitud de la se
nal de salida se aten
uo totalmente.
Por su parte, el sistema c- se comporto como un sistema pasa-altas. Para las entradas
con frecuencias 10, 50 y 100 KHz la amplitud de la se
nal aumento en la salida, mientras
que para la entrada senoidal con frecuencia de 1 KHz, en la salida la amplitud se atenuo.
e . La funcion deconv() permite obtener una de las se
nales de entrada en un proceso
de convolucion si se conoce la otra se
nal de entrada y la se
nal de salida. Se tomaran
los resultados presentados en a- para encontrar la respuesta impulsional del sistema
tomando la se
nal de entrada x y la salida y.
Para esto, se digitaron las se
nales para la deconvolucion y de calculo la misma as:
1
2
3

x=[1 2 1 2];
y=[1 2 3 2 1 ] ;

4
5

he=deconv ( y , x )
obteniendose el siguiente resultado:

1
2

he =

Tambien se podra hallar la se


nal de entrada usando la respuesta al impulso y la se
nal
de salida.
1
2

xe=deconv ( y , h )
Que dara como resultado:

1
2

xe =

3
4

Esta funcion es de gran utilidad en aplicaciones donde se deseen estimar las se


nales
de entrada a un sistema cuando se conoce el modelo del mismo o cuando se desea
caracterizar un sistema en caja negra.
En teora de control en muchas ocasiones se desea caracterizar los sistemas a los cuales
se les quiere aplicar un control, pero un modelado de estos en algunas ocasiones puede
resultar tedioso o poco fiable. Es ah cuando por medio de mediciones de las se
nales de
salida conociendo las de entrada y haciendo uso de la deconvolucion, se puede encontrar
la respuesta al impulso del sistema para basados en esto modelarlo matematicamente.
Una aplicacion similar se hace en procesamiento de datos ssmicos donde por medio de
la deconvolucion se pueden obtener modelos del subsuelo tomando la informacion de
los registros ssmicos y asumiendo que la fuente es una se
nal impulso.
33

5.

Observaciones
Dado que en Matlab las componentes de los vectores no inician en cero, se debe tener
mucho cuidado al momento de graficar las se
nales. Por esta razon se recomienda que
el usuario establezca correctamente los ejes de las funciones que se desean visualizar.
Tambien cabe decir que la longitud del vector que define el eje debe ser igual a la
longitud del vector de la secuencia que se desee graficar.
Cuando se deseen realizar simulaciones de sistemas fsicos reales, se debe tener en
cuenta que estan en un dominio continuo y que las simulaciones se realizan en tiempo
discreto, por tanto es importante al momento de hacer las simulaciones definir periodos
de muestreo lo suficientemente peque
nos para que las se
nales mantengan la forma de la
se
nal continua. Se recuerda que la funcion plot permite realizar visualizaciones como
si fueran continuas las se
nales que se estan trabajando.

6.

Conclusiones
Matlab es una herramienta robusta que permite realizar implementaciones de algoritmos para el procesamiento de se
nales. Este tipo de herramientas son de gran utilidad
para realizar investigaciones en ingeniera y ciencias basicas ya que permiten realizar simulaciones de modelos fsicos a fin de que se puedan predecir soluciones ante
problemas del mundo real.
El procesamiento de se
nales en tiempo discreto tiene la ventaja de que se pueden
realizar metodos numericos para realizar analisis. Por medio de este taller se realizaron analisis sobre las se
nales com
unmente empleadas en procesamiento de digital de
se
nales, permitiendo que se adquiriera la destreza para posteriormente realizar implementaciones en aplicaciones de la ingeniera.
Se logro dise
nar e implementar un algoritmo que permitiera calcular la convolucion
en tiempo discreto. Esto se comprobo por medio de ejemplos con diferentes tipos de
se
nales y respuestas al impulso, ademas del uso de se
nales senoidales para analizar el
comportamiento de sistemas con funciones de filtrado.

Referencias
[1] Alan V. Oppenheim, Ronald W. Schafer, Discrete-Time Signal Processing (3rd Edition),
Pearson, (2010)
[2] Sanjit K. Mitra, Digital Signal Processing (2nd Edition), Mc Graw Hill, (2001)
[3] Jhon G. Proakis, Manolakis, Tratamiento Digital de Se
nales, Pearson, (2007)

34

You might also like