stringtranslate.com

Transformada rápida de Walsh-Hadamard

La transformada rápida de Walsh-Hadamard aplicada a un vector de longitud 8
Ejemplo para el vector de entrada (1, 0, 1, 0, 0, 1, 1, 0)

En matemáticas computacionales, la transformada rápida de Walsh-Hadamard ordenada por Hadamard ( FWHT h ) es un algoritmo eficiente para calcular la transformada de Walsh-Hadamard (WHT). Una implementación ingenua del WHT del orden tendría una complejidad computacional de O( ) . El FWHT h sólo requiere sumas o restas.

El FWHT h es un algoritmo de divide y vencerás que descompone recursivamente un WHT de tamaño en dos WHT de tamaño más pequeños . [1] Esta implementación sigue la definición recursiva de la matriz de Hadamard :

Los factores de normalización para cada etapa pueden agruparse o incluso omitirse.

La transformada rápida de Walsh-Hadamard ordenada por secuencia , también conocida como transformada rápida de Walsh-Hadamard, FWHT w , se obtiene calculando el FWHT h como se indicó anteriormente y luego reorganizando las salidas.

Una implementación simple, rápida y no recursiva de la transformada de Walsh-Hadamard se deriva de la descomposición de la matriz de transformada de Hadamard como , donde A es la raíz m -ésima de . [2]

Código de ejemplo de Python

def  fwht ( a )  ->  Ninguno : """Transformada rápida de Walsh-Hadamard in situ de la matriz a.""" h = 1 while h < len ( a ): # realice FWHT para i en el rango ( 0 , len ( a ), h * 2 ): para j en el rango ( i , i + h ): x = a [ j ] y = a [ j + h ] a [ j ] = x + y a [ j + h ] = x -y # normalizar e incrementar a /= math . raíz cuadrada ( 2 ) h *= 2                                                   

Ver también

Referencias

  1. ^ Fino, BJ; Algazi, VR (1976). "Tratamiento matricial unificado de la transformada rápida de Walsh-Hadamard". Transacciones IEEE en computadoras . 25 (11): 1142-1146. doi :10.1109/TC.1976.1674569. S2CID  13252360.
  2. ^ Yarlagadda y Hershey, "Análisis y síntesis de la matriz Hadamard", 1997 (Springer)

Enlaces externos