Articulo de referencia

convolución discreta multidimensional

En el procesamiento de señales, la convolución discreta multidimensional se refiere a la operación matemática entre dos funciones f y g en una red n -dimensional que produce una...

En el procesamiento de señales, la convolución discreta multidimensional se refiere a la operación matemática entre dos funciones f y g en una red n -dimensional que produce una tercera función, también de n dimensiones. La convolución discreta multidimensional es el análogo discreto de la convolución multidimensional de funciones en el espacio euclidiano . También es un caso especial de convolución en grupos cuando el grupo es el grupo de n -tuplas de enteros.

Definición

Planteamiento del problema y conceptos básicos

De forma similar al caso unidimensional, se utiliza un asterisco para representar la operación de convolución. El número de dimensiones de la operación se refleja en el número de asteriscos. Por ejemplo, una convolución de M dimensiones se escribiría con M asteriscos. A continuación se muestra una convolución de M dimensiones de señales discretas:

y(norte1,norte2,...,norteMETRO)=incógnita(norte1,norte2,...,norteMETRO)METROh(norte1,norte2,...,norteMETRO){\displaystyle y(n_{1},n_{2},...,n_{M})=x(n_{1},n_{2},...,n_{M})*{\overset {M}{\cdots }}*h(n_{1},n_{2},...,n_{M})}

Para señales de valor discreto, esta convolución se puede calcular directamente mediante lo siguiente:

k1=k2=...kMETRO=h(k1,k2,...,kMETRO)incógnita(norte1k1,norte2k2,...,norteMETROkMETRO){\displaystyle \sum _{k_{1}=-\infty }^{\infty }\sum _{k_{2}=-\infty }^{\infty }...\sum _{k_{M}=-\infty }^{\infty }h(k_{1},k_{2},...,k_{M})x(n_{1}-k_{1},n_{2}-k_{2},...,n_{M}-k_{M})}

La región de soporte resultante de una convolución multidimensional discreta se determinará en función del tamaño y las regiones de soporte de las dos señales de entrada.

Visualización de la convolución entre dos señales bidimensionales simples.

Se enumeran varias propiedades del operador de convolución bidimensional. Tenga en cuenta que estas también se pueden extender para señales denorte{\displaystyle N}-dimensiones.

Propiedad conmutativa:

incógnitah=hincógnita{\displaystyle x**h=h**x}

Propiedad asociada:

(incógnitah)gramo=incógnita(hgramo){\displaystyle (x**h)**g=x**(h**g)}

Propiedad distributiva:

incógnita(h+gramo)=(incógnitah)+(incógnitagramo){\displaystyle x**(h+g)=(x**h)+(x**g)}

Estas propiedades se ven en uso en la figura siguiente. Dado algún dato de entradaincógnita(norte1,norte2){\displaystyle x(n_{1},n_{2})}que entra en un filtro con respuesta impulsionalh(norte1,norte2){\displaystyle h(n_{1},n_{2})}y luego otro filtro con respuesta impulsionalgramo(norte1,norte2){\displaystyle g(n_{1},n_{2})}, la salida viene dada pory(norte1,norte2){\displaystyle y(n_{1},n_{2})}Supongamos que la salida del primer filtro viene dada porw(norte1,norte2){\ Displaystyle w (n_ {1}, n_ {2})}, esto significa que:

w=incógnitah{\displaystyle w=x**h}

Además, esa función intermedia se convoluciona con la respuesta impulsional del segundo filtro, y así la salida se puede representar mediante:

y=wgramo=(incógnitah)gramo{\displaystyle y=w**g=(x**h)**g}

Utilizando la propiedad asociativa, esto se puede reescribir de la siguiente manera:

y=incógnita(hgramo){\displaystyle y=x**(h**g)}

lo que significa que la respuesta impulsional equivalente para un sistema en cascada viene dada por:

hmiq=hgramo{\displaystyle h_{eq}=h**g}

Ambas figuras representan sistemas en cascada. Cabe destacar que el orden de los filtros no afecta al resultado.

Se puede realizar un análisis similar en un conjunto de sistemas paralelos, como se ilustra a continuación.

Un sistema con un conjunto de filtros paralelos.

En este caso, está claro que:

y=(incógnitah)+(incógnitagramo){\displaystyle y=(x**h)+(x**g)}

Utilizando la ley distributiva, se demuestra que:

y=incógnita(h+gramo){\displaystyle y=x**(h+g)}

Esto significa que, en el caso de un sistema en paralelo, la respuesta impulsional equivalente viene dada por:

hmiq=h+gramo{\displaystyle h_{eq}=h+g}

Las respuestas impulsionales equivalentes tanto en sistemas en cascada como en sistemas en paralelo pueden generalizarse a sistemas connorte{\displaystyle N}-número de filtros. [ 1 ]

Motivación y aplicaciones

La convolución unidimensional fue un descubrimiento fundamental que permitió comparar fácilmente la entrada y la salida de un sistema lineal invariante a la traslación (LSI) (véase la teoría de sistemas LTI ), siempre que se conociera la respuesta impulsional del sistema de filtrado. Este concepto también se aplica a la convolución multidimensional, ya que el simple conocimiento de la respuesta impulsional de un filtro multidimensional permite realizar una comparación directa entre la entrada y la salida del sistema. Esto es de gran importancia, dado que muchas de las señales que se transmiten en el mundo digital actual son multidimensionales, incluyendo imágenes y vídeos. Al igual que la convolución unidimensional, la convolución multidimensional permite calcular la salida de un sistema LSI para una señal de entrada dada.

Por ejemplo, consideremos una imagen que se envía a través de una red inalámbrica sujeta a ruido electroóptico. Las posibles fuentes de ruido incluyen errores en la transmisión del canal, el convertidor analógico-digital y el sensor de imagen . Generalmente, el ruido causado por el canal o el sensor crea componentes de señal de alta frecuencia espacialmente independientes que se traducen en puntos claros y oscuros arbitrarios en la imagen. Para eliminar el contenido espectral de alta frecuencia de los datos de la imagen, se pueden multiplicar por la respuesta en frecuencia de un filtro de paso bajo, lo que, según el teorema de convolución, es equivalente a convolucionar la señal en el dominio espacio-temporal por la respuesta impulsional del filtro de paso bajo. A continuación se muestran varias respuestas impulsionales que realizan esta operación. [ 2 ]

Respuestas impulsionales de filtros paso bajo multidimensionales típicos

Además de filtrar el contenido espectral, la convolución multidimensional permite la detección de bordes y el suavizado. Esto, una vez más, depende completamente de los valores de la respuesta impulsional que se utiliza para la convolución con la imagen de entrada. A continuación se muestran ejemplos típicos de respuestas impulsionales para la detección de bordes.

Respuestas impulsionales típicas para la detección de bordes
Imagen original (izquierda) e imagen después de pasar por el filtro de detección de bordes (derecha).

Además del procesamiento de imágenes, la convolución multidimensional puede implementarse para habilitar diversas aplicaciones. Dado que los filtros son comunes en los sistemas de comunicación digital, cualquier sistema que deba transmitir datos multidimensionales se beneficia de las técnicas de filtrado. Se utiliza en el procesamiento de video en tiempo real, el análisis de redes neuronales, el análisis de datos geofísicos digitales y mucho más. [ 3 ]

Una distorsión típica que se produce durante la captura o transmisión de imágenes y vídeo es el desenfoque causado por un proceso de filtrado de paso bajo. Este desenfoque puede modelarse mediante un filtrado gaussiano de paso bajo.

