En el análisis numérico y funcional, las transformadas de wavelet discretas (DWT) se refieren a transformadas de wavelet en las que las wavelets se representan mediante señales discretas (muestras).
El primer DWT fue concebido por el matemático húngaro Alfred Haar . Para una señal de entrada representada por una matriz de 2n números, la transformada wavelet de Haar simplemente agrupa los elementos por 2 y suma y diferencia de ellos. La agrupación de sumas se realiza recursivamente para formar el siguiente nivel de descomposición. El resultado es 2 n −1 diferencia y 1 suma total.
Este DWT simple ilustra las útiles propiedades generales de las wavelets. Primero, la transformación se puede hacer en operaciones. En segundo lugar, no solo descompone la señal en una apariencia de bandas de frecuencia (analizándola en diferentes escalas), sino que también representa el dominio del tiempo, es decir, los momentos de ocurrencia de ciertas frecuencias en la señal. Juntas, estas propiedades caracterizan la transformada rápida de ondículas, una posible alternativa a la transformada rápida habitual de Fourier . Al aceptar la condición de aleatoriedad de la señal X , la densidad espectral de sus amplitudes Y se calcula con base en el algoritmo de Yates: matriz Y =matriz(± X ), la matriz inversa X =matriz(± Y ) también es cierta .
El conjunto más común de transformadas wavelet discretas fue formulado por la matemática belga Ingrid Daubechies en 1988. Se basa en el uso de relaciones de recurrencia para calcular muestras cada vez más precisas de la función wavelet madre dada implícitamente con el doble de resolución al pasar al siguiente nivel (escala). En su trabajo seminal, Daubechies deriva una familia de wavelets, la primera de las cuales es la wavelet de Haar. Desde entonces, el interés en esta área ha crecido rápidamente, lo que ha llevado a la creación de numerosos descendientes de la familia original de ondículas Daubechies.
Otras formas de transformada de wavelet discreta incluyen la transformada de wavelet no diezmada (donde no se realiza diezmado de la señal), la transformada de Newland (donde una base de wavelet ortonormal se deriva de filtros de tipo "sombrero de copa" especialmente construidos en el dominio de la frecuencia). Las transformadas de ondículas de paquetes también están relacionadas con DWT. Otra forma de DWT es la transformada wavelet compleja.
La transformada wavelet discreta tiene muchas aplicaciones en las ciencias naturales, la ingeniería y las matemáticas (incluidas las aplicadas). DWT se usa más ampliamente en la codificación de señales, donde las propiedades de transformación se usan para reducir la redundancia en la representación de señales discretas, a menudo como el primer paso en la compresión de datos.
El DWP de la señal se obtiene aplicando un conjunto de filtros. Primero, la señal se pasa a través de un filtro de paso bajo (low-pass) con una respuesta de impulso , y se obtiene una convolución :
Al mismo tiempo, la señal se descompone mediante un filtro de paso alto (high-pass) . El resultado son coeficientes de detalle (después del filtro de paso alto) y coeficientes de aproximación (después del filtro de paso bajo). Estos dos filtros están relacionados y se denominan filtros de espejo en cuadratura (QMF).
Dado que se filtró la mitad del rango de frecuencia de la señal, entonces, de acuerdo con el teorema de Kotelnikov , los recuentos de la señal se pueden reducir 2 veces:
Esta expansión redujo a la mitad la resolución de tiempo debido a la destrucción de la señal. Sin embargo, cada una de las señales resultantes representa la mitad del ancho de banda de frecuencia de la señal original, por lo que la resolución de frecuencia se duplica.
Usando el operador de adelgazamiento
las sumas anteriores se pueden escribir más cortas:
Calcular una convolución completa seguida de adelgazamiento es un desperdicio de recursos computacionales.
El esquema de elevación es una optimización basada en la alternancia de estos dos cálculos.
Esta descomposición se puede repetir varias veces para aumentar aún más la resolución de frecuencia con una mayor reducción de los coeficientes después del filtrado de paso bajo y paso alto. Esto se puede representar como un árbol binario, donde las hojas y los nodos corresponden a espacios con diferente localización en tiempo y frecuencia. Este árbol representa la estructura del banco (peine) de filtros .
En cada nivel del diagrama anterior, la señal se descompone en frecuencias bajas y altas. Debido a la doble decimación, la longitud de la señal debe ser un múltiplo de , donde es el número de niveles de descomposición.
Por ejemplo, para una señal de 32 muestras con un rango de frecuencia de 0 a 3 niveles, la expansión dará 4 salidas en diferentes escalas:
Nivel | Frecuencias | Longitud de la señal |
---|---|---|
3 | … | cuatro |
… | cuatro | |
2 | … | ocho |
una | … | dieciséis |
Un ejemplo de una transformación wavelet unidimensional rápida, usando la wavelet de Haar , para una matriz de datos iniciales de tamaño 2 N (el número de etapas de filtro, respectivamente, es N) en C#:
public static List < Double > DirectTransform ( List < Double > SourceList ) { if ( SourceList . Count == 1 ) return SourceList ; Lista < Doble > RetVal = nueva Lista < Doble >(); Lista < Doble > TmpArr = nueva Lista < Doble >(); for ( int j = 0 ; j < ListaOrigen . Cuenta - 1 ; j += 2 ) { RetVal . Añadir (( ListaFuentes [ j ] - ListaFuentes [ j + 1 ]) / 2.0 ); TmpArr . Agregar (( ListaFuentes [ j ] + ListaFuentes [ j + 1 ]) / 2.0 ); } RetVal . AddRange ( DirectTransform ( TmpArr )); devuelve RetVal ; }Del mismo modo, un ejemplo de la transformada wavelet inversa:
public static List < Double > InverseTransform ( List < Double > SourceList ) { if ( SourceList . Count == 1 ) return SourceList ; Lista < Doble > RetVal = nueva Lista < Doble >(); Lista < Doble > TmpPart = nueva Lista < Doble >(); for ( int i = ListaFuentes . Cuenta / 2 ; i < ListaFuentes . Cuenta ; i ++) TmpPart . Agregar ( ListaFuente [ i ]); List < Double > SecondPart = InverseTransform ( TmpPart ); for ( int i = 0 ; i < SourceList . Count / 2 ; i ++) { RetVal . Agregar ( Segunda Parte [ i ] + ListaFuentes [ i ]); RetVal . Añadir ( Segunda Parte [ i ] - ListaFuentes [ i ]); } devuelve RetVal ; }
Al desarrollar el nuevo estándar JPEG-2000 , se eligió la transformada wavelet para la compresión de imágenes. La transformada wavelet en sí misma no comprime los datos, pero permite que la imagen de entrada se transforme de tal manera que su redundancia se pueda reducir sin un deterioro notable en la calidad de la imagen.
de compresión | métodos|||||||
---|---|---|---|---|---|---|---|
Teoría |
| ||||||
sin pérdidas |
| ||||||
Audio |
| ||||||
Imágenes |
| ||||||
Video |
|