En el análisis numérico y el análisis funcional , una transformada wavelet discreta ( DWT ) es cualquier transformada wavelet en la que las wavelets se muestrean de forma discreta. Al igual que con otras transformadas wavelet, una ventaja clave que tiene sobre las transformadas de Fourier es la resolución temporal: captura información tanto de frecuencia como de ubicación (ubicación en el tiempo).
La primera DWT fue inventada por el matemático húngaro Alfréd Haar . Para una entrada representada por una lista de números, se puede considerar la transformada wavelet de Haar para emparejar los valores de entrada, almacenar la diferencia y pasar la suma. Este proceso se repite de forma recursiva, emparejando las sumas para demostrar la siguiente escala, que conduce a las diferencias y a una suma final.
El conjunto de transformadas wavelet discretas más comúnmente utilizado fue formulado por la matemática belga Ingrid Daubechies en 1988. Esta formulación se basa en el uso de relaciones de recurrencia para generar muestreos discretos progresivamente más finos de una función wavelet madre implícita; cada resolución es el doble de la de la escala anterior. En su artículo seminal, Daubechies deriva una familia de wavelets , la primera de las cuales es la wavelet de Haar. El interés en este campo ha explotado desde entonces, y se desarrollaron muchas variaciones de las wavelets originales de Daubechies. [1] [2] [3]
La transformada wavelet compleja de árbol dual ( WT) es una mejora relativamente reciente de la transformada wavelet discreta (DWT), con importantes propiedades adicionales: es casi invariante al desplazamiento y selectiva en la dirección en dos dimensiones y más. Lo logra con un factor de redundancia de solo , sustancialmente menor que la DWT no diezmada. La WT de árbol dual multidimensional (MD) no es separable, pero se basa en un banco de filtros (FB) separable y computacionalmente eficiente. [4]
Otras formas de transformada wavelet discreta incluyen la wavelet Le Gall–Tabatabai (LGT) 5/3 desarrollada por Didier Le Gall y Ali J. Tabatabai en 1988 (usada en JPEG 2000 o JPEG XS ), [5] [6] [7] la QMF binomial desarrollada por Ali Naci Akansu en 1990, [8] el algoritmo de partición de conjuntos en árboles jerárquicos (SPIHT) desarrollado por Amir Said con William A. Pearlman en 1996, [9] la transformada wavelet no diezmada o no diezmada (donde se omite el submuestreo) y la transformada de Newland (donde se forma una base ortonormal de wavelets a partir de filtros de sombrero de copa construidos apropiadamente en el espacio de frecuencia ). Las transformadas de paquetes wavelet también están relacionadas con la transformada wavelet discreta. La transformada wavelet compleja es otra forma.
La DWT de Haar ilustra las propiedades deseables de las wavelets en general. En primer lugar, se puede realizar en operaciones; en segundo lugar, captura no solo una noción del contenido de frecuencia de la entrada, al examinarla en diferentes escalas, sino también el contenido temporal, es decir, los momentos en que ocurren estas frecuencias. Combinadas, estas dos propiedades hacen que la transformada rápida de wavelets (FWT) sea una alternativa a la transformada rápida de Fourier (FFT) convencional.
Debido a los operadores de cambio de velocidad en el banco de filtros, la WT discreta no es invariante en el tiempo, sino que es muy sensible a la alineación de la señal en el tiempo. Para abordar el problema de variación en el tiempo de las transformadas wavelet, Mallat y Zhong propusieron un nuevo algoritmo para la representación wavelet de una señal, que es invariante a los cambios en el tiempo. [10] Según este algoritmo, que se denomina TI-DWT, solo se muestrea el parámetro de escala a lo largo de la secuencia diádica 2^j (j∈Z) y se calcula la transformada wavelet para cada punto en el tiempo. [11] [12]
La transformada wavelet discreta tiene una gran cantidad de aplicaciones en ciencia, ingeniería, matemáticas e informática. En particular, se utiliza para la codificación de señales, para representar una señal discreta en una forma más redundante, a menudo como preacondicionamiento para la compresión de datos . También se pueden encontrar aplicaciones prácticas en el procesamiento de señales de aceleraciones para el análisis de la marcha, [13] [14] procesamiento de imágenes, [15] [16] en comunicaciones digitales y muchas otras. [17] [18] [19]
Se demuestra que la transformada wavelet discreta (discreta en escala y desplazamiento, y continua en el tiempo) se implementa exitosamente como banco de filtros analógicos en el procesamiento de señales biomédicas para el diseño de marcapasos de bajo consumo y también en comunicaciones inalámbricas de banda ultra ancha (UWB). [20]
Los wavelets se utilizan a menudo para eliminar el ruido de señales bidimensionales, como imágenes. El siguiente ejemplo proporciona tres pasos para eliminar el ruido gaussiano blanco no deseado de la imagen ruidosa que se muestra. Se utilizó Matlab para importar y filtrar la imagen.
El primer paso es elegir un tipo de wavelet y un nivel N de descomposición. En este caso se eligieron wavelets biortogonales 3.5 con un nivel N de 10. Los wavelets biortogonales se utilizan comúnmente en el procesamiento de imágenes para detectar y filtrar el ruido blanco gaussiano, [21] debido a su alto contraste con los valores de intensidad de los píxeles vecinos. Utilizando estos wavelets se realiza una transformación wavelet en la imagen bidimensional.
Tras la descomposición del archivo de imagen, el siguiente paso es determinar los valores de umbral para cada nivel de 1 a N. La estrategia de Birgé-Massart [22] es un método bastante común para seleccionar estos umbrales. Mediante este proceso se crean umbrales individuales para N = 10 niveles. La aplicación de estos umbrales constituye la mayor parte del filtrado real de la señal.
El paso final es reconstruir la imagen a partir de los niveles modificados. Esto se logra utilizando una transformada wavelet inversa. La imagen resultante, con el ruido gaussiano blanco eliminado, se muestra debajo de la imagen original. Al filtrar cualquier forma de datos, es importante cuantificar la relación señal-ruido del resultado. [ cita requerida ] En este caso, la relación señal-ruido de la imagen ruidosa en comparación con la original fue del 30,4958 %, y la relación señal-ruido de la imagen sin ruido es del 32,5525 %. La mejora resultante del filtrado wavelet es una ganancia de relación señal-ruido del 2,0567 %. [23]
La elección de otras ondículas, niveles y estrategias de umbralización puede dar como resultado diferentes tipos de filtrado. En este ejemplo, se optó por eliminar el ruido gaussiano blanco, aunque, con una umbralización diferente, podría haberse amplificado con la misma facilidad.
Para ilustrar las diferencias y similitudes entre la transformada wavelet discreta y la transformada de Fourier discreta , considere la DWT y la DFT de la siguiente secuencia: (1,0,0,0), un impulso unitario .
La DFT tiene base ortogonal ( matriz DFT ):
Mientras que la DWT con wavelets de Haar para datos de longitud 4 tiene base ortogonal en las filas de:
(Para simplificar la notación, se utilizan números enteros, por lo que las bases son ortogonales pero no ortonormales ).
Las observaciones preliminares incluyen:
La DWT demuestra la localización: el término (1,1,1,1) da el valor promedio de la señal, el término (1,1,–1,–1) coloca la señal en el lado izquierdo del dominio, y el término (1,–1,0,0) la coloca en el lado izquierdo del lado izquierdo, y al truncarlo en cualquier etapa se obtiene una versión submuestreada de la señal:
La DFT, por el contrario, expresa la secuencia mediante la interferencia de ondas de varias frecuencias; por lo tanto, al truncar la serie se obtiene una versión filtrada de paso bajo de la serie:
En particular, la aproximación intermedia (de 2 términos) difiere. Desde la perspectiva del dominio de la frecuencia, esta es una mejor aproximación, pero desde la perspectiva del dominio del tiempo tiene desventajas: presenta subimpulso (uno de los valores es negativo, aunque la serie original no es negativa en todas partes) y un anillo de , donde el lado derecho no es cero, a diferencia de la transformada wavelet. Por otro lado, la aproximación de Fourier muestra correctamente un pico, y todos los puntos están dentro de su valor correcto, aunque todos los puntos tienen error. La aproximación wavelet, por el contrario, coloca un pico en la mitad izquierda, pero no tiene pico en el primer punto, y si bien es exactamente correcta para la mitad de los valores (lo que refleja la ubicación), tiene un error de para los otros valores.
Esto ilustra los tipos de compensaciones entre estas transformaciones y cómo en algunos aspectos la DWT proporciona un comportamiento preferible, particularmente para el modelado de transitorios.
La marca de agua mediante DCT-DWT altera los coeficientes wavelet de los conjuntos de coeficientes de frecuencia media de la imagen principal transformada mediante DWT de 5 niveles, y luego aplica las transformaciones DCT en los conjuntos de coeficientes seleccionados. Prasanalakshmi B propuso un método [24] que utiliza la subbanda de frecuencia HL en los conjuntos de coeficientes de frecuencia media LHx y HLx en una imagen transformada mediante Transformada Wavelet Discreta (DWT) de 5 niveles.
Este algoritmo elige un nivel más grueso de DWT en términos de imperceptibilidad y robustez para aplicarles una DCT basada en bloques 4x4. En consecuencia, se puede lograr una mayor imperceptibilidad y robustez . Además, la operación de prefiltrado se utiliza antes de la extracción de la marca de agua, el enfoque y el filtrado laplaciano de gaussiano (LoG) , lo que aumenta la diferencia entre la información de la marca de agua y la imagen alojada.
La idea básica de la DWT para una imagen bidimensional se describe a continuación: primero se descompone una imagen en cuatro partes de subcomponentes de frecuencia alta, media y baja (es decir, LL1, HL1, LH1, HH1) submuestreando críticamente los canales horizontales y verticales utilizando filtros de subcomponentes.
Los subcomponentes HL1, LH1 y HH1 representan los coeficientes de ondículas de escala más fina. El subcomponente LL1 se descompone y se submuestrea críticamente para obtener los siguientes componentes de ondículas de escala más gruesa. Este proceso se repite varias veces, lo que depende de la aplicación en cuestión.
Se considera que los componentes de alta frecuencia incrustan la marca de agua, ya que contienen información de los bordes y el ojo humano es menos sensible a los cambios de los bordes. En los algoritmos de marca de agua, además de la invisibilidad de la marca de agua, la principal preocupación es elegir los componentes de frecuencia para incrustar la marca de agua para sobrevivir a los posibles ataques que pueda sufrir la imagen transmitida. Las técnicas de dominio de transformación tienen la ventaja de las propiedades únicas de los dominios alternativos para abordar las limitaciones del dominio espacial y tienen características adicionales.
La imagen del host se somete a una marca de agua DWT de 5 niveles. La incrustación de la marca de agua en las subbandas de frecuencia de nivel medio LLx proporciona un alto grado de imperceptibilidad y robustez. En consecuencia, se eligen conjuntos de coeficientes LLx en el nivel cinco para aumentar la robustez de la marca de agua contra ataques de marca de agua comunes, especialmente ataques de ruido y desenfoque, con poco o ningún impacto adicional en la calidad de la imagen. Luego, se realiza la DCT basada en bloques en estos conjuntos de coeficientes DWT seleccionados e incrusta secuencias pseudoaleatorias en frecuencias medias. El procedimiento de incrustación de la marca de agua se explica a continuación: 1. Lea la imagen de portada I, de tamaño N×N.
2. Se obtienen inicialmente los cuatro conjuntos de coeficientes de resolución múltiple no superpuestos LL1, HL1, LH1 y HH1.
3. La descomposición se realiza hasta 5 niveles y los subcomponentes de frecuencia {HH1, HL1, LH1,{{HH2, HL2, LH2, {HH3, HL3, LH3, {HH4, HL4, LH4, {HH5, HL5, LH5, LL5}}}}}} se obtienen calculando la DWT de quinto nivel de la imagen I.
4. Divida los cuatro conjuntos de coeficientes finales: HH5, HL5, LH5 y LL5 en bloques de 4 x 4.
5. Se realiza la DCT en cada bloque de los conjuntos de coeficientes elegidos. Estos conjuntos de coeficientes se eligen para investigar la imperceptibilidad y la robustez de los algoritmos por igual.
6. Mezcle la imagen de la huella digital para obtener la marca de agua mezclada WS (i, j).
7. Reformule la imagen de marca de agua codificada en un vector de ceros y unos.
8. Se generan dos secuencias pseudoaleatorias no correlacionadas a partir de la clave obtenida de la vena de la palma. El número de elementos en las dos secuencias pseudoaleatorias debe ser igual al número de elementos de banda media de los conjuntos de coeficientes de la DWT transformados mediante DCT.
9. Incruste las dos secuencias pseudoaleatorias con un factor de ganancia α en los bloques 4x4 transformados por DCT de los conjuntos de coeficientes DWT seleccionados de la imagen del host. En lugar de incrustar en todos los coeficientes del bloque DCT, se aplica solo a los coeficientes DCT de banda media. Si X se denota como la matriz de los coeficientes de banda media del bloque transformado por DCT, entonces la incrustación se realiza con el bit de marca de agua 0, y X' se actualiza como X+∝*PN 0 ,watermarkbit=0 y se realiza con el bit de marca de agua 1 y X' se actualiza como X+∝*PN 1 . La DCT inversa (IDCT) se realiza en cada bloque después de que se hayan modificado sus coeficientes de banda media para incrustar los bits de marca de agua.
10. Para producir la imagen host con marca de agua, realice la DWT inversa (IDWT) en la imagen transformada mediante DWT, incluidos los conjuntos de coeficientes modificados.
La DWT de una señal se calcula pasándola por una serie de filtros. Primero, las muestras pasan por un filtro de paso bajo con respuesta al impulso que da como resultado una convolución de los dos:
La señal también se descompone simultáneamente utilizando un filtro de paso alto . Las salidas proporcionan los coeficientes de detalle (del filtro de paso alto) y los coeficientes de aproximación (del filtro de paso bajo). Es importante que los dos filtros estén relacionados entre sí y se los conoce como filtro de espejo en cuadratura .
Sin embargo, como ya se ha eliminado la mitad de las frecuencias de la señal, se puede descartar la mitad de las muestras según la regla de Nyquist. La salida del filtro de paso bajo del diagrama anterior se submuestrea entonces por 2 y se procesa más al pasarla nuevamente por un nuevo filtro de paso bajo y un filtro de paso alto con la mitad de la frecuencia de corte del anterior, es decir:
Esta descomposición ha reducido a la mitad la resolución temporal, ya que solo la mitad de la salida de cada filtro caracteriza la señal. Sin embargo, cada salida tiene la mitad de la banda de frecuencia de la entrada, por lo que la resolución de frecuencia se ha duplicado.
Con el operador de submuestreo
El resumen anterior se puede escribir de forma más concisa.
Sin embargo, calcular una convolución completa con submuestreo posterior desperdiciaría tiempo de cálculo.
El esquema de elevación es una optimización donde estos dos cálculos se intercalan.
Esta descomposición se repite para aumentar aún más la resolución de frecuencia y los coeficientes de aproximación se descomponen con filtros de paso alto y paso bajo y luego se muestrean a la baja. Esto se representa como un árbol binario con nodos que representan un subespacio con una localización de tiempo-frecuencia diferente. El árbol se conoce como banco de filtros .
En cada nivel del diagrama anterior, la señal se descompone en frecuencias altas y bajas. Debido al proceso de descomposición, la señal de entrada debe ser un múltiplo de donde es el número de niveles.
Por ejemplo, una señal con 32 muestras, rango de frecuencia de 0 a 3 niveles de descomposición, se producen 4 escalas de salida:
La implementación del banco de filtros de wavelets se puede interpretar como el cálculo de los coeficientes de wavelet de un conjunto discreto de wavelets secundarios para un wavelet madre determinado . En el caso de la transformada de wavelet discreta, el wavelet madre se desplaza y se escala mediante potencias de dos.
donde es el parámetro de escala y es el parámetro de desplazamiento, ambos son números enteros.
Recuerde que el coeficiente wavelet de una señal es la proyección de sobre un wavelet, y sea una señal de longitud . En el caso de un wavelet hijo en la familia discreta anterior,
Ahora fijemos en una escala particular, de modo que sea una función de solamente. A la luz de la ecuación anterior, se puede ver como una convolución de con una versión dilatada, reflejada y normalizada de la ondícula madre, , muestreada en los puntos . Pero esto es precisamente lo que dan los coeficientes de detalle a nivel de la transformada de ondícula discreta. Por lo tanto, para una elección apropiada de y , los coeficientes de detalle del banco de filtros corresponden exactamente a un coeficiente de ondícula de un conjunto discreto de ondículas hijas para una ondícula madre dada .
Como ejemplo, considere la ondícula discreta de Haar , cuya ondícula madre es . Entonces, la versión dilatada, reflejada y normalizada de esta ondícula es , que es, de hecho, el filtro de descomposición de paso alto para la transformada de ondícula discreta de Haar.
La implementación del banco de filtros de la transformada wavelet discreta toma solo O( N ) en ciertos casos, en comparación con O( N log N ) para la transformada rápida de Fourier .
Nótese que si y tienen una longitud constante (es decir, su longitud es independiente de N), entonces y cada uno toma un tiempo O( N ) . El banco de filtros wavelet realiza cada una de estas dos convoluciones O( N ) y luego divide la señal en dos ramas de tamaño N/2. Pero solo divide recursivamente la rama superior convolucionada con (a diferencia de la FFT, que divide recursivamente tanto la rama superior como la rama inferior). Esto conduce a la siguiente relación de recurrencia
lo que conduce a un tiempo O( N ) para toda la operación, como se puede demostrar mediante una expansión en serie geométrica de la relación anterior.
A modo de ejemplo, la transformada wavelet de Haar discreta es lineal, ya que en ese caso y tienen una longitud constante de 2.
La localidad de las wavelets, junto con la complejidad O( N ), garantiza que la transformación se pueda calcular en línea (en modo streaming). Esta propiedad contrasta marcadamente con la FFT, que requiere acceso a toda la señal a la vez. También se aplica a la transformación multiescala y a las transformaciones multidimensionales (por ejemplo, DWT 2-D). [25]
En su forma más simple, la DWT es notablemente fácil de calcular.
La wavelet de Haar en Java :
public static int [] discreteHaarWaveletTransform ( int [] input ) { // Esta función supone que input.length=2^n, n>1 int [] output = new int [ input . length ] ; for ( int length = input . length / 2 ; ; length = length / 2 ) { // length es la longitud actual del área de trabajo de la matriz de salida. // length comienza en la mitad del tamaño de la matriz y cada iteración se reduce a la mitad hasta que es 1. for ( int i = 0 ; i < length ; ++ i ) { int suma = input [ i * 2 ] + input [ i * 2 + 1 ] ; int diferencia = input [ i * 2 ] - input [ i * 2 + 1 ] ; salida [ i ] = suma ; salida [ length + i ] = diferencia ; } if ( length == 1 ) { return salida ; } //Intercambia matrices para realizar la siguiente iteración System . arraycopy ( salida , 0 , entrada , 0 , longitud ); } }
El código Java completo para una DWT 1-D y 2-D que utiliza wavelets de Haar , Daubechies , Coiflet y Legendre está disponible en el proyecto de código abierto: JWave. Además, una implementación de elevación rápida de la transformada wavelet CDF biortogonal discreta 9/7 en C , utilizada en el estándar de compresión de imágenes JPEG 2000 , se puede encontrar aquí (archivado el 5 de marzo de 2012).
Esta figura muestra un ejemplo de aplicación del código anterior para calcular los coeficientes de ondículas de Haar en una forma de onda de sonido. Este ejemplo destaca dos propiedades clave de la transformada de ondículas:
[1]