Imagen original (izquierda) e imagen borrosa (derecha) obtenidas mediante convolución gaussiana.

Descomposición por filas y columnas con señales separables

Señales separables

Se dice que una señal es separable si puede escribirse como el producto de múltiples señales unidimensionales. [ 1 ] Matemáticamente, esto se expresa de la siguiente manera:

incógnita(norte1,norte2,...,norteMETRO)=incógnita(norte1)incógnita(norte2)...incógnita(norteMETRO){\displaystyle x(n_{1},n_{2},...,n_{M})=x(n_{1})x(n_{2})...x(n_{M})}

Algunas señales separables fácilmente reconocibles incluyen la función escalón unitario y la función impulso delta de Dirac.

(norte1,norte2,...,norteMETRO)=(norte1)(norte2)...(norteMETRO){\displaystyle u(n_{1},n_{2},...,n_{M})=u(n_{1})u(n_{2})...u(n_{M})} (función escalón unitario)

δ(norte1,norte2,...,norteMETRO)=δ(norte1)δ(norte2)...δ(norteMETRO){\displaystyle \delta (n_{1},n_{2},...,n_{M})=\delta (n_{1})\delta (n_{2})...\delta (n_{M})} (función impulso delta de Dirac)

La convolución es una operación lineal. Por lo tanto, la convolución multidimensional de señales separables puede expresarse como el producto de muchas convoluciones unidimensionales. Por ejemplo, consideremos el caso en que x y h son funciones separables.

incógnita(norte1,norte2)h(norte1,norte2)=k1=k2=h(k1,k2)incógnita(norte1k1,norte2k2){\displaystyle x(n_{1},n_{2})**h(n_{1},n_{2})=\sum _{k_{1}=-\infty }^{\infty }\sum _{k_{2}=-\infty }^{\infty }h(k_{1},k_{2})x(n_{1}-k_{1},n_{2}-k_{2})}

Aplicando las propiedades de separabilidad, esto se puede reescribir de la siguiente manera:

incógnita(norte1,norte2)h(norte1,norte2)=(k1=h(k1)incógnita(norte1k1))(k2=h(k2)incógnita(norte2k2)){\displaystyle x(n_{1},n_{2})**h(n_{1},n_{2})={\bigg (}\sum _{k_{1}=-\infty }^{\infty }h(k_{1})x(n_{1}-k_{1}){\bigg )}{\bigg (}\sum _{k_{2}=-\infty }^{\infty }h(k_{2})x(n_{2}-k_{2}){\bigg )}}

Se ve fácilmente entonces que esto se reduce al producto de convoluciones unidimensionales:

incógnita(norte1,norte2)h(norte1,norte2)=[incógnita(norte1)h(norte1)][incógnita(norte2)h(norte2)]{\displaystyle x(n_{1},n_{2})**h(n_{1},n_{2})={\bigg [}x(n_{1})*h(n_{1}){\bigg ]}{\bigg [}x(n_{2})*h(n_{2}){\bigg ]}}

Esta conclusión puede extenderse entonces a la convolución de dos señales separables de dimensión M de la siguiente manera:

incógnita(norte1,norte2,...,norteMETRO)METROh(norte1,norte2,...,norteMETRO)=[incógnita(norte1)h(norte1)][incógnita(norte2)h(norte2)]...[incógnita(norteMETRO)h(norteMETRO)]{\displaystyle x(n_{1},n_{2},...,n_{M})*{\overset {M}{\cdots }}*h(n_{1},n_{2},...,n_{M})={\bigg [}x(n_{1})*h(n_{1}){\bigg ]}{\bigg [}x(n_{2})*h(n_{2}){\bigg ]}...{\bigg [}x(n_{M})*h(n_{M}){\bigg ]}}

Entonces, cuando las dos señales son separables, la convolución multidimensional se puede calcular calculandonorteMETRO{\displaystyle n_{M}}convoluciones unidimensionales.

Descomposición por filas y columnas

El método de filas y columnas se puede aplicar cuando una de las señales en la convolución es separable. El método explota las propiedades de separabilidad para lograr un método de cálculo de la convolución de dos señales multidimensionales que es más eficiente computacionalmente que el cálculo directo de cada muestra (dado que una de las señales es separable). [ 4 ] A continuación se muestra el razonamiento matemático detrás del enfoque de descomposición de filas y columnas (típicamenteh(norte1,norte2){\displaystyle h(n_{1},n_{2})}es la señal separable):

y(norte1,norte2)=k1=k2=h(k1,k2)incógnita(norte1k1,norte2k2)=k1=k2=h1(k1)h2(k2)incógnita(norte1k1,norte2k2)=k1=h1(k1)[k2=h2(k2)incógnita(norte1k1,norte2k2)]{\displaystyle {\begin{aligned}y(n_{1},n_{2})&=\sum _{k_{1}=-\infty }^{\infty }\sum _{k_{2}=-\infty }^{\infty }h(k_{1},k_{2})x(n_{1}-k_{1},n_{2}-k_{2})\\&=\sum _{k_{1}=-\infty }^{\infty }\sum _{k_{2}=-\infty }^{\infty }h_{1}(k_{1})h_{2}(k_{2})x(n_{1}-k_{1},n_{2}-k_{2})\\&=\sum _{k_{1}=-\infty }^{\infty }h_{1}(k_{1}){\Bigg [}\sum _{k_{2}=-\infty }^{\infty }h_{2}(k_{2})x(n_{1}-k_{1},n_{2}-k_{2}){\Bigg ]}\end{aligned}}}

El valor dek2=h2(k2)incógnita(norte1k1,norte2k2){\displaystyle \sum _{k_{2}=-\infty }^{\infty }h_{2}(k_{2})x(n_{1}-k_{1},n_{2}-k_{2})}ahora se puede reutilizar al evaluar otrosy{\displaystyle y}valores con un valor compartido denorte2{\displaystyle n_{2}}:

y(norte1+δ,norte2)=k1=h1(k1)[k2=h2(k2)incógnita(norte1[k1δ],norte2k2)]=k1=h1(k1+δ)[k2=h2(k2)incógnita(norte1k1,norte2k2)]{\displaystyle {\begin{aligned}y(n_{1}+\delta ,n_{2})&=\sum _{k_{1}=-\infty }^{\infty }h_{1}(k_{1}){\Bigg [}\sum _{k_{2}=-\infty }^{\infty }h_{2}(k_{2})x(n_{1}-[k_{1}-\delta ],n_{2}-k_{2}){\Bigg ]}\\&=\sum _{k_{1}=-\infty }^{\infty }h_{1}(k_{1}+\delta ){\Bigg [}\sum _{k_{2}=-\infty }^{\infty }h_{2}(k_{2})x(n_{1}-k_{1},n_{2}-k_{2}){\Bigg ]}\end{aligned}}}

Por lo tanto, la convolución resultante se puede calcular eficazmente realizando primero la operación de convolución en todas las filas deincógnita(norte1,norte2){\displaystyle x(n_{1},n_{2})}y luego en todas sus columnas. Este enfoque se puede optimizar aún más teniendo en cuenta cómo se accede a la memoria dentro de un procesador de computadora.

