Capítulo 5 Convolución de tiempo discreto En matemáticas y, en particular, análisis funcional, una convoución es un operador matemático que transforma dos funciones f y g en una tercera función. Lo que representa esta tercera función es simplemente la magnitud en la que se superponen f y una versión trasladada e invertida de g. El sifinificado de la convolución varía según las funciones a operar, por ejemplo: • En Ingeniería en Telecomunicaciones, si se convoluciona una señal excitatriz con la respuesta a pulso unitario de un sistema, el resultado es la respuesta del sistema a la mencionada señal excitatriz. • La convolución de tiempo discreto también es empleada para multiplicar polinomios. • La operación inversa de la convolución o «deconvolución» se emplea para dividir polinomios. En el presente capítulo se definirá la suma de convolución tanto para señales aperiódicas como para señales periódicas. También se definirán varios métodos que facilitan a los seres humanos su cálculo. 5.1 Convolución de tiempo discreto para señales infinitas A continuación se define la operación de convolución considerando secuencias de duración infinita. En este rubro no se considera si se trata de secuencias periódicas o aleatorias. 109 110 CAPÍTULO 5. CONVOLUCIÓN DE TIEMPO DISCRETO Definición 5.1 Convolución para señales de duración infinita y valuada en n = m. Sean f (n) y g(n) dos señales energía, su convolución evaluada para n = m se plantea como: • f (n) se mantiene fija. f (n) • g(n) se refleja y se retrasa en m, es decir, n cambia por − (n − m) por lo cual la función cambia como: g (n) → g (− (n − m)) • Las funciones se multiplican: punto a punto como en todo producto de funciones. f (n) g (− (n − m)) • Se calcula el área del producto f ∗ g (m) = lim N →∞ N −1 � m=−(N −1) f (n) g (− (n − m)) ∀n, m�Z (5.1) Siguiendo la definición 5.1 si se desea conocer la convolución para todo instante de tiempo se tendría que crear un registro para m tomando valores de un extremo a otro del infinito, es decir m� (−∞, ∞). Una forma de generalizar y simplificar este proceso es mediante un cambio de variable tal como se define a continuación. Definición 5.2 Convolución de señales de duración infinita y para toda n. Dadas las secuencias energía f (n) y g (n), su convolución f ∗ g (n) queda descrita por la siguiente ecuación. f ∗ g (n) = lim N →∞ 5.2 N −1 � m=−(N −1) f (m) g (− (m − n)) ; ∀n, m�Z (5.2) Convolución para señales energía de tiempo discreto A continuación se describe una formulación para secuencias de duración finita. Tales secuencias se consideran señales del tipo energía. Teorema 5.1 Convolución de dos secuencias finitas f y g. Dada la secuencia de duración finita f , de longitud Nf y cuyo dominio está en el intervalo n� [0 , Nf ]. Dada tamién dada la secuencia g, de longitud Ng y cuyo dominio está en el intervalo n� [0 , Ng ]. La convolución queda representada como f ∗ g (n) = f (n) ∗ g (n) y matemáticamente se define como: 5.3. MÉTODOS DE PARA LA CONVOLUCIÓN f ∗ g (n) = Nf � m=0 f (m) g (− (m − n)) n� [0 , Nf + Ng − 2] 111 (5.3) Teorema 5.2 El dominio de la secuencia de convolución. Dada la secuencia de duración finita f , de longitud Nf y cuyo dominio está en el intervalo n� [0 , Nf ]. Dada tamién dada la secuencia g, de longitud Ng y cuyo dominio está en el intervalo n� [0 , Ng ]. El conjunto domnio de la secuencia convoución f ∗ g (n) es: dom {f ∗ g} = [0 , Nf + Ng − 2] (5.4) Teorema 5.3 La longitud de la secuencia de convolución. Dada la secuencia de duración finita f , de longitud Nf y cuyo dominio está en el intervalo n� [0 , Nf ]. Dada tamién dada la secuencia g, de longitud Ng y cuyo dominio está en el intervalo n� [0 , Ng ]. La longitud de la secuencia de convolución f ∗ g (n) se representa como Nf ∗g y se calcula como: Nf ∗g = Nf + Ng − 1 5.3 (5.5) Métodos de para la convolución A continuación se describen varios métodos empleados para realizar la operación de convolución. El primer método, por fórmula, es el más complicado y es implementado solamente para su uso en computadoras. El método de la cinta deslizante facilita la compresión visual de la mecánica que sigue la convolución. Los métodos de multiplicación y malla son algoritmos rápidos para el uso de humanos. El método matricial es usado para el planteamiento de ecuaciones que modelan algún sistema. 5.3.1 Convolución por fórmula Para ilustrar el proceso de convolución en una forma genérica considérense las dos secuencias siguientes: f g = = [f (0) , f (1) , f (2) , f (3)] [g (0) , g (1) , g (2)] (5.6) En donde: Nf = 4 Ng = 3 (5.7) 112 CAPÍTULO 5. CONVOLUCIÓN DE TIEMPO DISCRETO f*g(0) f*g(1) f*g(2) f*g(3) f*g(4) f*g(5) = = = = = = f(0)g(0) f(0)g(1) f(0)g(2) f(0)g(3) f(0)g(4) f(0)g(5) + + + + + + f(1)g(-1) f(1)g(0) f(1)g(1) f(1)g(2) f(1)g(3) f(1)g(4) + + + + + + f(2)g(-2) f(2)g(-1) f(2)g(0) f(2)g(1) f(2)g(2) f(2)g(3) + + + + + + f(3)g(-3) f(3)g(-2) f(3)g(-1) f(3)g(0) f(3)g(1) f(3)g(2) Cuadro 5.1: Convolución para las secuencias f = [f (0) , f (1) , f (2) , f (3)] y g = [g (0) , g (1) , g (2)] . Los términos marcados en rojo no son válidos. Ahora se desarrolla en la tabla del cuadro 5.1 la suma de convolución para las secuencias dadas en la ecuación 5.6. Los productos en rojo corresponden con índices para los cuales el segundo operando de la convolución no tiene elementos definidos. Ahora bien, realizando los productos indicados se tiene que la convolución es: f ∗ g = [f ∗ g(0), f ∗ g(1), g ∗ g (2) , f ∗ g(3), f ∗ g(4), f ∗ g(5)] (5.8) donde: f f f f f f ∗ g (0) ∗ g (1) ∗ g (2) ∗ g (3) ∗ g (4) ∗ g (5) = = = = = = f (0) g (0) f (0) g (1) + f (1) g (0) f (0)g(2) + f (1)g(1) + f (2)g(0) f (1)g(2) + f (2)g(1) + f (3)g(0) f (2)g(2) + f (3)g(1) f (3)g(2) (5.9) El dominio de la secuencia de convolución se calcula siguiendo la ecuación 5.4 y resulta en: n� [0 , 5] (5.10) La longitud de la secuencia de convolución se calcula siguiendo la ecuación 5.5 y resulta en: Nf ∗g = 6 5.3.2 (5.11) El método de la cinta deslizante El método de la cinta deslizante ilustra, de manera gráfica, el proceso de convolución entre dos secuencias, en este caso, para convolucionar una secuencia f con una secuencia g: • La secuencia f se mantiene sin alteraciones. • La secuencia g se refleja y se desplaza de adelante hacia atrás. 5.3. MÉTODOS DE PARA LA CONVOLUCIÓN 113 Cuadro 5.2: Método de la cinta deslizante. Note que la secuencia f se mantiene sin cambios, en tanto que la función g se refleja y se desplaza. Debe realizarse el producto punto entre f y cada desplazameinto de la función g. • En cada desplazameinto, se realiza el producto punto. En el caso de dos secuencias finitas sólo se consideran aquellos productos punto no nulos. Ahora bien, siguiendo los pasos dados, se consideran las dos secuencias siguientes: son las mismas ecuaciones 5.6. f g = = [f (0) , f (1) , f (2) , f (3)] [g (0) , g (1) , g (2)] Entonces, por el método de la cinta deslizante se plantea una tabla como la mostrada en el cuadro 5.2. Ahora deben comparar los productos indicados en la tabla 5.2 con los productos indicados por la tabla 5.1. Entonces, la secuencia de convolución resultante en ambas tablas es la misma ecuación 5.8. Finalmente, el dominio de la secuencia de convolución se calcula siguiendo la ecuación 5.4 en tanto que la longitud de la secuencia se calcula mediante la ecuación 5.5. 5.3.3 Ejemplo de la cinta deslizante Convolucione las siguientes secuencias: f g = [2, 5, 0, 4] = [4, 1, 3] (5.12) 114 CAPÍTULO 5. CONVOLUCIÓN DE TIEMPO DISCRETO Cuadro 5.3: Convolución de las secuencias f = [2, 5, 0, 4] y g = [4, 1, 3]. La tabla de cuadro ilustra el proceso de la cinta deslizante. La longitud de la secuencia de convolución se calcula siguiendo la ecuación 5.5 y resulta en: Nf ∗g = 6 El dominio de la secuencia de convolución es se calcula a partir de la ecuación 5.4 y resulta en: n� [0, 5] La secuencia de convolución resultante es: f ∗ g = [8, 22, 11, 31, 4, 12] 5.3.4 (5.13) El método matricial Considérense las dos secuencias siguientes: son las mismas ecuaciones 5.6. f g = = [f (0) , f (1) , f (2) , f (3)] [g (0) , g (1) , g (2)] El planteamiento de la convolución por matriz quedó definido en la tabla 5.2 Ahora bien, considerando los factores no nulos y factorizando los factores de la secuencia f se logra el siguiente planteamiento: 5.3. MÉTODOS DE PARA LA CONVOLUCIÓN f f f f f f ∗ g (0) ∗ g (1) ∗ g (2) ∗ g (3) ∗ g (4) ∗ g (5) = g (0) g (1) g (2) 0 0 0 0 g (0) g (1) g (2) 0 0 0 0 g (0) g (1) g (2) 0 0 0 0 g (0) g (1) g (2) 115 f (0) f (1) f (2) f (3) (5.14) La ecuación anterior se puede expresar en forma compacta de la forma siguiente: (5.15) f ∗g =G×F El dominio de la secuencia de convolución se calcula siguiendo la ecuación 5.4 en tanto que la longitud de la secuencia se calcula mediante la ecuación 5.5. 5.3.5 Ejemplo del método matricial Convolucione las siguientes secuencias: f g = [2, 5, 0, 4] = [4, 1, 3] Plantenado las matrices se logra: f ∗ g (n) = 4 1 3 0 0 0 0 4 1 3 0 0 0 0 4 1 3 0 0 0 0 4 1 3 2 5 = 0 4 8 22 11 31 4 12 (5.16) La longitud de la secuencia de convolución se calcula siguiendo la ecuación 5.5 y resulta en: Nf ∗g = 6 El dominio de la secuencia de convolución es se calcula a partir de la ecuación 5.4 y resulta en: n� [0, 5] La secuencia de convolución f ∗ g = [8, 22, 11, 31, 4, 12] 116 CAPÍTULO 5. CONVOLUCIÓN DE TIEMPO DISCRETO f(0) f(1) f(2) f(3) g(0) g(1) g(2) Cuadro 5.4: Método de malla. Planteamiento de la malla. f(0) f(1) f(2) f(3) f(0)g(0) f(1)g(0) f(2)g(0) f(3)g(0) g(0) f(0)g(1) f(1)g(1) f(2)g(1) f(3)g(1) g(1) f(0)g(2) f(1)g(2) f(2)g(2) f(3)g(2) g(2) Cuadro 5.5: Método de malla. LLenado la malla. 5.3.6 El método de la malla Considérense las dos secuencias siguientes: son las mismas ecuaciones: 5.6. f g = = [f (0) , f (1) , f (2) , f (3)] [g (0) , g (1) , g (2)] Primero se crea una malla tal como se ilustra en el cuadro 5.4: en el renglón superior se coloca la secuencia f en tanto que en la columna más a la derecha se coloca la secuencia g. Luego la malla se llena con el producto cartesiano de las secuencia, tal como se indica en la tabla del cuadro 5.5. Finalmente, se realizan sumas en diagonal hacia abajo-izquierda, tal como se indica en el cuadro 5.6. Los totales son los términos de la secuencia de convolución. donde: Cuadro 5.6: Método de malla. Realización de la convolución. 5.3. MÉTODOS DE PARA LA CONVOLUCIÓN 117 Cuadro 5.7: Convolución por el método de malla para las secuencias f=[2,5,0,4] y g=[4,1,3]. f f f f f f ∗ g (0) ∗ g (1) ∗ g (2) ∗ g (3) ∗ g (4) ∗ g (5) = = = = = = f (0) g (0) f (0) g (1) + f (1) g (0) f (0)g(2) + f (1)g(1) + f (2)g(0) f (1)g(2) + f (2)g(1) + f (3)g(0) f (2)g(2) + f (3)g(1) f (3)g(2) El dominio de la secuencia de convolución se calcula siguiendo la ecuación 5.4 en tanto que la longitud de la secuencia se calcula mediante la ecuación 5.5. 5.3.7 Ejemplo del método de malla Convolucione las siguientes secuencias: f g = [2, 5, 0, 4] = [4, 1, 3] El proceso por método de malla queda definido como se indica en el cuadro. La longitud de la secuencia de convolución se calcula siguiendo la ecuación 5.5 y resulta en: Nf ∗g = 6 El dominio de la secuencia de convolución es se calcula a partir de la ecuación 5.4 y resulta en: n� [−2, 3] La secuencia de convolución f ∗ g = [8, 22, 11, 31, 4, 12] 5.3.8 El método del producto Considérense las dos secuencias siguientes: son las mismas ecuaciones: 5.6. 118 CAPÍTULO 5. CONVOLUCIÓN DE TIEMPO DISCRETO f(0) g(0) * f(1) g(1) f(0)g(0) f(2) g(2) f(1)g(0) + f(0)g(1) f*g(0) f(3) f(2)g(0) + f(1)g(1) f(0)g(2) f*g(1) f(3)g(0) + f*g(2) f(2)g(1) f(1)g(2) + f*g(3) f(3)g(1) f(2)g(2) f(3)g(2) f*g(4) f*g(5) Cuadro 5.8: Método del producto para las secuencias:[f(0),f(1),f(2),f(3)] y [g(0),g(1),g(2)]. 2 4 8 * + 8 5 1 20 2 + 22 0 3 0 5 6 11 4 + 16 0 15 31 + 4 0 4 12 12 Cuadro 5.9: Convolución por el método del producto para las secuencias f=[2,5,0,4] y g=[4,1,3]. f g = = [f (0) , f (1) , f (2) , f (3)] [g (0) , g (1) , g (2)] El planteamiento de la convolución por producto queda definido en la tabla 5.8. La suma, en cada columna, está limitada a la columna en particular, es decir, no se llevan acarreos. donde: f f f f f f ∗ g (0) ∗ g (1) ∗ g (2) ∗ g (3) ∗ g (4) ∗ g (5) = = = = = = f (0) g (0) f (0) g (1) + f (1) g (0) f (0)g(2) + f (1)g(1) + f (2)g(0) f (1)g(2) + f (2)g(1) + f (3)g(0) f (2)g(2) + f (3)g(1) f (3)g(2) El dominio de la secuencia de convolución se calcula siguiendo la ecuación 5.4 en tanto que la longitud de la secuencia se calcula mediante la ecuación 5.5. 5.3.9 Ejemplo del método del producto Convolucione las siguientes secuencias: f g = = [2, 5, 0, 4] [4, 1, 3] El proceso por el método del producto queda definido como se indica en el cuadro 5.9. 5.4. PROPIEDADES DE LA CONVOLUCIÓN LINEAL 119 La longitud de la secuencia de convolución se calcula siguiendo la ecuación 5.5 y resulta en: Nf ∗g = 6 El dominio de la secuencia de convolución es: n� [0, 5] La secuencia de convolución f ∗ g = [8, 22, 11, 31, 4, 12] 5.4 Propiedades de la convolución lineal Teorema 5.4 Asociatividad f (n) ∗ g (n) ∗ h (n) = = f (n) ∗ [g (n) ∗ h (n)] [f (n) ∗ g (n)] ∗ h (n) (5.17) Teorema 5.5 Distributividad: f (n) ∗ [g (n) + h (n)] = f (n) ∗ g (n) + f (n) ∗ h (n) (5.18) Teorema 5.6 Homogeneidad: [Af (n)] ∗ g (n) = A [f (n) ∗ g (n)] (5.19) f (n) ∗ [Bg (n)] = B [f (n) ∗ g (n)] (5.20) Af (n) ∗ Bg (n) = AB [f (n) ∗ g (n)] (5.21) Teorema 5.7 Identidad. El pulso unitario es el elemento identidad de la convolución. f (n) ∗ δ (n) = f (n) (5.22) 120 CAPÍTULO 5. CONVOLUCIÓN DE TIEMPO DISCRETO Teorema 5.8 Invarianza temporal. La convolución es invariante con el tiempo. Dada la convolución f (n) ∗ g (n) = h (n) se tiene que: f (n − α) ∗ g (n) = h (n − α) (5.23) f (n) ∗ g (n − β) = h (n − β) (5.24) f (n − α) ∗ g (n − β) = h (n − α − β) (5.25) Teorema 5.9 Conmutatividad: f (n) ∗ g (n) = g (n) ∗ f (n) 5.5 (5.26) Convolución discreta por software En MATLAB, la convoución tiene el formato: conv(secuencia, f iltro) conv(secuencia, f iltro, longitud) Donde: • secuencia Es una secuencia discreta • f iltro Es la respuesta a pulso unitario de un filtro • longitud La longitud puede ser f ull o same. – f ull Retorna la secuencia completa de convolucióon – same Retorna la parte central de la convolución cuya longitud es igual a la longitud de la secuencia. Nótese que a pesar de que la convolución es conmutativa, los operandos se deben suministrar en un orden en particular a la función conv. Por ejemplo Por ejemplo > > > f = [2, 5, 0, 4] g = [4, 1, 3] conv (f, g) > [8, 22, 11, 31, 4, 12] 5.6. CONVOLUCIÓN CIRCULAR 121 > f = [2, 5, 0, 4] > g = [4, 1, 3] > conv (f, g,� f ull� ) > [8, 22, 11, 31, 4, 12] Por ejemplo > f = [2, 5, 0, 4] > g = [4, 1, 3] > conv (f, g,� same� ) > [22, 11, 31, 4] 5.6 Convolución circular Dada la secuencia periódica f (n) de longitud N a convolucionar con otra secuencia periódica g (n) también de longitud N , el proceso de convolución exige N × N productos e igual cantidad de sumas. Empleando una operación conocida como FFT1 para calcular la convolución se logra reducir este número a un múltiplo de N log2 N . Dado que la FFT es una operación que se aplica a señales periódicas, es lógico pensar que los operandos de la convolución por FFT también son periódicos. A consecuencia, a la convolución lograda por FFT se le concoe como «convolución cíclica» no obstante que se ha preferido usar el nombre de «convolución circular». La convolución circular es un proceso parecido a la convolución que se ha revisado en secciones pasadas. Hay algunas diferencias fundamentales a considerar: • La convolución circular opera sobre secuencias periódicas. • Ambas secuencias a convolucionar tienen la misma longitud. • La longitud de una secuencia periódica se refiere a la longitud de un periodo. • El origen de ambas secuencias a convolucionar es forzosamente el primer elemento listado. 5.6.1 Secuencia periódica Sea la secuencia periódica f con longitud N = 3 tal como se ilustra a continuación (note que en la ecuación hay un origen definido) 1 FFT es la abreviación de «Fast Fourier Transform» y es un algoritmo para calcular en forma rápida la «Transforma Discreta de Fourier». 122 CAPÍTULO 5. CONVOLUCIÓN DE TIEMPO DISCRETO � f = . . . , f (0) , f (1) , f (2) , f (0), f (1) , f (2) , . . . ↑ � (5.27) Esta secuencia también puede escribir con índices no periódicos de la forma siguiente � f = . . . , f (−3) , f (−2) , f (−1) , f (0), f (1) , f (2) , . . . ↑ � (5.28) Ambas formas, la periódica y la no periódica se consideran equivalentes y serán usadas para demostrar la convolución circular. 5.6.2 Sobre el origen de la secuencia periódica Definición 5.3 El origen de una secuencia periódica. El origen de una secuencia periódica será el primer elemento listado en la secuencia. 5.6.3 Desplazamiento hacia adelante de una secuencia periódica Teorema 5.10 Desplazamiento hacia adelante de una secuencia periódica. Un dezplazamiento hacia adelante implica un corrimiento hacia la izquierda de los elementoos de la secuencia. En este caso, el elemento más a la izquierda sale por izquierda e ingresa por la derecha, es decir. 5.6.4 x (n) = [x (0) , x (1) , x (2)] x (n + 1) = [x (1) , x (2) , x (0)] (5.29) Desplazamiento hacia atrás de una secuencia periódica Teorema 5.11 Desplazamiento hacia atrás de una secuencia periódica. Cuando una secuencia periódica se atrasa un paso, el elemento más a la derecha sale por derecha e ingresa por la izquierda, es decir. x (n) = [x (0) , x (1) , x (2)] x (n − 1) = [x (2) , x (0) , x (1)] (5.30) 5.6. CONVOLUCIÓN CIRCULAR 5.6.5 123 Definición de la convolución circular Teorema 5.12 Convolución circular de dos secuencias periodicas f (n) y g (n). Dada la secuencia periódica f (n) de longitud N y dada la secuencia g (n) también periódica y de longitud N . La convolución queda representada como f � g (n) = f (n) � g (n) y matemáticamente, la convolución circular se define como: f � g (n) = N −1 � m=0 f (m) g (− (m − n)) ; ∀n� [0, N − 1] (5.31) Para ejemplificar el comportamiento periódico de la fórmula, ésta se desarrollará considerando las secuencias periódicas siguientes: f = [f (0) , f (1) , f (2)] g = [g (0) , g (1) , g (2)] (5.32) Desarrollando la fórmula de la convolución circular: f � g (0) = f (0) g (0) + f (1) g (−1) + f (2) g (−2) f � g (1) = f (0) g (1) + f (1) g (0) + f (2) g (−1) f � g (2) = f (0) g (2) + f (1) g (1) + f (2) g (0) (5.33) Puede notarse que algunos de los índices en las fórmulas de convolución circular son negativos. Se puede aprovechar la periodicidad de las series de tal forma que: g (−1) g (−2) g (−3) = = = g (2) g (1) g (0) (5.34) Entonces las ecuaciones de la convolución circular se escriben como: 5.6.6 f � g (0) = f (0) g (0) + f (1) g (2) + f (2) g (1) f � g (1) = f (0) g (1) + f (1) g (0) + f (2) g (2) f � g (2) = f (0) g (2) + f (1) g (1) + f (2) g (0) (5.35) Propiedad de longitud de la convolución circular Definición 5.4 Longitud de la secuencia de convolución circuilar. Dadas dos secuencias f (n) y g (n) de longitud N , la convolución circular de ambas funciones es otra función f � g (n) de longitud N . 124 CAPÍTULO 5. CONVOLUCIÓN DE TIEMPO DISCRETO Figura 5.1: (a)Representación del operando f . (b) Acomodo de los dos operandos f y g para la convolución circular. 5.7 Métodos para la convolución circular 5.7.1 Ejemplo Convolucione circularmente las secuencias periódicas f = [2, 5, 0, 4] g = [4, 1, 3, 0] (5.36) La correlación circular de las secuencias se plantea resolviendo la fórmula 5.31. Entonces queda el desarrollo planteado en la ecuación 5.35. Susituyendo números resulta en: f f f f 5.7.2 � g (0) � g (1) � g (2) � g (3) = = = = 2×4 2×1 2×3 2×0 + + + + 5×0 5×4 5×1 5×3 + + + + 0×3 0×0 0×4 0×1 + + + + 4×1 4×3 4×0 4×4 = = = = 12 34 11 31 (5.37) Método de los círculos concéntricos Sea la secuencia f = [f (0) , f (1) , f (2)] el primer operando de una convolución circular. Éste operando puede representarse con puntos equidistantes sobre un círculo. Los puntos se numeran en el sentido de las manecillas del reloj tal como ilustra la figura 5.1.a. Preste atención en donde se coloca el primer elemento de la secuencia. Sea la secuencia g = [g (0) , g (1) , g (2)] el segundo operando de una convolución circular. Este operando se representa con puntos equidistantes sobre un círculo inscrito en el círculo del operando f . Los puntos se numeran en sentido contrario al de las manecillas del reloj y haciendo coincidir el origen de la secuencia g con el origen de la secuencia f . La figura 5.1.b ilustra tal acomodo. 5.7. MÉTODOS PARA LA CONVOLUCIÓN CIRCULAR 125 Figura 5.2: Proceso de convolución circular para las secuencias f [f (0) , f (1) , f (2)] y g = [g (0) , g (1) , g (2)] . = Ya dispuestos los círculos, se realiza el siguiente algoritmo: • Se realiza el producto punto de los vectores tal como indican los círculos concéntricos. • El círculo interior se gira un paso en sentido de las manecillas del reloj. • Se repiten los pasos hasta que el círculo interior ha realizado un vuelta completa. La figura 5.2 ilustra el proceso de convolución circular para las secuencias dadas. 126 CAPÍTULO 5. CONVOLUCIÓN DE TIEMPO DISCRETO Figura 5.3: Aplicación del método de los círculos conćentricos. 5.7.3 Ejemplo del método de los círculos concéntricos Realice la convolución de las secuencias: f = [2, 5, 0, 4] g = [4, 1, 3, 0] La figura 5.3 ilustra cómo se realiza la convolución circular de la secuencias. Finalmente, la secuencia de convolución es: f � g = [12, 34, 11, 31] 5.7.4 (5.38) Método matricial Sean las secuencias periódicas siguientes: f = [2, 5, 0, 4] g = [4, 1, 3, 0] En una sección pasada se desarrolló la fórmula de la convolución circular para m� [0, 1, 2] resultando: 5.7. MÉTODOS PARA LA CONVOLUCIÓN CIRCULAR f � g (0) = f (0) g (0) + f (1) g (2) + f (2) g (1) f � g (1) = f (0) g (1) + f (1) g (0) + f (2) g (2) f � g (2) = f (0) g (2) + f (1) g (1) + f (2) g (0) 127 Ahora las fórmulas se expresan en forma matricial de la forma siguiente: f � g (0) g (0) f � g (1) = g (1) f � g (2) g (2) g (1) f (0) g (2) f (1) g (0) f (2) g (2) g (0) g (1) Simplificando la fórmula se tiene que: (5.39) (5.40) [f � g] = GF En donde: g (0) G = g (1) g (2) g (1) g (2) g (0) g (2) g (0) g (1) (5.41) f (0) F = f (1) f (2) (5.42) Obsérvense las columnas de la matriz G y nótese que los elementos de la secuencia g (n) se acomodan por columnas que se rotan hacia abajo. 5.7.5 Ejemplo Realice la convolución de las secuencias: f = [2, 5, 0, 4] g = [4, 1, 3, 0] Planteando la matriz de convolución se tiene que: f f f f � g (0) 4 1 � g (1) = � g (2) 3 � g (3) 0 0 4 1 3 3 0 4 1 Finalmente, la secuencia de convolución es: 1 12 34 3 0 11 4 31 f � g = [12, 34, 11, 31] 128 CAPÍTULO 5. CONVOLUCIÓN DE TIEMPO DISCRETO 5.7.6 Teorema de aproximación de la convolución lineal con la convolución circular Teorema 5.10. Cálculo de la convolución lineal con la convolución circular. Dada la secuencia no periódica f (n), de longitud Nf a convolucionar con la secuencia no periódica f (n) de longitud Ng . Para calcular la convolución lineal a partir de la convolución circular se agregan ceros a las dos secuencias de tal forma que la longitud de cada una sea Nf + Ng + 1. 5.7.7 Ejemplo Calcule la convolución lineal de las siguientes dos secuencias empleando la convolución circular. f = [2, 5, 0, 4] g = [4, 1, 3] Primero se calculan las longitudes Nf = 4 Ng = 3 Entonces, la longitud de la secuencia convolucionada es: Nf �g = = = Nf + Ng − 1 4+3−1 6 Luego a las secuencias a convolucionar se les agregan ceros para completar cada una con 6 elementos: f� = [f, 0, 0] g� = [g, 0, 0, 0] Finalmente, la convolución circular 4 0 0 0 1 4 0 0 3 1 4 0 f � � g� = 0 3 1 4 0 0 3 1 0 0 0 3 = [2, 5, 0, 4, 0, 0] (5.43) [4, 1, 3, 0, 0, 0] se calcula como: 3 1 2 0 3 5 0 0 0 = 0 0 4 4 0 0 1 4 0 8 22 11 31 4 12 (5.44) Para conocer el origen de la secuencia, se recurre a las estrategias empleadas para la convolución lineal. 5.8. PROPIEDADES DE LA CONVOLUCIÓN CIRCULAR 5.8 129 Propiedades de la convolución circular Teorema 5.13 Asociatividad f (n) � g (n) � h (n) = = f (n) � [g (n) � h (n)] [f (n) � g (n)] � h (n) (5.45) Teorema 5.14 Distributividad f (n) � [g (n) + h (n)] = f (n) � g (n) + f (n) � h (n) (5.46) Teorema 5.15 Homogeneidad Af (n) � g (n) = A [f (n) � g (n)] (5.47) f (n) � Bg (n) = B [f (n) � g (n)] (5.48) Af (n) � Bg (n) = AB [f (n) � g (n)] (5.49) Teorema 5.16 Identidad. El pulso unitario es el elemento identidad de la convolución. Matemáticamente se puede escribir: f (n) � δ (n) = f (n) (5.50) Teorema 5.17 Invarianza temporal Dada la comvolución f (n) � g (n) = h (n) se tiene que: f (n − α) � g (n) = h (n − α) (5.51) f (n) � g (n − β) = h (n − β) (5.52) f (n − α) � g (n − β) = h (n − α − β) (5.53) Teorema 5.18 Conmutatividad f (n) � g (n) = g (n) � f (n) (5.54) 130 CAPÍTULO 5. CONVOLUCIÓN DE TIEMPO DISCRETO 5.9 Convolución lineal 2D en tiempo discreto La convolución 2D se suele aplicar en imágenes: • Obtenidas con sensores ópticos en el rango visible. • Obtenidas son sensores ópticos en rangos no visibles como el infrarrojo, el ultravioleta, rayos gamma, rayos X, etc. • Obtenidas por radar. El proceso de convolución 2D en el dominio del tiempo discreto es ya demasiado complejo como para ilustrar en un texto el desarrollo de las fórmulas. A consecuencia, suelen usarse algoritmos especiales como el método deslizante y el método de la convolución circular. 5.9.1 Convolución 2D Dadas las matrices f (m, n) y g (m, n) no periódicas e infinitas, mismas que se ilustran a continuación: f (m, n) = g (m, n) = ... ... ... ... ... ... f (0, −1) f (1, −1) f (2, −1) ... ... f (0, 0) f (1, 0) f (2, 0) ... ... f (0, 1) f (1, 1) f (2, 1) ... ... ... f (0, 2) . . . f (1, 2) . . . f (2, 2) . . . ... ... (5.55) ... ... ... ... ... ... g (0, −1) g (1, −1) g (2, −1) ... ... g (0, 0) g (1, 0) g (2, 0) ... ... g (0, 1) g (1, 1) g (2, 1) ... ... ... g (0, 2) . . . g (1, 2) . . . g (2, 2) . . . ... ... (5.56) La convolución entre ambas secuencias es: f ∗ g (m, n) = 5.9.2 ∞ � ∞ � r=−∞ c=−∞ f (r, c) g (m − r, n − c) (5.57) Convolución 2D para matrices finitas Se considera en este caso que las matrices de datos a convolucionar tienen su origen en el elemento superior izquierdo, es decir, el elemento [0, 0]. Dadas las matrices f (m, n) y g (m, n) finitas, mismas que se ilustran a continuación: 5.9. CONVOLUCIÓN LINEAL 2D EN TIEMPO DISCRETO f (m, n) = g (m, n) = f (0, 0) f (1, 0) f (2, 0) ... f (Mf , 0) f (0, 1) f (1, 1) f (2, 1) ... f (Mf , 1) f (0, 2) f (1, 2) f (2, 2) ... f (Mf , 2) ... ... ... ... ... f (0, Nf ) f (1, Nf ) f (2, Nf ) ... f (Mf , Nf ) g (0, 0) g (1, 0) g (2, 0) ... g (Mg , 0) g (0, 1) g (1, 1) g (2, 1) ... g (Mg , 1) g (0, 2) g (1, 2) g (2, 2) ... g (Mg , 2) ... ... ... ... ... g (0, Ng ) g (1, Ng ) g (2, Ng ) ... g (Mg , Ng ) y cuyas dimensiones son: size (f ) = (Mf , Nf ) size (g) = (Mg , Ng ) 131 (5.58) (5.59) (5.60) La convolución lineal 2D se puede escribir como sigue: f ∗ g (m, n) = �Mf −1 �Nf −1 r=0 c=0 f (r, c) g (m − r, n − c) (5.61) m� [0, Mf + Mg − 2] ∧ n� [0, Nf + Ng − 2] 5.9.3 Las dimensiones de la matriz de convolución Teorema 5.19 Dimensiones de la matriz de convolución. Dadas las matrices f (m, n) y g (m, n) finitas y cuyas dimensiones son: size (f ) = (Mf , Nf ) size (g) = (Mg , Ng ) Las dimensiones de la matriz de convolución son: size (f ∗ g) = [Mf + Mg − 1, Nf + Ng − 1] 5.9.4 (5.62) Reflexión de una matriz Para reflejar una matriz se realizan dos pasos. El orden de los pasos no importa. • Se reflejan las columnas de la matriz. • Se reflejan los renglones de la matriz. 132 CAPÍTULO 5. CONVOLUCIÓN DE TIEMPO DISCRETO Cuadro 5.10: Proceso de convolución entre dos matrices. f(m,n) se mantiene en tanto que g(m,n) se refleja y desplaza en pasos. A cada paso, se multiplican punto a punto las matrices. A modo de ejemplo, considera la siguiente matriz g (0, 0) g (0, 1) g (0, 2) g (m, n) = g (1, 0) g (1, 1) g (1, 2) g (2, 0) g (2, 1) g (2, 2) Primero se reflejan las columnas g (2, 0) g (2, 1) g (1, 2) g (1, 1) g (0, 2) g (0, 1) Segund, se reflejan los renglones g (2, 2) g R (m, n) = g (1, 2) g (0, 2) 5.9.5 g (2, 2) g (1, 2) g (0, 2) g (2, 1) g (1, 1) g (0, 1) g (2, 0) g (1, 0) g (0, 0) (5.63) (5.64) (5.65) Algoritmo deslizante para la convolución lineal 2D El algoritmo es simple: • La matriz f (m, n) se mantiene sin cambios. • La matriz g (m, n) se refleja y se desplaza en pasos de adelante hacia atrás tanto en renglones como en columnas. 5.10. CONVOLUCIÓN CIRCULAR 2D 133 • Las matrices se multiplican punto a punto (se omiten aquellos productos donde las matrices no están definidas). • Este algoritmo se repite para cada paso que se desplaza la matriz g (m, n). Este algoritmo queda ilustrado en el cuadro 5.10. 5.9.6 Ejemplo Sean las dos matrices siguientes, las cuales 1 1 f (m, n) = 1 1 1 1 1 2 g (m, n) = 2 4 1 2 Las dimensiones de las matrices son: deben convolucionarse 1 1 1 1 2 1 size (f ) = (Mf , Nf ) = (3, 3) size (g) = (Mg , Ng ) = (3, 3) (5.66) (5.67) (5.68) Eso quiere decir que la matriz de convolución tiene dimensiones de: size (f ∗ g) = (Mf + Mg − 1 , Nf + Ng − 1) = (5, 5) (5.69) El cuadro ilustra el proceso de completo de convolución. Así entonces, resulta la siguiente matriz: Las dimensiones de la matriz de convolución son: 1 3 4 3 1 3 9 12 9 3 (5.70) f ∗ g (m, n) = 4 12 16 12 4 3 9 12 9 3 1 3 4 3 1 5.10 Convolución circular 2D 5.10.1 Método matricial para la convolución circular 2D. Se considera que las siguientes matrices deben convolucionarse circularmente f (0, 0) f (0, 1) f (0, 2) f (m, n) = f (1, 0) f (1, 1) f (1, 2) f (2, 0) f (2, 1) f (2, 2) 134 CAPÍTULO 5. CONVOLUCIÓN DE TIEMPO DISCRETO Cuadro 5.11: Convolución 2D por el método deslizante. 5.10. CONVOLUCIÓN CIRCULAR 2D 135 Cuadro 5.12: Proceso de convolución circular 2D. g (0, 0) g (m, n) = g (1, 0) g (2, 0) g (0, 1) g (1, 1) g (2, 1) g (0, 2) g (1, 2) g (2, 2) El proceso de convolución 2D circular f (m, n) � �g (m, n), por el método matricial se ilustra en el cuadro 5.12. 136 CAPÍTULO 5. CONVOLUCIÓN DE TIEMPO DISCRETO