Laboratorio de Procesamiento Digital de Señales. Operaciones con señales discretas con MATLAB.
Objetivos específicos • • •
operaci ones de suma, rgí a y potenci a con señal es de ti empo di di screto. suma, resta, energí R eali zar ope por l a tarjeta de soni do. R eali zar l a conv ol uci ón di screta de dos señal es adqui ri das por orrel aci ón di screta de dos señal es adq ui ri das por por l a tarjeta de soni do. R eali zar l a autocorre
Materiales y equipos 1 Com Comput putador adora a con sistema sistema operat operativo ivo Windows Windows y MATLAB. MATLAB. 1 Micrófono Micrófono para para PC 2 Parlantes
Introducción teórica rgí a y potenci a. P ara por su duraci ón, por por su si metrí a y por su energí L as señal es se pueden cl asi f i car por esta úl ti ma cl asi f i caci ón tenemos: ∞
•
rgí a de una una señal : Ex = E nergí
∫
2
x ( t ) dt
−∞
•
una señal : Px = lim P otenci a de una
T0 →∞
•
•
1 T0
∫
2
x ( t ) dt
T0
Una Una señal se di ce que que es de energí rgí a si Ex es f i ni to, lo que i mp mplili ca que Px es 0. Ej. P ul sos li mi tados en el ti empo. Una Una señal se di ce que que es de potenci a si Px es f i ni to, lo que i mp mplili ca que Ex es i nf i ni to. Ej. U na ódi ca. señal peri ódi
Operacio peraciones nes con con las señales: D espl azami ento en el ti empo: x(t-2), despl az ami ento a l a derecha. • ompre esi ón del ti empo: x (2t) • C ompr D ilila ataci ón del ti empo: x (t / 2) • • R ef l ex i ón: x (-t) La convolución: rbi trari a ( M edi ante l a conv ol u ci ón cal cul aremos l a respuesta de un si stema ( y(t) ) a una entrada arbi x(t) ). Hay dos condi ci ones para reali eali zar l a conv ol uci ón: • debe ser ser li neal inv ari abl e en el ti empo (L T I) . E l si stema debe La respuesta al i mpul so del si stema es h(t). •
M edi ante conv ol uci ón somos capaces de determi rmi nar l a respuesta del si stema a una señal de entrada a parti r de l a respuesta del si stema a una entrada i mpul so.
La f unción h(t) se def i ne para t ≥ 0 y decrece cuando t → ∞ para la may orí a de los si stemas f í si cos. Por tanto, • La respuesta en t0 depende de los v alores actual y pasado de la entrada y de la respuesta al impul so. • L os v alores más recientes de x(t) son mul tipli cados por sus correspondientes más antiguos (y más grandes) v alores de h( t).
Propiedades de la convolución(se supone que x(t)* h(t)= y(t) ):
x1 ( t ) + x2 ( t ) * h ( t ) = y1 ( t ) + y2 ( t )
K 1 x1 ( t ) + K 2 x2 ( t ) * h ( t ) = K 1 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 ) * hn ( t ) = y m + n ( t )
x ( αt ) * h ( αt ) =
1
y ( αt )
α
La Convolución Discreta: Cuando se trata de hacer un procesamiento digi tal de señal no tiene sentido hablar de conv ol u ciones apli cando estri ctamente la def i ni ción ya que sólo di sponemos de v alores en i nstantes di scretos de tiempo. Es nec esario, pues, una aprox imación numéri ca. Para reali zar la conv ol ución entre dos señales, se ev al uará el área de la f unción x(λ) h(t-λ). Para ell o, di sponemos de muestreos de ambas señales en los i nstantes de tiempo nts, que llamaremos xs[k] y hs[n-k] (donde n y k son enteros) . El área es, por tanto, ∞
ys [ n ] =
∑
∞
∑ x [k ] h [n − k ]
ts xs [ k ] hs [ n − k ] = ts
s
s
k = −∞
k = −∞
La conv ol ución di screta se def i ne para un i nterv alo de muestreo ts =1 : ∞
ys [ n ] = x [ n ] * h [ n ] =
∑ x [k ] h [n − k ] s
s
k = −∞
En la prácti ca se trabaja con secu encias de longi tud f i ni ta. Para hacer la conv ol ución, una de las secuencias se ref l e ja y se desplaza sucesi v amente. V eremos algunos métodos para cal cular la conv ol u ción a partir de dos secu encias.
M étodo de la tira deslizante (SlidingStrip M ethod) Sea h[n]={ 2,5,0,4 }, x[n]={ 4,1,3 }, ts =1/2. L as dos secu encias comienz an en n=0. Hacemos el “ ref l e jo” de una de ell as, x[-n]={ 3, 1, 4 } . A li neamos las secuencias y las sumamos y desplaz amos sucesi v amente.
2 5 0 4 3 1 4 0 0 8 0 0 0 Suma = 8 ys[0] =8*½=4
t = ts 2 5 0 4 3 1 4 0 2 20 0 0 Suma = 22 y s[1]=22*½=11
t = 2ts 2 5 0 4 3 1 4 6 5 0 0 Suma = 11 y s[2]=11*½=5.5
t = 3ts 2 5 0 4 3 1 4 0 15 0 16
t = 4ts 2 5 0 4 3 1 4 0 0 0 4 0
t = 5ts 2 5 0
Suma
Suma
Suma
t =0
h k
h k
0
0
4 3 1 4 0 12 0 0
La conv ol ución di screta y[n] es {8,22,11,31,4,12} . La conv ol u ción numéri ca es { 4,11,5.5,15.5,2,6} .
M étodo de las Suma por Columnas Hacemos el mi smo e jemplo. No es necesario “ ref l e jar” una de las secuencias.
n
0
h
2 5 0 4
x
4 1 3 8 20 0 16 2 5 0 4 6 15 0 12 8 22 11 31 4 12
y
1
2
3
4
5
y[n] = {8,22,11,31,4,12}, n=0, 1, 2,..., 5 M étodo de la malla.
y[n] = {8,22,11,31,4,12}, n=0, 1, 2,..., 5
Propiedades sobre la duraciónde la convolución discreta. El í ndi ce del comienzo de la conv ol u ción es la suma de los í ndi ces de comienzo de las respecti v as señales. Si las dos señales comienzan en n= n0 y n= n1 , la conv ol ución comienza en n= n0 +n1 . Para dos secuencias de duración M y N , su conv ol ución se ex tiende durante M +N -1 muestreos.
Propiedades de la convolucióndiscreta ( x[n]* h[n]= y[n] ) ∞
y [ n] =
∑ x [k ] h[n −k ]
k = −∞
[ Ax1 + b x2 ] * 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 correlación y la autocorrelación:
C orrelación: Es una operación similar a la conv ol ución, con la di f erencia de que en la correlación no hay que “ ref l e jar” una de las señales: ∞
Rxy ( t ) = x ( t ) **y ( t ) =
∫ x ( λ )y (λ
−
t ) d λ = x ( t ) * y ( −t )
−∞
Esta ex presión nos i ndi ca que la relación que ex i ste entre la conv ol u ción y la correlación.
La correlación nos da una medida de la simili tud entre dos señales. No ex i ste la propiedad conmutati v a por lo que dadas dos señales x(t) e y(t) se def i nen dos correlaciones: ∞
Rxy ( t ) = x ( t ) **y ( t ) =
∫ x ( λ )y ( λ
−
t) dλ
−∞ ∞
R yx ( t ) = y ( t ) **x ( t ) =
∫ y (λ) x (λ
−
t) d λ
−∞
que sólo coi nciden en t=0: Rxy(0)= Ryx(0)
La correlación de una señal consigo mi sma se denomi na autocorrelación: ∞
R xx ( t ) = x ( t ) **x ( t ) =
∫ x (λ) x(λ
−
t) d λ
−∞
La autocorrelación representa la simuli tud entre una señal y su desplazada. El máx imo de autocorrelación se obtiene cuando no hay desplazamiento ( t=0 ). La autocorrelación es simétri ca con respecto al origen, ya que Rxx(t) = Rxx(- t). La correlación discreta: Se def i nen de igual manera que en el caso conti nuo, así como la autocorrelación.
∞
R xy [ n ] =
∑ x [ k ] y [ k − n]
para n=0, ±1, ±2, ±3, …
n= −∞
∞
R yx [ n ] =
∑ y [ k ] x [k − n]
para n=0, ±1, ±2, ±3, …
n= −∞
MATLAB dispone de dos funciones para el cálculode convoluciones y correlaciones.
>> y = conv(x, h) Hace la conv ol ución de los vectores x y h. El vector resul tante y tiene un tamaño igual a length(x) + length(h)- 1
>> rxy = xcorr(x, y) Hace la correlación de los vectores de M elementos x e y. Dev uel v e un vector de 2M- 1 elementos.
>> rxx = x corr(x) Hace la autocorrelación del vector x de M elementos. Dev u el v e un vector de 2M- 1 elementos.
PROCEDIMIENTO Parte I. Generación de una señal en MATLAB 1.
A dquiera dos señales de voz di f erentes. Puede usar el archi v o de guión de la G u í a 2 . ai =analogi nput('wi nsound') add channel (ai ,1); ai .S ampleRate=8000; ai .S amplesP erT rigger=40000; ai .T riggerT y pe='Immediate'; start(ai ) [s1,t]=getdata(ai );
Parte II. Operacionesconseñales digitalizadas con la tarjeta desonido. 2.
Capture dos señales desde la tarjeta de sonido, una ll ámela s1 y la otra s2.
3.
Reali ce la suma y la resta de ambas señales y guarde los resul tados en las v ariables suma y resta respecti v amente.
4.
Reali ce una f unción que encuentre la energí a de una señal de entrada y aplí quela a las señales s1 y s2.
5.
Utilice la f unción de autocorrelación i ntegrada en M A T L A B para encontrar la autocorrelación de las señales s1 y de la señal s2.
6.
Haga una f unción en M A T L A B que cal cule la conv ol ución, y pruébelo haciendo la convol u ción de la señal s1 con la señal s2.
7.
S alga de los programas, apague todo el equipo y desconecte los circui tos.
Análisis de resultados
1. 2.
3. 4.
Presente las f unciones que creó para el cál culo de la energí a y la potencia y la conv ol ución con M atlab. Busque en el archi v o de ayuda de la caja de herramientas de adqui si ción de datos los comandos necesarios para reprod ucir una señal en la tarjeta de sonido y reproduzca las señales resul tantes de la suma y la resta. Desplace 0.3 segundos en el tiempo una de las señales adquiridas y súmela con la mi sma si n desplazar y reproduzca la señal resul tante. ¿Qué obtiene como resul tado? Presente las gráf i cas obtenidas en la prácti ca con sus respecti v os nombres y tí tulos.
Investigación complementaria 1. 2.
Cree una f unción que cal cule la ref l ex ión de una señal di screta. Reali zar la convol ución de dos señales conti nuas utili zando SC IL A B .
Bibliografía •
The MathWorks Inc. Manual del usuario de MATLAB.