Un procesador cargará los datos de señal necesarios para la operación dada. En los procesadores modernos, los datos se cargan desde la memoria a la caché del procesador, que tiene tiempos de acceso más rápidos que la memoria. La caché está particionada en líneas. Cuando se carga una línea de caché desde la memoria, se cargan varios operandos de datos a la vez. Consideremos el caso optimizado en el que una fila de datos de señal cabe completamente dentro de la caché del procesador. Este procesador en particular podría acceder a los datos fila por fila de manera eficiente, pero no columna por columna, ya que diferentes operandos de datos en la misma columna se encontrarían en diferentes líneas de caché. [ 5 ] Para aprovechar la forma en que se accede a la memoria, es más eficiente transponer el conjunto de datos y luego acceder a él fila por fila en lugar de intentar acceder a él columna por columna. El algoritmo queda entonces de la siguiente manera:

  1. Separe la señal bidimensional separableh(norte1,norte2){\displaystyle h(n_{1},n_{2})}en dos señales unidimensionalesh1(norte1){\displaystyle h_{1}(n_{1})}yh2(norte2){\displaystyle h_{2}(n_{2})}
  2. Realizar una convolución fila por fila sobre los componentes horizontales de la señal.incógnita(norte1,norte2){\displaystyle x(n_{1},n_{2})}usandoh1(norte1){\displaystyle h_{1}(n_{1})}para obtenergramo(norte1,norte2){\displaystyle g(n_{1},n_{2})}
  3. Transponer las componentes verticales de la señalgramo(norte1,norte2){\displaystyle g(n_{1},n_{2})}como resultado del Paso 2.
  4. Realizar una convolución fila por fila sobre los componentes verticales transpuestos degramo(norte1,norte2){\displaystyle g(n_{1},n_{2})}para obtener el resultado deseadoy(norte1,norte2){\displaystyle y(n_{1},n_{2})}

Aceleración computacional gracias a la descomposición en filas y columnas.

Examine el caso en el que una imagen de tamañoincógnita×Y{\displaystyle X\times Y}se está pasando a través de un filtro separable de tamañoJ×K{\displaystyle J\times K}La imagen en sí no es separable. Si el resultado se calcula utilizando el método de convolución directa sin aprovechar la separabilidad del filtro, esto requerirá aproximadamenteincógnitaYJK{\displaystyle XYJK}multiplicaciones y sumas. Si se tiene en cuenta la separabilidad del filtro, el filtrado se puede realizar en dos pasos. El primer paso tendráincógnitaYJ{\displaystyle XYJ}multiplicaciones y sumas y el segundo paso tendráincógnitaYK{\displaystyle XYK}, lo que resulta en un total deincógnitaYJ+incógnitaYK{\displaystyle XYJ+XYK}oincógnitaY(J+K){\displaystyle XY(J+K)}multiplicaciones y sumas. [ 6 ] En la siguiente imagen se muestra una comparación de la complejidad computacional entre la convolución directa y la separable:

Número de cálculos que hacen pasar una imagen de 10 x 10 a través de un filtro de tamaño J x K , donde J = K varía en tamaño de 1 a 10.

Convolución circular de señales multidimensionales de valor discreto

La premisa detrás del enfoque de convolución circular en señales multidimensionales es desarrollar una relación entre el teorema de convolución y la transformada discreta de Fourier (DFT) que se puede utilizar para calcular la convolución entre dos señales discretas de extensión finita. [ 7 ]

Teorema de convolución en múltiples dimensiones

Para señales unidimensionales, el teorema de convolución establece que la transformada de Fourier de la convolución entre dos señales es igual al producto de las transformadas de Fourier de esas dos señales. Por lo tanto, la convolución en el dominio del tiempo es igual a la multiplicación en el dominio de la frecuencia. Matemáticamente, este principio se expresa de la siguiente manera:y(norte)=h(norte)incógnita(norte)Y(ω)=H(ω)incógnita(ω){\displaystyle y(n)=h(n)*x(n)\longleftrightarrow Y(\omega )=H(\omega )X(\omega )}Este principio se puede extender directamente al tratamiento de señales multidimensionales.y(norte1,norte2,...,norteMETRO)=h(norte1,norte2,...,norteMETRO)METROincógnita(norte1,norte2,...,norteMETRO)Y(ω1,ω2,...,ωMETRO)=H(ω1,ω2,...,ωMETRO)incógnita(ω1,ω2,...,ωMETRO){\displaystyle y(n_{1},n_{2},...,n_{M})=h(n_{1},n_{2},...,n_{M})*{\overset {M}{\cdots }}*x(n_{1},n_{2},...,n_{M})\longleftrightarrow Y(\omega _{1},\omega _{2},...,\omega _{M})=H(\omega _{1},\omega _{2},...,\omega _{M})X(\omega _{1},\omega _{2},...,\omega _{M})}Esta propiedad se extiende fácilmente al uso con la transformada discreta de Fourier (DFT) de la siguiente manera (tenga en cuenta que la convolución lineal se reemplaza por una convolución circular donde{\displaystyle \otimes }se utiliza para denotar la operación de convolución circular de tamañonorte{\displaystyle N}):

y(norte)=h(norte)incógnita(norte)Y(k)=H(k)incógnita(k){\displaystyle y(n)=h(n)\otimes x(n)\longleftrightarrow Y(k)=H(k)X(k)}

Al tratar con señales de múltiples dimensiones:y(norte1,norte2,...,norteMETRO)=h(norte1,norte2,...,norteMETRO)METROincógnita(norte1,norte2,...,norteMETRO)Y(k1,k2,...,kMETRO)=H(k1,k2,...,kMETRO)incógnita(k1,k2,...,kMETRO){\displaystyle y(n_{1},n_{2},...,n_{M})=h(n_{1},n_{2},...,n_{M})\otimes {\overset {M}{\cdots }}\otimes x(n_{1},n_{2},...,n_{M})\longleftrightarrow Y(k_{1},k_{2},...,k_{M})=H(k_{1},k_{2},...,k_{M})X(k_{1},k_{2},...,k_{M})}Las convoluciones circulares aquí serán de tamañonorte1,norte2,...,norteMETRO{\displaystyle N_{1},N_{2},...,N_{M}}.

Enfoque de convolución circular

La motivación para utilizar el método de convolución circular radica en su fundamento en la transformada discreta de Fourier (DFT). La premisa de la convolución circular consiste en calcular las DFT de las señales de entrada, multiplicarlas y, posteriormente, calcular la transformada inversa de Fourier. Es fundamental utilizar una DFT suficientemente grande para evitar el aliasing. La DFT se puede calcular numéricamente al trabajar con señales de longitud finita. Una ventaja de este método es que, al requerir la DFT y la transformada inversa de Fourier, permite utilizar algoritmos eficientes como la transformada rápida de Fourier (FFT). La convolución circular también se puede calcular en el dominio espacio-temporal, no solo en el dominio de la frecuencia.

Diagrama de bloques de convolución circular con señales de 2 M dimensiones

Elegir el tamaño de la DFT para evitar el aliasing

Consideremos el siguiente caso en el que se toman dos señales de extensión finita x y h . Para ambas señales, existe una DFT correspondiente como sigue:

incógnita(norte1,norte2)incógnita(k1,k2){\displaystyle x(n_{1},n_{2})\longleftrightarrow X(k_{1},k_{2})} y h(norte1,norte2)H(k1,k2){\displaystyle h(n_{1},n_{2})\longleftrightarrow H(k_{1},k_{2})}

