Вы находитесь на странице: 1из 6

Laboratorio de Procesamiento Digital de Seales.

Operaciones con seales discretas con MATLAB.

Objetivos especficos

Realizar operaciones de suma, rest a , energa y potencia con seales de tiempo discreto.
Realizar la convolucin discreta de dos seales adquiridas por la tarjeta de sonido.
Realizar la autocorrelacin discreta de dos seales adquiridas por la tarjeta de sonido.

Materiales y equipos
1 Computadora con sistema operativo Windows y MATLAB.
1 Micrfono para PC
2 Parlantes
Introduccin terica
Las seales se pueden clasificar por su duracin, por su simetra y por su energa y potencia. Para
esta ltima clasificacin tenemos:

Energa de una seal:

Ex =

Potencia de una seal: Px =

x ( t ) dt

lim

T0

1
T

x (t ) dt
0 T0

Una seal se dice que es de energa si Ex es finito, lo que implica que Px es 0. Ej. Pulsos
limitados en el tiempo.
Una seal se dice que es de potencia si Px es finito, lo que implica que Ex es infinito. Ej. Una
seal peridica.

Operaciones con las seales:


Desplazamiento en el tiempo: x(t-2), desplazamiento a la derecha.
Compresin del tiempo: x(2t)
Dilatacin del tiempo: x(t/2)
Reflexin: x(-t)
La convolucin:
Mediante la convolucin calcularemos la respuesta de un sistema (y(t)) a una entrada arbitraria (x(t)). Hay
dos condiciones para realizar la convolucin:
El sistema debe ser lineal invariable en el tiempo (LTI).
La respuesta al impulso del sistema es h(t).
Mediante convolucin somos capaces de determinar la respuesta del sistema a una seal de
entrada a partir de la respuesta del sistema a una entrada impulso.

La funcin h(t) se define para t 0 y decrece cuando t para la mayora de los sistemas
fsicos. Por tanto,
La respuesta en t0 depende de los valores actual y pasado de la entrada y de la respuesta al
impulso.
Los valores ms recientes de x(t) son multiplicados por sus correspondientes ms antiguos (y ms
grandes) valores de h(t).
Propiedades de la convolucin (se supone que x(t)* h(t)= y(t) ):

x1 (t ) + x2 (t ) * h (t ) = y1 (t ) + y2 (t )
K1 x1 (t ) + K 2 x2 (t ) * h (t ) = K1 y1 (t ) + K 2 y2 (t )
x (t ) * h (t ) = y (t )
x (t ) * h (t ) = y (t )

(t ) * h (t ) = h (t )
x ( t ) * h ( t ) = x ( t ) * h ( t ) = y ( t )
x ( t ) * h ( t ) = y ( t )
x m (t ) * h n (t ) = y m + n (t )
1
x ( t ) * h ( t ) = y ( t )

La Convolucin Discreta:
Cuando se trata de hacer un procesamiento digital de seal no tiene sentido hablar de convoluciones
aplicando estrictamente la definicin ya que slo disponemos de valores en instantes discretos de
tiempo. Es necesario, pues, una aproximacin numrica.
Para realizar la convolucin entre dos seales, se evaluar el rea de la funcin x() h(t-). Para ello,
disponemos de muestreos de ambas seales en los instantes de tiempo nts, que llamaremos xs[k] y hs[n-k]
(donde n y k son enteros) . El rea es, por tanto,

ys [ n] =

t x [k ]h [n k ] = t x [k ]h [ n k ]

k =

s
k =

La convolucin discreta se define para un intervalo de muestreo ts =1 :

ys [ n] = x [ n ] * h [ n] =

x [ k ]h [n k ]
s

k =

En la prctica se trabaja con secuencias de longitud finita. Para hacer la convolucin, una de las
secuencias se refleja y se desplaza sucesivamente. Veremos algunos mtodos para calcular la
convolucin a partir de dos secuencias.
Mtodo de la tira deslizante (Sliding Strip Method)
Sea h[n]={ 2,5,0,4 }, x[n]={ 4,1,3 }, ts =1/2. Las dos secuencias comienzan en n=0.
Hacemos el reflejo de una de ellas, x[-n]={ 3, 1, 4 } .
Alineamos las secuencias y las sumamos y desplazamos sucesivamente.

t = ts
2 5 0 4

t = 2ts
2 5 0 4

3 1 4
0 0 8 0 0 0
Suma = 8
ys[0]=8*=4

3 1 4
0 2 20 0 0
Suma = 22
ys[1]=22*=11

3 1 4
6 5 0 0
Suma = 11
ys[2]=11*=5.5

t = 3ts
2 5 0 4

t = 4ts
2 5 0 4

t = 5ts
2 5 0 4

3 1 4
0 15 0 16
Suma

3 1 4
0 0 0 4 0
Suma

0 0 0 12
Suma

t=0
h
k

h
k

2 5 0 4

3 1 4
0 0

La convolucin discreta y[n] es {8,22,11,31,4,12} . La convolucin numrica es {4,11,5.5,15.5,2,6}.

Mtodo de las Suma por Columnas


Hacemos el mismo ejemplo. No es necesario reflejar una de las secuencias.
n

h
x

25
4 1
8 20
2

1 2

3 4 5

