Convolución
|
| |
| Series | Geophysical References Series |
|---|---|
| Title | Digital Imaging and Deconvolution: The ABCs of Seismic Exploration and Processing |
| Author | Enders A. Robinson and Sven Treitel |
| Chapter | 5 |
| DOI | http://dx.doi.org/10.1190/1.9781560801610 |
| ISBN | ISBN 9781560801481 |
| Store | SEG Online Store |
¿Qué es la transformada "Z"? El polinomio de orden "N" en "Z" dado por
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} B\left(Z\right)=b_0+b_{1}Z+b_2Z^2+b_3Z^3+\ldots+b_NZ^N \end{align} ()
es la transformada Z de la función de respuesta al impulso causal de longitud finita Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): b_0,b_{1}, b_2,b_{N} . De manera similar, la transformada Z de una función de respuesta al impulso causal de longitud infinita Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): b\; = \;\{ b_0 ,\;b_1 ,\;b_2 ,\; \ldots \} es la serie de potencias en Z dada por
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} B\left(Z\right)=b_0+b_{1}Z+b_2Z^2+ . .. . \end{align} ()
¿Qué es la convolución? Consideremos la acción del filtro FIR causal de orden N sobre una entrada dada por los valores muestreados igualmente espaciados Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): x_0,x_{1}, x_2, . . . , x_M . Los números Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): x_n entran en el filtro; es decir, la entrada es la siguiente: Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): x_{-1} entra en el tiempo Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): n=-1, x_0 entra en el tiempo Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): n=0,x_{1} entra en el tiempo Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): n=1, x_2 entra en el tiempo n = 2, y así sucesivamente.
Del filtro salen los números Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): y_n , es decir, la salida es la siguiente: $ y-1 $ emerge en el tiempo n = –1, Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): y_0 emerge en el tiempo Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): n=0,y_{1} emerge en el tiempo Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): n=1, y_2 emerge en el tiempo n = 2, y así sucesivamente.
Se ve que la salida es
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} y_n=b_0x_n+b_{1}x_{n-1}\ +b_2x_{n-2}+\\dots +b_Nx_{n-N}. \end{align} ()
Esta expresión es la representación discreta de la operación lineal conocida comúnmente como "convolución". En la literatura, a menudo se ve esta operación representada por una integral en lugar de por una suma discreta. Esto se debe a que los filtros analógicos operan en tiempo continuo, lo que requiere una representación integral de la operación de convolución. Como aquí estamos tratando con datos de tiempo discreto, debemos representar el proceso de convolución por una suma. Por lo tanto, la salida del filtro FIR causal de orden "N" se puede obtener por la convolución discreta de la entrada $ x_{0},x_{1},x_{2},\ldots ,x_{\rm {M}} $, con los coeficientes de respuesta al impulso del filtro Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): b_0,b_{1}, b_2,\ldots, b_{N} . Una notación más compacta para la convolución es
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} y_n=\sum^N_{i=0}{b_j}x_{n-i}, \end{align} ()
donde se entiende que Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): y_n=0 cuando n cae fuera del rango Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): n=0, 1 , 2,\ldots, M+N . Esquemáticamente, tenemos el diagrama de bloques que se muestra en la Figura 11a. Siempre que ilustramos una relación de entrada-salida de este tipo, queremos decir lo siguiente: La salida y es igual a la convolución de la entrada x con la función impulso-respuesta b.
¿Cuál es la función de respuesta al impulso de dos filtros en cascada? Cuando dos filtros están en cascada, o conectados en tándem, tenemos la situación que se muestra en la Figura 11b. La salida del primer filtro es a * x, que es la entrada del segundo filtro. Por lo tanto, la salida del segundo filtro es Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): y=b*\left(a*x\right) . Por lo tanto, los dos filtros se pueden reemplazar por un filtro, cuya función de respuesta al impulso h es la convolución de las funciones de respuesta al impulso a y b de los dos filtros; es decir, Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): h=b*a . Por lo tanto, el diagrama de bloques es equivalente al que se muestra en la Figura 11c.
¿Cómo se lleva a cabo la convolución? Describamos ahora el proceso de convolución. La convolución de las dos señales Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): a=\left\{a_0,\ a_{1},\ a_2{,\ .\ .\ .}\right\} y Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): b=\left\{b_0,\ b_{1},\ b_2{,\ .\ .\ .}\right\} se obtiene manteniendo fija una señal y deslizando el reverso de la otra señal junto a ella. En cada posición, se toma la suma de los productos. La totalidad de estas sumas da una tercera señal que es la convolución de las dos señales dadas. Por ejemplo, mantengamos a fija y deslicemos b. Obtenemos el primer valor
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} \left\{a_0,\ a_{1},\ a_2,\ \cdots \right\} \\ b=\left\{,\ \ b_2,\ b_{1},\ b_0\right\}. \\ a_0b_0 \end{align} ()