La región de apoyo deincógnita(norte1,norte2){\displaystyle x(n_{1},n_{2})}es0norte1PAG11{\displaystyle 0\leq n_{1}\leq P_{1}-1}y0norte2PAG21{\displaystyle 0\leq n_{2}\leq P_{2}-1}y la región de apoyo deh(norte1,norte2){\displaystyle h(n_{1},n_{2})}es0norte1Q11{\displaystyle 0\leq n_{1}\leq Q_{1}-1}y0norte2Q21{\displaystyle 0\leq n_{2}\leq Q_{2}-1}.

La convolución lineal de estas dos señales se expresaría como:ylinortemiar(norte1,norte2)=metro1metro2h(metro1,metro2)incógnita(norte1metro1,norte2metro2){\displaystyle y_{linear}(n_{1},n_{2})=\sum _{m_{1}}\sum _{m_{2}}h(m_{1},m_{2})x(n_{1}-m_{1},n_{2}-m_{2})}Dadas las regiones de apoyo deincógnita(norte1,norte2){\displaystyle x(n_{1},n_{2})}y h(norte1,norte2){\displaystyle h(n_{1},n_{2})}, la región de apoyo deylinortemiar(norte1,norte2){\displaystyle y_{linear}(n_{1},n_{2})}Se presentará entonces de la siguiente manera:

0norte1PAG1+Q11{\displaystyle 0\leq n_{1}\leq P_{1}+Q_{1}-1}0norte2PAG2+Q21{\displaystyle 0\leq n_{2}\leq P_{2}+Q_{2}-1}Basándose en las regiones de soporte de las dos señales, una DFT de tamañonorte1×norte2{\displaystyle N_{1}\times N_{2}}debe usarse dondenorte1máximo(PAG1,Q1){\displaystyle N_{1}\geq \max(P_{1},Q_{1})}ynorte2máximo(PAG2,Q2){\displaystyle N_{2}\geq \max(P_{2},Q_{2})}Dado que se debe utilizar la misma DFT en ambas señales, en caso de que se necesite una DFT de mayor tamaño que la longitud de la señal, esta se rellena con ceros hasta alcanzar la longitud requerida. Tras multiplicar las DFT y calcular la DFT inversa del resultado, la convolución circular resultante viene dada por:

ydoirdolar(norte1,norte2)=r1r2[metro1=0Q11metro2=0Q21h(metro1,metro2)incógnita(norte1metro1r1norte1,norte2metro2r2norte2)]{\displaystyle y_{circular}(n_{1},n_{2})=\sum _{r_{1}}\sum _{r_{2}}{\Bigg [}\sum _{m_{1}=0}^{Q_{1}-1}\sum _{m_{2}=0}^{Q_{2}-1}h(m_{1},m_{2})x(n_{1}-m_{1}-r_{1}N_{1},n_{2}-m_{2}-r_{2}N_{2}){\Bigg ]}}para(norte1,norte2)Rnorte1norte2{\displaystyle (n_{1},n_{2})\in R_{N_{1}N_{2}}}

Rnorte1norte2{(norte1,norte2):0norte1norte11,0norte2norte21}{\displaystyle R_{N_{1}N_{2}}\triangleq \{(n_{1},n_{2}):0\leq n_{1}\leq N_{1}-1,0\leq n_{2}\leq N_{2}-1\}}

El resultado será queydoirdolar(norte1,norte2){\displaystyle y_{circular}(n_{1},n_{2})}será una versión espacialmente aliase del resultado de la convolución linealylinortemiar(norte1,norte2){\displaystyle y_{linear}(n_{1},n_{2})}Esto se puede expresar de la siguiente manera:

ydoirdolar(norte1,norte2)=r1r2ylinortemiar(norte1r1norte1,norte2r2norte2)For(norte1,norte2)Rnorte1norte2{\displaystyle y_{circular}(n_{1},n_{2})=\sum _{r_{1}}\sum _{r_{2}}y_{linear}(n_{1}-r_{1}N_{1},n_{2}-r_{2}N_{2}){\mathrm {\,\,\,for\,\,\,} }(n_{1},n_{2})\in R_{N_{1}N_{2}}}

Luego, para evitar el aliasing entre las réplicas espacialmente aliasadas,norte1{\displaystyle N_{1}}ynorte2{\displaystyle N_{2}}Debe elegirse de acuerdo con las siguientes condiciones:

norte1PAG1+Q11{\displaystyle N_{1}\geq P_{1}+Q_{1}-1}

norte2PAG2+Q21{\displaystyle N_{2}\geq P_{2}+Q_{2}-1}

Si se cumplen estas condiciones, entonces los resultados de la convolución circular serán iguales a los de la convolución lineal (tomando el período principal de la convolución circular como región de soporte). Es decir:

ydoirdolar(norte1,norte2)=ylinortemiar(norte1,norte2){\displaystyle y_{circular}(n_{1},n_{2})=y_{linear}(n_{1},n_{2})}para(norte1,norte2)Rnorte1norte2{\displaystyle (n_{1},n_{2})\in R_{N_{1}N_{2}}}

Resumen del procedimiento utilizando DFT

El teorema de convolución y la convolución circular se pueden utilizar de la siguiente manera para obtener un resultado equivalente al de realizar la convolución lineal: [ 8 ]

  1. Elegirnorte1{\displaystyle N_{1}}ynorte2{\displaystyle N_{2}}para satisfacernorte1PAG1+Q11{\displaystyle N_{1}\geq P_{1}+Q_{1}-1}ynorte2PAG2+Q21{\displaystyle N_{2}\geq P_{2}+Q_{2}-1}
  2. Rellenar con ceros las señalesh(norte1,norte2){\displaystyle h(n_{1},n_{2})}yincógnita(norte1,norte2){\displaystyle x(n_{1},n_{2})}de tal manera que sean ambosnorte1×norte2{\displaystyle N_{1}\times N_{2}}en tamaño
  3. Calcular las DFT de ambosh(norte1,norte2){\displaystyle h(n_{1},n_{2})}yincógnita(norte1,norte2){\displaystyle x(n_{1},n_{2})}
  4. Multiplica los resultados de las DFT para obtenerY(k1,k2)=H(k1,k2)incógnita(k1,k2){\displaystyle Y(k_{1},k_{2})=H(k_{1},k_{2})X(k_{1},k_{2})}
  5. El resultado de la IDFT deY(k1,k2){\displaystyle Y(k_{1},k_{2})}será entonces igual al resultado de realizar una convolución lineal sobre las dos señales.

Superponer y añadir

Otro método para realizar convoluciones multidimensionales es el enfoque de superposición y suma . Este método ayuda a reducir la complejidad computacional que suele asociarse a las convoluciones multidimensionales debido a la gran cantidad de datos inherentes a los sistemas digitales actuales. [ 9 ] Para mayor brevedad, se utiliza el caso bidimensional como ejemplo, pero los mismos conceptos pueden extenderse a múltiples dimensiones.

Consideremos una convolución bidimensional mediante un cálculo directo:

y(norte1,norte2)=k1=k2=incógnita(norte1k1,norte2k2)h(k1,k2){\displaystyle y(n_{1},n_{2})=\sum _{k_{1}=-\infty }^{\infty }\sum _{k_{2}=-\infty }^{\infty }x(n_{1}-k_{1},n_{2}-k_{2})h(k_{1},k_{2})}