04
3
0 16
5 0 4
6 15 0 12
8 22 11 31 4 12

y[n] = {8,22,11,31,4,12}, n=0, 1, 2,..., 5


Mtodo de la malla.

y[n] = {8,22,11,31,4,12}, n=0, 1, 2,..., 5


Propiedades sobre la duracin de la convolucin discreta.
El ndice del comienzo de la convolucin es la suma de los ndices de comienzo de las respectivas
seales. Si las dos seales comienzan en n= n0 y n= n1 , la convolucin comienza en n= n0 +n1 .
Para dos secuencias de duracin M y N, su convolucin se extiende durante M+N-1 muestreos.

Propiedades de la convolucin discreta ( x[n]* h[n]= y[n] )

y [n ] = x [k ] h [ n k ]
k =

[ Ax1 + bx2 ] * h = y1 + y2
x [ n ] * h [ n ] = x [n ] * h [ n ] = y [n ]
x [n ] * h [ n ] = y [n ]
[n ]* h[ n ] = h[ n]
h [ n ] = [ n ] * h [ n ] = {u [ n ] u [n 1]} * h [ n ] = yu [ n ] yu [ n 1]

u [ n ]* x [n ] = x [ k ]
k =

{x [n] x [n 1]} * h [n] = y [n ] y [n 1]


La correlacin y la autocorrelacin:
Correlacin: Es una operacin similar a la convolucin, con la diferencia de que en la correlacin no
hay que reflejar una de las seales:

Rxy (t ) = x (t ) **y (t ) =

x ( )y ( t ) d = x (t )* y (t )

Esta expresin nos indica que la relacin que existe entre la convolucin y la correlacin.
La correlacin nos da una medida de la similitud entre dos seales. No existe la propiedad conmutativa
por lo que dadas dos seales x(t) e y(t) se definen dos correlaciones:

Rxy (t ) = x (t ) **y (t ) =
Ryx (t ) = y (t ) **x (t ) =

x ( )y ( t ) d

y ( ) x ( t ) d

que slo coinciden en t=0: Rxy(0)= Ryx(0)


La correlacin de una seal consigo misma se denomina autocorrelacin:

Rxx ( t ) = x (t ) **x (t ) =

x ( ) x ( t ) d

La autocorrelacin representa la similitud entre una seal y su desplazada. El mximo de


autocorrelacin se obtiene cuando no hay desplazamiento (t=0). La autocorrelacin es simtrica con
respecto al origen, ya que Rxx(t) = Rxx(- t).
La correlacin discreta:
Se definen de igual manera que en el caso continuo, as como la autocorrelacin.

Rxy [ n ] =

x [ k ] y [k n ]

para n=0, 1, 2, 3,

n=

Ryx [n ] =

y [ k ] x [k n ]

para n=0, 1, 2, 3,

n=

MATLAB dispone de dos funciones para el clculo de convoluciones y correlaciones.


>> y = conv(x, h)
Hace la convolucin de los vectores x y h. El vector resultante y tiene un tamao igual a length(x)+
length(h)- 1
>> rxy = xcorr(x, y)
Hace la correlacin de los vectores de M elementos x e y. Devuelve un vector de 2M- 1 elementos.
>> rxx = xcorr(x)
Hace la autocorrelacin del vector x de M elementos. Devuelve un vector de 2M- 1 elementos.

PROCEDIMIENTO
Parte I. Generacin de una seal en MATLAB
1.

Adquiera dos seales de voz diferentes. Puede usar la siguiente funcin (32 bits):
ai=analoginput('winsound')
addchannel(ai,1);
ai.SampleRate=8000;
ai.SamplesPerTrigger=40000;
ai.TriggerType='Immediate';
start(ai)
[s1,t]=getdata(ai);

Parte II. Operaciones con seales digitalizadas con la tarjeta de sonido.


2.

Capture dos seales desde la tarjeta de sonido, una llmela s1 y la otra s2.

3.

Realice la suma y la resta de ambas seales y guarde los resultados en las variables suma y
resta respectivamente.

4.

Utilice la funcin de autocorrelacin integrada en MATLAB para encontrar la autocorrelacin


de las seales s1 y de la seal s2.

5.

Salga de los programas, apague todo el equipo y desconecte los circuitos.

Anlisis de resultados
1.
2.

3.
4.

Presente las funciones que cre para el clculo de la energa y la potencia y la convolucin con
Matlab.
Busque en el archivo de ayuda de la caja de herramientas de adquisicin de datos los
comandos necesarios para reproducir una seal en la tarjeta de sonido y reproduzca las seales
resultantes de la suma y la resta.
Desplace 0.3 segundos en el tiempo una de las seales adquiridas y smela con la misma sin
desplazar y reproduzca la seal resultante. Qu obtiene como resultado?
Presente las grficas obtenidas en la prctica con sus respectivos nombres y ttulos.

Investigacin complementaria
1.
2.
3.

Cree una funcin que calcule la reflexin de una seal discreta.


Explique cmo realizar la convolucin de dos seales contnuas.
Aplicando las funciones integradas en MATLAB, muestre el espectro en frecuencia de cada una de las
seales.

Bibliografa

The MathWorks Inc. Manual del usuario de MATLAB.

Вам также может понравиться