5º Curso-Tratamiento Digital de Señal
Convolución
17/11/99
Ì
Concepto y Definición de Convolución
Ì
Propiedades
Ì
Correlación y Autocorrelación
Ì
Convolución Discreta
Capítulo 2: Convolución 1
5º Curso-Tratamiento Digital de Señal
Concepto y Definición de Convolución Ì
Mediante la convolución calcularemos la respuesta de un sistema (y(t)) a una entrada arbitraria ( x(t)).
Ì
Dos condiciones para realizar la convolución:
Ì
x
Sistema LTI.
x
La respuesta al impulso del sistema es h(t).
Basándonos en el principio de superposición y en que el sistema es invariante en el tiempo: Si L{δ( t )} = h( t ) → L{K
Ì
) ⋅ δ( t − t0 )} = K ⋅ h( t − t0
Una señal arbitraria de entrada x(t) puede expresarse como un tren infinito de impulsos. Para ello, dividimos x(t) en tiras rectangulares de anchura t s y altura x(k t s). Cada tira la reemplazamos por un impulso cuya amplitud es el área de la ( t − kt s ) tira : t s ⋅ x ( kt s ) ⋅ δ
17/11/99
Capítulo 2: Convolución 2
5º Curso-Tratamiento Digital de Señal
Concepto y Definición de Convolución x(t)
t t s
Ì Ì
La función xs(t) que aproxima x(t) es : xs ( t ) = x(t) es el límite cuando t d λ→0, k· t : s→ s→λ x( t ) = lim
t s →0
k =∞
∑ t x( kt ) ⋅ δ( t − kt ) s
s
s
= −∞ k
∞
k =∞
x( λ ) ⋅ δ( t − λ ) ⋅ d λ ∑ t x( kt ) ⋅ δ( t − kt ) = ∫ s
s
s
k = −∞
−∞
Y aplicando el principio de superposición: ∞
∫
y( t ) = L {x (t )} = L x (λ ) ⋅ δ(t
−∞
17/11/99
∞ ∞ − λ ) ⋅ dλ = ∫ x( λ ) ⋅ L{δ( t − λ )} ⋅ dλ = ∫ x( λ ) ⋅ h( t − λ ) ⋅ dλ = x (t )∗ h(t ) −∞ −∞
Capítulo 2: Convolución 3
5º Curso-Tratamiento Digital de Señal
Concepto y Definición de Convolución Ì
Mediante convolución hemos sido capaces de determinar la respuesta del sistema a una señal de entrada a partir de la respuesta del sistema a una entrada impulso.
Ì
La función h(t) se define para t y decrece cuando t ≥0 →∞, para la mayoría de los sistemas físicos. Por tanto, x
x
17/11/99
La respuesta en t 0 depende de los valores actual y pasados de la entrada y de la respuesta al impulso. Los valores más recientes de x(t) son multiplicados por sus correspondientes más antiguos (y más grandes) valores de h(t).
Capítulo 2: Convolución 4
5º Curso-Tratamiento Digital de Señal
Propiedades Ì
Propiedades (se supone que x(t)*h(t)=y(t)): [ x1 ( t ) + x 2 ( t )]∗ h( t ) = y1 ( t ) + y 2 ( t ) [K1 x1 ( t ) + K 2 x 2 ( t )]∗ h( t ) = K1 y1 ( t ) + K 2 y 2 ( 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 ) =
17/11/99
1
α
y( αt )
Capítulo 2: Convolución 5
5º Curso-Tratamiento Digital de Señal
Correlación y Autocorrelación Ì
Correlación: Es una operación similar a la convolución, con la diferencia de que en la correlación no hay que “reflejar” una de las señales: ∞
Rxy (t ) = x (t )∗∗ y(t ) =
x ( λ ) y( λ − t )d λ = x (t )∗ y( −t ) ∫
−∞
Esta expresión nos indica que la relación que existe entre la convolución y la correlación. La correlación nos da una medida de la similitud entre dos señales. No existe la propiedad conmutativa por lo que dadas dos señales x(t) e y(t) se definen dos correlaciones: ∞ Rxy ( t ) = x( t )∗∗ y( t ) =
x( λ ) y ( λ − t )dλ ∫
−∞ ∞
Ryx ( t ) = y( t )∗∗ x( t ) =
y ( λ )x( λ − t )dλ ∫
−∞
que sólo coinciden en t=0 : Rxy(0)= Ryx(0) 17/11/99
Capítulo 2: Convolución 6
5º Curso-Tratamiento Digital de Señal
Correlación y Autocorrelación Ì
La correlación de una señal consigo misma se denomina autocorrelación: ∞ Rxx ( t ) = x( t )∗∗ x ( t ) = ∫ x ( λ )x ( λ − t )dλ −∞
La autocorrelación representa la simulitud entre una señal y su desplazada. El máximo de autocorrelación se obtiene cuando no hay desplazamiento (t=0). La autocorrelación es simétrica con respecto al origen, ya que Rxx(t)=Rxx(-t).
17/11/99
Capítulo 2: Convolución 7
5º Curso-Tratamiento Digital de Señal
Convolución Discreta Ì
Convolución discreta : x
x
Cuando se trata de hacer un procesamiento digital de señal no tiene sentido hablar de convoluciones aplicando estrictamente la definición ya que sólo disponemos de valores en instantes discretos de tiempo. Es necesario, pues, una aproximación numérica. Para realizar la convolución entre dos señales, se evaluará el área de la )h(t-λ) función x(λ . Para ello, disponemos de muestreos de ambas señales en los instantes de tiempo nt s , que llamaremos xs[k] y hs[n-k] (donde n y k son enteros). El área es, por tanto, ys [n] =
x
∞
∞
∑ t ⋅ x [k ]h [n − k] =t ⋅ ∑ x [k ]h [n − k]
= −∞ k
s
s
s
s
= −∞ k
s
s
La convolución discreta se define para un intervalo de muestreo t s=1 : y[n] = x[n]∗ h[n] =
∞
∑ x [k ]h [n − k ] s
s
k =−∞
17/11/99
Capítulo 2: Convolución 8
5º Curso-Tratamiento Digital de Señal
Convolución Discreta h[k]
-5
x[n-k]
0
t
5
-5
0
5
t
x[n-k]·h[k]
-5
x
17/11/99
0
5
t
A veces es posible hacer una convolución discreta analítica. Veamos un ejemplo. Se trata de hacer la convolución de una señal x[n]=nu[n+1] con h[n]=a-nu[n], siendo a<1.
Capítulo 2: Convolución 9
5º Curso-Tratamiento Digital de Señal
Convolución Discreta y[n] =
∞
∑ k ⋅ u[k + 1] ⋅ a
− ( n − k )
⋅ u[n − k ]
=−∞ k
=
n
∑k ⋅a
−( n−k )
=a
=−1 k
− ( n +1)
+a
−n
n
∑ ka
k
=0 k
= a − ( n +1) + a − n ⋅ (a + 2 a 2 + 3a 3 + +na n )
= a − ( n +1) + a − n ⋅ a ⋅ (1 + 2a + 3a 2 + +na n −1 )
=a
x
17/11/99
− ( n +1)
+
a − n +1
(1 − a )
2
[1 − (n + 1)a n + na n +1 ]
En la práctica se trabaja con secuencias de longitud finita. Para hacer la convolución, una de las secuencias se refleja y se desplaza sucesivamente. Veremos algunos métodos para calcular la convolución a partir de dos secuencias.
Capítulo 2: Convolución 10
5º Curso-Tratamiento Digital de Señal
Convolución Discreta Ì
Método de la tira deslizante (Sliding Strip Method) x
Sea h[n]={2,5,0,4}, x[n]={4,1,3}, t s=1/2. Las dos secuencias comienzan en n=0. 3
Hacemos el “reflejo” de una de ellas, x[-n]={3,1,4}.
3
Alineamos las secuencias y las sumamos y desplazamos sucesivamente. t=0 h x
17/11/99
t=t s
t=2t s
Suma=8
Suma=22
Suma=11
y s[ 0 ] = 8 · ½ = 4
y s[ 1 ] = 2 2 · ½ = 1 1
y s[ 2 ] = 1 1 · ½ = 5 . 5
t=3t s
t=4t s
t=5t s
h
x
Suma=31
Suma=4
Suma=12
y s[ 3 ] = 3 1 · ½ = 1 5 . 5
y s[ 4 ] = 4 · ½ = 2
y s[ 5 ] = 1 2 · ½ = 6
Capítulo 2: Convolución 11
5º Curso-Tratamiento Digital de Señal
Convolución Discreta 3
Ì
La convolución discreta y[n] es {8,22,11,31,4,12}. La convolución numérica es {4,11,5.5,15.5,2,6}.
Método de las Suma por Columnas x
17/11/99
Hacemos el mismo ejemplo. No es necesario “reflejar” una de las secuencias. n
0 1 2 3 4 5
h x
2 5 0 4 4 1 3
y
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
Capítulo 2: Convolución 12
5º Curso-Tratamiento Digital de Señal
Convolución Discreta Ì
Método de la malla . h[n]
8
22
11
8
20
0
16
4
2
5
0
4
1
6
15
0
12
3
31
4
x[n]
12
y[n]={8,22,11,31,4,12}, n=0,1,2,...,5
17/11/99
Capítulo 2: Convolución 13
5º Curso-Tratamiento Digital de Señal
Convolución Discreta Ì
Propiedades sobre la duración de la convolución discreta. x
x
Ì
El índice del comienzo de la convolución es la suma de los índices de comienzo de las respectivas señales. Si las dos señales comienzan en n=n0 y n=n1, la convolución comienza en n=n0+n1. Para dos secuencias de duración M y N , su convolución se extiende durante M+N-1 muestreos.
Propiedades de la convolución discreta (x[n]*h[n]=y[n]) y[n] =
∞
∑ x[k ]h[n − k ]
k =−∞
[ Ax1 + Bx 2 ]∗ h = y1 + y2 x[n]∗ h[n − α ] = x[n − α ]∗ h[n ] = y[n − α ] x[n − α ]∗ h[n − β ] = y[n − α
17/11/99
− β]
Capítulo 2: Convolución 14
5º Curso-Tratamiento Digital de Señal
Convolución Discreta [n]∗ h[ n] = h[ n] δ [ n]∗ h[ n] = {u[ n] − u[ n − 1]}∗ h[ n] = yu [ n] − yu [ n − 1] h[n] = δ ∞
u[n]∗ x[ n] =
∑ x[ k ]
k =−∞
{x[n] − x[ n − 1]}∗ h[n] = y[ n] − y[ n − 1] Correlación discreta : Se definen de igual manera que en el caso continuo, así como la autocorrelación. Ì
Rxy [n] =
∞
∑ x[k ]y[k − n]
para n = 0,±1,±2,±3,
= −∞ k
Ryx [n] =
∞
∑ y[k ]x[k − n]
para n = 0,±1,±2,±3,
= −∞ k
17/11/99
Capítulo 2: Convolución 15
5º Curso-Tratamiento Digital de Señal
Convolución y Correlación en MATLAB Ì
MATLAB dispone de dos funciones para el cálculo de convoluciones y correlaciones. >> y = conv(x,h) Hace la convolución de los vectores x y h. El vector resultante 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. Devuelve un vector de 2M-1 elementos. >> rxx = xcorr(x) Hace la autocorrelación del vector x de M elementos. Devuelve un vector de 2M-1 elementos.
17/11/99
Capítulo 2: Convolución 16