Suponiendo que la señal de saliday(norte1,norte2){\displaystyle y(n_{1},n_{2})}tiene N coeficientes distintos de cero, y la respuesta impulsional tiene M muestras distintas de cero, este cálculo directo requeriría MN multiplicaciones y MN - 1 sumas para su cálculo. En cambio, utilizando una FFT, la respuesta en frecuencia del filtro y la transformada de Fourier de la entrada tendrían que almacenarse en memoria. [ 10 ] La gran cantidad de cálculos y el uso excesivo de espacio de almacenamiento de memoria plantean un problema a medida que se añaden más dimensiones. Aquí es donde entra en juego el método de convolución de superposición y suma.

Descomposición en bloques de convolución más pequeños

En lugar de realizar la convolución en los bloques de información en su totalidad, la información se puede dividir en bloques más pequeños de dimensiones.L1{\displaystyle L_{1}}incógnitaL2{\displaystyle L_{2}} lo que resulta en transformadas rápidas de Fourier (FFT) más pequeñas, menor complejidad computacional y menor necesidad de almacenamiento. Esto se puede expresar matemáticamente de la siguiente manera:

incógnita(norte1,norte2)=i=1PAG1j=1PAG2incógnitaij(norte1,norte2){\displaystyle x(n_{1},n_{2})=\sum _{i=1}^{P_{1}}\sum _{j=1}^{P_{2}}x_{ij}(n_{1},n_{2})}

dóndeincógnita(norte1,norte2){\displaystyle x(n_{1},n_{2})}representa elnorte1{\displaystyle N_{1}}incógnitanorte2{\displaystyle N_{2}}señal de entrada, que es una suma dePAG1PAG2{\displaystyle P_{1}P_{2}}segmentos de bloques, conPAG1=norte1/L1{\displaystyle P_{1}=N_{1}/L_{1}}yPAG2=norte2/L2{\displaystyle P_{2}=N_{2}/L_{2}}.

Para producir la señal de salida, se realiza una convolución bidimensional:

y(norte1,norte2)=incógnita(norte1,norte2)h(norte1,norte2){\displaystyle y(n_{1},n_{2})=x(n_{1},n_{2})**h(n_{1},n_{2})}

Sustituyendo porincógnita(norte1,norte2){\displaystyle x(n_{1},n_{2})}da como resultado lo siguiente:

y(norte1,norte2)=i=1PAG1j=1PAG2incógnitaij(norte1,norte2)h(norte1,norte2){\displaystyle y(n_{1},n_{2})=\sum _{i=1}^{P_{1}}\sum _{j=1}^{P_{2}}x_{ij}(n_{1},n_{2})**h(n_{1},n_{2})}

Esta convolución añade más complejidad que una convolución directa; sin embargo, al estar integrada con una convolución rápida FFT, la superposición-suma es más rápida y consume menos memoria, lo que la hace práctica para grandes conjuntos de datos multidimensionales.

Desglose del procedimiento

Dejarh(norte1,norte2){\displaystyle h(n_{1},n_{2})}ser de tamañoMETRO1×METRO2{\displaystyle M_{1}\times M_{2}}:

  1. Entrada de interrupciónincógnita(norte1,norte2){\displaystyle x(n_{1},n_{2})}en bloques de dimensiones que no se superponenL1×L2{\displaystyle L_{1}\times L_{2}}.
  2. Almohadilla ceroh(norte1,norte2){\displaystyle h(n_{1},n_{2})}de tal manera que tenga dimensiones (L1+METRO11{\displaystyle L_{1}+M_{1}-1})×{\displaystyle \times }(L2+METRO21{\displaystyle L_{2}+M_{2}-1}).
  3. Utilice DFT para obtenerH(k1,k2){\displaystyle H(k_{1},k_{2})}.
  4. Para cada bloque de entrada:
    1. Almohadilla ceroincógnitaij(norte1,norte2){\displaystyle x_{ij}(n_{1},n_{2})}ser de dimensiones (L1+METRO11{\displaystyle L_{1}+M_{1}-1})×{\displaystyle \times }(L2+METRO21{\displaystyle L_{2}+M_{2}-1}).
    2. Tomar la transformada discreta de Fourier de cada bloque para obtenerincógnitaij(k1,k2){\displaystyle X_{ij}(k_{1},k_{2})}.
    3. Multiplica para obtenerYij(k1,k2)=incógnitaij(k1,k2)H(k1,k2){\displaystyle Y_{ij}(k_{1},k_{2})=X_{ij}(k_{1},k_{2})H(k_{1},k_{2})}.
    4. Tomar la transformada discreta inversa de Fourier deYij(k1,k2){\displaystyle Y_{ij}(k_{1},k_{2})}Llegaryij(norte1,norte2){\displaystyle y_{ij}(n_{1},n_{2})}.
  5. Encontrary(norte1,norte2){\displaystyle y(n_{1},n_{2})}superponiéndose y añadiendo el último(METRO11){\displaystyle (M_{1}-1)}×{\displaystyle \times }(METRO21){\displaystyle (M_{2}-1)}muestras deyij(norte1,norte2){\displaystyle y_{ij}(n_{1},n_{2})}con el primero(METRO11){\displaystyle (M_{1}-1)}×{\displaystyle \times }(METRO21){\displaystyle (M_{2}-1)}muestras de yi+1,j+1(norte1,norte2){\displaystyle y_{i+1,j+1}(n_{1},n_{2})}para obtener el resultado. [ 11 ]

Método pictórico de operación

Para visualizar el método de superposición y suma con mayor claridad, las siguientes ilustraciones lo examinan gráficamente. Supongamos que la entradaincógnita(norte1,norte2){\displaystyle x(n_{1},n_{2})}tiene una región cuadrada de soporte de longitud N tanto en dirección vertical como horizontal, como se muestra en la figura siguiente. Luego se divide en cuatro segmentos más pequeños de tal manera que ahora está compuesto por cuatro cuadrados más pequeños. Cada bloque de la señal agregada tiene dimensiones(norte/2){\displaystyle (N/2)}×{\displaystyle \times }(norte/2){\displaystyle (N/2)}.

Señal de entrada descompuesta

Luego, cada componente se convoluciona con la respuesta impulsional del filtro. Cabe destacar que una ventaja de esta implementación se puede apreciar aquí, ya que cada una de estas convoluciones se puede paralelizar en una computadora, siempre que esta cuente con suficiente memoria y recursos para almacenar y calcular simultáneamente.

En la figura siguiente, el primer gráfico de la izquierda representa la convolución correspondiente al componente de la entrada.incógnita0,0{\displaystyle x_{0,0}}con la correspondiente respuesta impulsionalh(norte1,norte2){\displaystyle h(n_{1},n_{2})}A la derecha de eso, la entradaincógnita1,0{\displaystyle x_{1,0}}Luego se convoluciona con la respuesta impulsional.h(norte1,norte2){\displaystyle h(n_{1},n_{2})}.

Convolución de componentes individuales con respuesta impulsional
Convolución de cada componente con las porciones superpuestas resaltadas.

El mismo proceso se aplica a las otras dos entradas, respectivamente, y se suman para formar la convolución. Esto se muestra a la izquierda.

Supongamos que la respuesta impulsional del filtro h(norte1,norte2){\displaystyle h(n_{1},n_{2})}tiene una región de apoyo de(norte/8){\displaystyle (N/8)}en ambas dimensiones. Esto implica que cada convolución convoluciona señales con dimensiones(norte/2){\displaystyle (N/2)}×{\displaystyle \times }(norte/8){\displaystyle (N/8)}en ambosnorte1{\displaystyle n_{1}}ynorte2{\displaystyle n_{2}}direcciones, lo que lleva a la superposición (resaltada en azul) ya que la longitud de cada convolución individual es equivalente a:

