Está en la página 1de 6

Laboratorio de Procesamiento Digital de Seales. Operaciones con seales discretas con MATLAB.

Objetivos especficos
Realizar operaciones de suma, resta, 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 =

x (t )

dt

Potencia de una seal:

Px = lim

2 1 x ( t ) dt T0 T 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 ) x ( t ) * h ( 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,

1 y ( t )

ys [ n ] =

ts xs [ k ] hs [ n k ] = ts
k = s

x [k ] h [n k ]
s s k = s

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

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

x [k ] h [n k ]
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=0 h k 2 5 0 4 3 1 4 0 0 8 0 0 0 Suma = 8 ys[0]=8*=4 t = 3ts 2 5 0 4 3 1 4 0 15 0 16 Suma

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

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

h k

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 0 1 2 3 4 5

2 5 0 4 4 1 3 8 20 0 16 2 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] =

k =

x [k ] h [n 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]

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

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 ) =


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

x ( )y ( t ) d

y ( ) x ( t ) d

La correlacin de una seal consigo misma se denomina autocorrelacin:

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

x ( ) x ( t ) d

La autocorrelacin representa la simulitud 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]
n=

para n=0, 1, 2, 3,

Ryx [ n ] =

y [k ] x [k n]
n=

para n=0, 1, 2, 3,

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 el archivo de guin de la Gua 2 . 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. 3. Capture dos seales desde la tarjeta de sonido, una llmela s1 y la otra s2. Realice la suma y la resta de ambas seales y guarde los resultados en las variables suma y resta respectivamente. Realice una funcin que encuentre la energa de una seal de entrada y aplquela a las seales s1 y s2.

4.

5.

Utilice la funcin de autocorrelacin integrada en MATLAB para encontrar la autocorrelacin de las seales s1 y de la seal s2. Haga una funcin en MATLAB que calcule la convolucin, y prubelo haciendo la convolucin de la seal s1 con la seal s2. Salga de los programas, apague todo el equipo y desconecte los circuitos.

6.

7.

Anlisis de resultados
1. 2. Presentelas 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.

3. 4.

Investigacin complementaria
1. 2. Cree una funcin que calcule la reflexin de una seal discreta. Realizar la convolucin de dos seales continuas utilizando SCILAB.

Bibliografa The MathWorks Inc. Manual del usuario de MATLAB.

También podría gustarte