Obtenemos el segundo valor
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align}\{ a_0 ,\;a_1 ,\;a_2 ,\;...\} \\ b=\left\{,\ \ b_2,\ \ b_{1},\ \ b_0\right\}. \\ a_0b_{1}+a_{1}b_0\end{align} ()
Obtenemos el tercer valor
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align}\left\{a_0,\ a_{1},\ a_2,\ \cdots \right\} \\ \left\{\dots,\ \ b_2,\ b_{1},\ b_0\right\}. \\ a_0b_2+a_{1}b_{1}+a_2b_0\end{align} ()
La convolución completa es entonces
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} c=a*b=\left\{c_0,\ \ c_{1},\ \ c_2,\ \ \cdots \right\}\mathrm{where} c_n=\sum^{\infty }_{k=0}{a_k}b_{n-k}. \end{align} ()
(Nota: El asterisco * utilizado de esta manera, es decir, como una operación binaria entre dos funciones de tiempo, denota convolución).
La ecuación de suma anterior para la convolución (pero con el límite inferior de la suma ahora siendo Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): -\infty) es válida para el caso en el que las señales no son causales. También es válida para señales de valor complejo. (Tenga en cuenta que cuando se convolucionan dos señales complejas, nunca se toma el conjugado complejo de una u otra señal. Por el contrario, cuando se correlacionan dos señales complejas, se debe tomar el conjugado complejo de una u otra señal).
Para ilustrar el uso de esta fórmula de convolución, supongamos que Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): a=\left\{a_0,\ a_{1}\right\}=\{2, 1\} y Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): b= \left\{b_0,\ b_{1}\right\}=\{{3}, 4\} . Cada una de estas wavelets tiene dos coeficientes (es decir, tiene una longitud de 2).
Vemos que la convolución es
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} c=a*b=\left\{c_0,\ \ c_{1},\ \ c_2\right\} , \end{align} ()
dónde
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} c_0=a_0b_0=2\left({3}\right)=6, \end{align} ()
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} c_{1}=a_0b_{1}+a_{1}b_0=2\left({4}\right)+1\left({3}\right)=11, \end{align} ()
y
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} c_2=a_{1}b_{1}=l\left({4}\right)=4. \end{align} ()
Por eso,
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} c=a*b=\{{6,} 11 , 4\}. \end{align} ()
Podemos demostrar que la convolución es una operación de plegado. De hecho, la palabra alemana para convolución es "faltung", que significa plegado. Para ver cómo se puede realizar la convolución mediante plegado, construyamos la ecuación siguiente (ecuación 19), cuyas entradas son los productos de las wavelets "a" y "b" (que están en los márgenes):
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} \begin{array}{*{20}c} \begin{array}{l} \\ \left. \begin{array}{l} a_0 \\ a_1 \\ \end{array} \right| \\ \end{array} & \begin{array}{l} \underline {b_0 \;\;\;\;\;\;\;\;b_{1\;\;\;\;\;\;\;} } \\ a_0 \;b_0 \;\;\;\;a_0 \;b_1 \\ a_1 \;b_0 \;\;\;\;\;a_1 \;b_1 \; \\ \end{array} \\ \end{array}\;{\rm or}\;\;\begin{array}{*{20}c} \begin{array}{l} \\ \left. \begin{array}{l} 2 \\ 1 \\ \end{array} \right| \\ \end{array} & \begin{array}{l} \underline {3\;\;\;\;\;\;\;\;\;4\;} \\ 6\;\;\;\;\;\;\;\;\;8 \\ 3\;\;\;\;\;\;\;\;\;4 \\ \end{array} \\ \end{array}. \end{align} ()
Así, tenemos la siguiente tabla de entradas (sin los márgenes), que vamos a plegar sucesivamente por las diagonales suroeste-noreste:
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} \begin{array}{l} a_0 \;b_0 \;\;\;a_0 \;b_1 \;\;{\rm or}\;\;\;6\;\;\;3 \\ a_1 \;b_0 \;\;\;a_1 \;b_1 \;\;\;\;\;\;\;\;3\;\;\;4. \\ \end{array} \end{align} ()
El elemento en la esquina superior izquierda, es decir, Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): a_0b_0 , o 6, es Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): c_0 . Ahora doble esta entrada, obteniendo así
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} \begin{array}{l} \;\;\;\;\;\;\;\;\;a_0 \;b_1 \;\;\;\;{\rm or}\;\;\;\;\;\;\;\;\;8 \\ a_1 \;b_0 \;\;\;a_1 \;b_1 \;\;\;\;\;\;\;\;\;\;3\;\;\;4. \\ \end{array}\end{align} ()
La suma de las dos entradas del siguiente pliegue es
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} a_{1}b_0+a_0b_{1}\ or\ {3}+8={11}, \end{align} ()
que es Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): c_{1} . Ahora doblamos nuevamente, obteniendo así la entrada inferior derecha Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): c_{1}=a_{1}b_{1}=4 . El resultado final es la convolución dada por
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} \left\{c_0,\ \ c_{1},\ \ c_2\right\}=\left\{a_0b_0,\ \ a_0b_{1}+a_{1}b_0,\ \ a_{1}b_{1}\right\}=\left\{{6,11,4}\right\}. \end{align} ()
Hemos definido la convolución de dos señales de longitud finita. Sin embargo, no hay ninguna razón por la que esta definición no pueda extenderse a la convolución de una serie temporal arbitraria con un wavelet. Sea el wavelet
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} h=\left\{h_0,\ h_{1},\ h_2,\ \cdots \right\} \end{align} ()
y sea la serie temporal arbitraria
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} x=\left\{\dots,\ \ x_{-2},\ x_{-1},x_0,\ x_{1},\ x_2,\ \cdots \right\} , \end{align} ()
que podemos considerar como infinitamente largos tanto en dirección positiva como negativa. Su convolución es la serie temporal
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} y=\left\{,\ \ y_{-2},\ y_{-1},y_0,\ y_{1},\ y_2,\ \cdots \right\} , \end{align} ()
donde "y" viene dado por la fórmula
$ {\begin{aligned}y_{n}=\sum _{k=0}^{\infty }{h_{k}}x_{n-k}.\end{aligned}} $ ()
Como es el caso de la serie temporal "x", la serie temporal "y" también es infinitamente larga en ambas direcciones.
Demostremos que la convolución es una multiplicación de polinomios. La convolución también puede realizarse mediante la multiplicación de polinomios. Por lo tanto, escribimos las transformadas "Z"
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} A\left(Z\right)=a_0+a_{1}Z,\ B\left(Z\right)=b_0+b_{1}Z \end{align} ()
o
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} A\left(Z\right)=2+Z, B\left(Z\right)=3+4 Z. \end{align} ()
Estos polinomios se escriben en términos de la variable Z. Multiplicando el polinomio A(Z) por el polinomio B(Z), obtenemos
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{array}{l} 3 + 4\;Z \\ \frac{{2 + Z}} {{6 + 8Z}} \;\;\;\;\;\;\;\;\;\;\ .\\ \frac{{3Z + 4Z^2 }}{{6 + 11Z + 4Z^2 }} \\ \end{array} ()
El polinomio resultante tiene coeficientes que son iguales a la convolución deseada. Por lo tanto, la multiplicación de polinomios corresponde a la convolución de sus coeficientes.
A continuación, demostraremos que la convolución es conmutativa, asociativa y distributiva. La convolución es conmutativa (es decir, las convoluciones se pueden tomar en cualquier orden) porque los productos polinómicos se pueden tomar en cualquier orden. Por ejemplo, a * b = b * a porque
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} A\left(Z\right)B\left(Z\right)=B\left(Z\right)A\left(Z\right) . \end{align} ()
Por el mismo razonamiento, vemos que la convolución es asociativa; es decir,
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} \left(a*b\right)*c=a*\left(b*c\right) , \end{align} ()
y la convolución es distributiva con respecto a la adición; es decir,
Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): \begin{align} a*\left(b+c\right)=\left(a*b\right)+\left(a*c\right) . \end{align} ()
Sigue leyendo
| Sección previa | Siguiente sección |
|---|---|
| Filtros digitales | Filtro de retroalimentación |
| Capítulo previo | Siguiente capítulo |
| Muestreo | Frecuencia |
También en este capítulo
- Filtros digitales
- Filtro de retroalimentación
- Filtros inversos
- Mínimo retardo
- Apéndice E: Ejercicios