(norte/2){\displaystyle (N/2)}+{\displaystyle +}(norte/8){\displaystyle (N/8)}{\displaystyle -}1{\displaystyle 1}=(5/8)norte1{\displaystyle (5/8)N-1}

en ambas direcciones. La porción azul más clara se correlaciona con la superposición entre dos convoluciones adyacentes, mientras que la porción azul más oscura se correlaciona con la superposición entre las cuatro convoluciones. Todas estas porciones de superposición se suman a las convoluciones para formar la convolución combinada.y(norte1,norte2){\displaystyle y(n_{1},n_{2})}. [ 12 ]

Superponer y guardar

El método de superposición y guardado, al igual que el de superposición y suma, también se utiliza para reducir la complejidad computacional asociada a las convoluciones de tiempo discreto. Este método, junto con la FFT, permite filtrar grandes cantidades de datos a través de un sistema digital, minimizando al mismo tiempo el espacio de memoria necesario para los cálculos en conjuntos de datos masivos.

Comparación para superponer y agregar

El método de superposición y guardado es muy similar a los métodos de superposición y suma, con algunas excepciones notables. El método de superposición y suma implica una convolución lineal de señales de tiempo discreto, mientras que el método de superposición y guardado utiliza el principio de convolución circular. Además, el método de superposición y guardado solo utiliza un relleno de ceros único de la respuesta impulsional, mientras que el método de superposición y suma implica un relleno de ceros para cada convolución en cada componente de entrada. En lugar de utilizar relleno de ceros para evitar el aliasing en el dominio del tiempo, como su contraparte de superposición y suma, el método de superposición y guardado simplemente descarta todos los puntos de aliasing y guarda los datos anteriores en un bloque para copiarlos en la convolución del siguiente bloque.

En una dimensión, las diferencias en el rendimiento y el almacenamiento entre ambos métodos son mínimas. Sin embargo, en el caso de convolución multidimensional, el método de superposición y guardado se prefiere al de superposición y suma en términos de velocidad y capacidad de almacenamiento. [ 13 ] Al igual que en el caso de superposición y suma, el procedimiento se basa en el caso bidimensional, pero puede extenderse fácilmente a todos los procedimientos multidimensionales.

Desglose del procedimiento

Dejarh(norte1,norte2){\displaystyle h(n_{1},n_{2})}ser de tamañoMETRO1×METRO2{\displaystyle M_{1}\times M_{2}}:

  1. Insertar(METRO11){\displaystyle (M_{1}-1)}columnas y(METRO21){\displaystyle (M_{2}-1)}filas de ceros al comienzo de la señal de entrada incógnita(norte1,norte2){\displaystyle x(n_{1},n_{2})}en ambas dimensiones.
  2. Divida la señal correspondiente en segmentos superpuestos de dimensiones (L1+METRO11{\displaystyle L_{1}+M_{1}-1})×{\displaystyle \times }(L2+METRO21{\displaystyle L_{2}+M_{2}-1}) en el que cada bloque bidimensional se superpondrá por(METRO11){\displaystyle (M_{1}-1)}×{\displaystyle \times }(METRO21){\displaystyle (M_{2}-1)}.
  3. Almohadilla ceroh(norte1,norte2){\displaystyle h(n_{1},n_{2})}de tal manera que tenga dimensiones (L1+METRO11{\displaystyle L_{1}+M_{1}-1})×{\displaystyle \times }(L2+METRO21{\displaystyle L_{2}+M_{2}-1}).
  4. Utilice DFT para obtenerH(k1,k2){\displaystyle H(k_{1},k_{2})}.
  5. Para cada bloque de entrada:
    1. Tomar la transformada discreta de Fourier de cada bloque para obtenerincógnitaij(k1,k2){\displaystyle X_{ij}(k_{1},k_{2})}.
    2. Multiplica para obtenerYij(k1,k2)=incógnitaij(k1,k2)H(k1,k2){\displaystyle Y_{ij}(k_{1},k_{2})=X_{ij}(k_{1},k_{2})H(k_{1},k_{2})}.
    3. Tomar la transformada discreta inversa de Fourier deYij(k1,k2){\displaystyle Y_{ij}(k_{1},k_{2})}Llegaryij(norte1,norte2){\displaystyle y_{ij}(n_{1},n_{2})}.
    4. Deshazte del primero(METRO11){\displaystyle (M_{1}-1)}×{\displaystyle \times }(METRO21){\displaystyle (M_{2}-1)}para cada bloque de salidayij(norte1,norte2){\displaystyle y_{ij}(n_{1},n_{2})}.
  6. Encontrary(norte1,norte2){\displaystyle y(n_{1},n_{2})}adjuntando el último(L1×L2){\displaystyle (L_{1}\times L_{2})}muestras para cada bloque de salidayij(norte1,norte2){\displaystyle y_{ij}(n_{1},n_{2})}. [ 11 ]

La transformación de la hélice

De forma similar a la descomposición en filas y columnas, la transformada helicoidal calcula la convolución multidimensional incorporando propiedades y operadores convolucionales unidimensionales. Sin embargo, en lugar de utilizar la separabilidad de las señales, transforma el espacio de coordenadas cartesianas en un espacio de coordenadas helicoidales, lo que permite una transformación de un espacio multidimensional a uno unidimensional.

Convolución multidimensional con métodos de convolución unidimensional

Para comprender la transformada helicoidal, es útil entender primero cómo una convolución multidimensional puede descomponerse en una convolución unidimensional. Supongamos que las dos señales que se van a convolucionar son:incógnitaMETRO×norte{\displaystyle X_{M\times N}}yYK×L{\displaystyle Y_{K\times L}}, lo que da como resultado una salidaZ(METROK+1)×(norteL+1){\displaystyle Z_{(M-K+1)\times (N-L+1)}}Esto se expresa de la siguiente manera:

Z(i,j)=metro=0METRO1norte=0norte1incógnita(metro,norte)Y(imetro,jnorte){\displaystyle Z(i,j)=\sum _{m=0}^{M-1}\sum _{n=0}^{N-1}X(m,n)Y(i-m,j-n)}

A continuación, se crean dos matrices que rellenan con ceros cada entrada en ambas dimensiones de manera que cada entrada tenga dimensiones equivalentes, es decir

incógnita=[incógnita000]{\displaystyle \mathbf {X'} ={\begin{bmatrix}X&0\\0&0\\\end{bmatrix}}} y Y=[Y000]{\displaystyle \mathbf {Y'} ={\begin{bmatrix}Y&0\\0&0\\\end{bmatrix}}}

donde cada una de las matrices de entrada ahora tiene dimensiones(METRO+K1){\displaystyle (M+K-1)}×{\displaystyle \times }(norte+L1){\displaystyle (N+L-1)}. Entonces es posible implementar un ordenamiento lexicográfico por columnas para convertir las matrices modificadas en vectores,incógnita{\displaystyle X''}yY{\displaystyle Y''}Para minimizar el número de muestras no importantes en cada vector, cada vector se trunca después de la última muestra en las matrices originales.incógnita{\displaystyle X}yY{\displaystyle Y}respectivamente. Dado esto, la longitud del vectorincógnita{\displaystyle X''}y Y{\displaystyle Y''}son dados por:

lincógnita={\displaystyle l_{X''}=}(METRO+K1){\displaystyle (M+K-1)}×{\displaystyle \times }(norte1){\displaystyle (N-1)}+METRO{\displaystyle M}

lY={\displaystyle l_{Y''}=}(METRO+K1){\displaystyle (M+K-1)}×{\displaystyle \times }(L1){\displaystyle (L-1)}+K{\displaystyle K}

La longitud de la convolución de estos dos vectores,Z{\displaystyle Z''}, se puede derivar y demostrar que es:

lZ={\displaystyle l_{Z''}=}lY+{\displaystyle l_{Y''}+}lincógnita{\displaystyle l_{X''}}=(METRO+K1){\displaystyle =(M+K-1)}×{\displaystyle \times }(norte+L1){\displaystyle (N+L-1)}

La longitud de este vector es equivalente a las dimensiones de la matriz de salida original.Z{\displaystyle Z}, lo que hace que la conversión de nuevo a una matriz sea una transformación directa. Por lo tanto, el vector,Z{\displaystyle Z''}, se convierte de nuevo a forma matricial, lo que produce la salida de la convolución discreta bidimensional. [ 14 ]

Filtrado en una hélice

Al trabajar con una malla cartesiana bidimensional, una transformada de Fourier a lo largo de cualquiera de los ejes da como resultado que el plano bidimensional se convierta en un cilindro, ya que el extremo de cada columna o fila se une a su respectiva parte superior, formando así un cilindro. El filtrado en una hélice se comporta de manera similar, excepto que en este caso, la parte inferior de cada columna se une a la parte superior de la siguiente, lo que da como resultado una malla helicoidal. Esto se ilustra a continuación. Las celdas sombreadas representan los coeficientes del filtro.

Transformación de un plano de filtrado cartesiano 2D a un filtro helicoidal.

Si esta estructura helicoidal se divide y se desenrolla en una tira unidimensional, los mismos coeficientes de filtro en el plano cartesiano bidimensional coincidirán con los mismos datos de entrada, lo que dará como resultado un esquema de filtrado equivalente. Esto garantiza que una convolución bidimensional pueda realizarse mediante un operador de convolución unidimensional, ya que el filtro bidimensional se ha desenrollado a un filtro unidimensional con intervalos de ceros que separan los coeficientes del filtro.

Tira de filtrado unidimensional después de haber sido desenrollada.

Suponiendo que se utilizó algún filtro bidimensional de paso bajo, como por ejemplo:

Luego, una vez que el espacio bidimensional se convirtió en una hélice, el filtro unidimensional se vería de la siguiente manera:

h(norte)=1,0,...,0,1,4,1,0,...,0,1,0,...{\displaystyle h(n)=-1,0,...,0,-1,4,-1,0,...,0,-1,0,...}

Nótese que en el filtro unidimensional no hay ceros iniciales, como se ilustra en la tira de filtrado unidimensional después de ser desenrollada. Se podría haber convolucionado toda la tira unidimensional; sin embargo, es menos costoso computacionalmente simplemente ignorar los ceros iniciales. Además, ninguno de estos valores cero posteriores necesitará almacenarse en memoria, lo que preserva valiosos recursos de memoria. [ 15 ]

Aplicaciones

Las transformaciones helicoidales para implementar filtros recursivos mediante convolución se utilizan en diversas áreas del procesamiento de señales. Si bien el análisis de Fourier en el dominio de la frecuencia es efectivo cuando los sistemas son estacionarios, con coeficientes constantes y datos muestreados periódicamente, se vuelve más difícil en sistemas inestables. La transformada helicoidal permite procesos de migración post-apilamiento tridimensionales que pueden procesar datos para variaciones tridimensionales en la velocidad. [ 15 ] Además, se puede aplicar para ayudar con el problema de la extrapolación implícita del campo de ondas tridimensional. [ 16 ] Otras aplicaciones incluyen algoritmos útiles en la regularización de datos sísmicos, filtros de error de predicción y atenuación de ruido en sistemas digitales geofísicos. [ 14 ]

convolución gaussiana

Una aplicación de la convolución multidimensional que se utiliza en el procesamiento de señales e imágenes es la convolución gaussiana. Esto se refiere a la convolución de una señal de entrada con la función de distribución gaussiana.

Visualización gaussiana 2D dondeμ1=μ2=0{\displaystyle \mu _{1}=\mu _{2}=0}yσ1=σ2=1{\displaystyle \sigma _{1}=\sigma _{2}=1}

La distribución gaussiana muestreada en valores discretos en una dimensión viene dada por la siguiente (suponiendoμ=0{\displaystyle \mu =0}):GRAMO(norte)=12πσ2minorte22σ2{\displaystyle G(n)={\frac {1}{\sqrt {2\pi \sigma ^{2}}}}e^{-{\frac {n^{2}}{2\sigma ^{2}}}}}Esto se extiende fácilmente a una señal de M dimensiones (suponiendoσ{\displaystyle \sigma }permanece constante para todas las dimensiones yμ1=μ2=...=μMETRO=0{\displaystyle \mu _{1}=\mu _{2}=...=\mu _{M}=0}):GRAMO(norte1,norte2,...,norteMETRO)=1(2π)METRO/2σMETROmi(norte12+norte22+...+norteMETRO2)2σ2{\displaystyle G(n_{1},n_{2},...,n_{M})={\frac {1}{(2\pi )^{M/2}\sigma ^{M}}}e^{-{\frac {({n_{1}}^{2}+{n_{2}}^{2}+...+{n_{M}}^{2})}{2\sigma ^{2}}}}}Una propiedad importante a tener en cuenta es que la señal de dimensión M es separable de tal manera que:GRAMO(norte1,norte2,...,norteMETRO)=GRAMO(norte1)GRAMO(norte2)...GRAMO(norteMETRO){\displaystyle G(n_{1},n_{2},...,n_{M})=G(n_{1})G(n_{2})...G(n_{M})}Entonces, la convolución gaussiana con señales de valor discreto se puede expresar de la siguiente manera:

y(norte)=incógnita(norte)GRAMO(norte){\displaystyle y(n)=x(n)*G(n)}

y(norte1,norte2,...,norteMETRO)=incógnita(norte1,norte2,...,norteMETRO)...GRAMO(norte1,norte2,...,norteMETRO){\displaystyle y(n_{1},n_{2},...,n_{M})=x(n_{1},n_{2},...,n_{M})*...*G(n_{1},n_{2},...,n_{M})}

Aproximación mediante filtro FIR

La convolución gaussiana se puede aproximar eficazmente mediante la implementación de un filtro de respuesta de impulso finito (FIR). El filtro se diseñará con versiones truncadas de la gaussiana. Para un filtro bidimensional, la función de transferencia de dicho filtro se definiría de la siguiente manera: [ 17 ]

H(z1,z2)=1s(r1,r2)norte1=r1r1norte2=r2r2GRAMO(norte1,norte2)z1norte1z2norte2{\displaystyle H(z_{1},z_{2})={\frac {1}{s(r_{1},r_{2})}}\sum _{n_{1}=-r_{1}}^{r_{1}}\sum _{n_{2}=-r_{2}}^{r_{2}}G(n_{1},n_{2}){z_{1}}^{-n_{1}}{z_{2}}^{-n_{2}}}

dónde

s(r1,r2)=norte1=r1r1norte2=r2r2GRAMO(norte1,norte2){\displaystyle s(r_{1},r_{2})=\sum _{n_{1}=-r_{1}}^{r_{1}}\sum _{n_{2}=-r_{2}}^{r_{2}}G(n_{1},n_{2})}

Elegir valores más bajos parar1{\displaystyle r_{1}}yr2{\displaystyle r_{2}}Esto dará como resultado realizar menos cálculos, pero producirá una aproximación menos precisa, mientras que elegir valores más altos producirá una aproximación más precisa, pero requerirá un mayor número de cálculos.

Aproximación mediante filtro de caja

Otro método para aproximar la convolución gaussiana es mediante pasadas recursivas a través de un filtro de caja. Para aproximar la convolución unidimensional, este filtro se define de la siguiente manera: [ 17 ]

H(z)=12r+1zrzr11z1{\displaystyle H(z)={\frac {1}{2r+1}}{\frac {z^{r}-z^{-r-1}}{1-z^{-}1}}}

Normalmente, se realizan 3, 4 o 5 pasadas recursivas para obtener una aproximación precisa. [ 17 ] A continuación se presenta un método sugerido para calcular r : [ 18 ]

σ2=112K((2r+1)21){\displaystyle \sigma ^{2}={\frac {1}{12}}K((2r+1)^{2}-1)} donde K es el número de pasadas recursivas a través del filtro.

Entonces, dado que la distribución gaussiana es separable en diferentes dimensiones, se deduce que los pasos recursivos a través de filtros unidimensionales (aislando cada dimensión por separado) producirán una aproximación de la convolución gaussiana multidimensional. Es decir, la convolución gaussiana M- dimensional podría aproximarse mediante pasos recursivos a través de los siguientes filtros unidimensionales:

H(z1)=12r1+1z1r1z1r111z11{\displaystyle H(z_{1})={\frac {1}{2r_{1}+1}}{\frac {{z_{1}}^{r_{1}}-{z_{1}}^{-r_{1}-1}}{1-{z_{1}}^{-}1}}}

H(z2)=12r2+1z2r2z2r211z21{\displaystyle H(z_{2})={\frac {1}{2r_{2}+1}}{\frac {{z_{2}}^{r_{2}}-{z_{2}}^{-r_{2}-1}}{1-{z_{2}}^{-}1}}}

{\displaystyle \vdots }

H(zMETRO)=12rMETRO+1zMETROrMETROzMETROrMETRO11zMETRO1{\displaystyle H(z_{M})={\frac {1}{2r_{M}+1}}{\frac {{z_{M}}^{r_{M}}-{z_{M}}^{-r_{M}-1}}{1-{z_{M}}^{-}1}}}

Aplicaciones

Las convoluciones gaussianas se utilizan ampliamente en el procesamiento de señales e imágenes. Por ejemplo, el desenfoque de imágenes se puede lograr con una convolución gaussiana dondeσ{\displaystyle \sigma }Este parámetro controlará la intensidad del desenfoque. Valores más altos corresponderán, por lo tanto, a un resultado más borroso. [ 19 ] También se utiliza comúnmente en aplicaciones de visión artificial, como la detección de características mediante la transformada de características invariante a la escala (SIFT). [ 20 ]

Véase también

Referencias

  1. 1 2 Dudgeon, Dan; Mersereau, Russell (1983), Procesamiento de señales digitales multidimensionales , Prentice-Hall, págs. 21–22 
  2. "MARBLE: Visión interactiva" . homepages.inf.ed.ac.uk . Consultado el 12 de noviembre de 2015 .
  3. "Rediseño del análisis geofísico digital" . www-rohan.sdsu.edu . Consultado el 12 de noviembre de 2015 .
  4. Sihvo, Tero; Niittylahti, Jarkko (5 de junio de 2005). "Optimización de la transformación 2D basada en la descomposición en filas y columnas en procesadores paralelos de subpalabras". Simposio Internacional sobre Señales, Circuitos y Sistemas, 2005. ISSCS 2005. Vol. 1. págs. 99–102 . doi : 10.1109/ISSCS.2005.1509860 . ISBN   978-0-7803-9029-4.
  5. "Introducción a las cachés" . Departamento de Informática, Universidad de Maryland . Consultado el 10 de noviembre de 2015 .
  6. Eddins, Steve. "Convolución separable" . Mathwords . Consultado el 10 de noviembre de 2015 .
  7. Dudgeon, Dan; Mersereau, Russell (1983), Procesamiento de señales digitales multidimensionales , Prentice-Hall, pág. 70 
  8. Dudgeon, Dan; Mersereau, Russell (1983), Procesamiento digital de señales multidimensionales , Prentice-Hall, pág. 72 
  9. Fernández, Joseph; Kumar, Vijaya (2013). Superposición-Adición y Superposición-Guardado Multidimensionales para Correlación y Convolución . págs. 509–513 . doi : 10.1109/ICIP.2013.6738105 . ISBN  978-1-4799-2341-0.
  10. "Procesamiento de señales 2D" (PDF) . EE502: Procesamiento digital de señales . Universidad de la Ciudad de Dublín. pág. 24. Consultado el 11 de noviembre de 2015 . 
  11. 1 2 Kundur, Deepa. "Superposición-Guardar y Superposición-Agregar" (PDF) . Universidad de Toronto . Recuperado el 12 de noviembre de 2015 .
  12. "Procesamiento de señales 2D" (PDF) . EE502: Procesamiento digital de señales . Universidad de la Ciudad de Dublín. pág. 26. Consultado el 11 de noviembre de 2015 . 
  13. Kim, Chang; Strintzis, Michael (mayo de 1980). "Convolución multidimensional de alta velocidad". IEEE Transactions on Pattern Analysis and Machine Intelligence . PAMI-2 (3): 269– 273. doi : 10.1109/tpami.1980.4767017 .
  14. 1 2 Naghizadeh, Mostafa; Sacchi, Mauricio (noviembre de 2009). "Convolución multidimensional mediante un algoritmo de convolución 1D" . The Leading Edge .
  15. ^ Claerbout , Jon (septiembre de 1998). "Filtros recursivos multidimensionales mediante hélice". Geofísica . 63 (5): 9. Bibcode : 1998Geop...63.1532C . CiteSeerX 10.1.1.76.1193 . doi : 10.1190/1.1444449 . 
  16. Fomel, Sergey; Claerbout, Jon (1997). "Explorando la extrapolación implícita tridimensional del campo de ondas con la transformada helicoidal" (PDF) . Informe SEP : 43–60 . Archivado del original (PDF) el 4 de enero de 2019.
  17. 1 2 3 Getreuer, Pascal (2013). "Un estudio de los algoritmos de convolución gaussiana" . Procesamiento de imágenes en línea . 3 : 286–310 . doi : 10.5201/ipol.2013.87 .
  18. Wells, WM (1986). "Síntesis eficiente de filtros gaussianos mediante filtros uniformes en cascada". IEEE Transactions on Pattern Analysis and Machine Intelligence . PAMI-8 (2): 234– 239. doi : 10.1109/TPAMI.1986.4767776 .
  19. "Desenfoque gaussiano: procesamiento de imágenes para científicos e ingenieros, parte 4" . patrick-fuller.com . Consultado el 12 de noviembre de 2015 .
  20. Lowe, DG (1999). "Reconocimiento de objetos a partir de características locales invariantes a la escala" (PDF) . Actas de la Conferencia Internacional sobre Visión por Computadora . 2 : 1150–1157 .
Obtenido de " https://en.wikipedia.org/w/index.php?title=Multidimensional_discrete_convolution&oldid=1346183771 "