Szybka transformata Walsha-Hadamarda
W matematyce obliczeniowej uporządkowana przez Hadamarda szybka transformata Walsha-Hadamarda ( FWHT h ) jest wydajnym algorytmem do obliczania transformaty Walsha-Hadamarda (WHT). Naiwna implementacja WHT rzędu złożoność obliczeniową O ( ) displaystyle FWHT h wymaga tylko dodawania lub odejmowania
FWHT h to algorytm typu „dziel i zwyciężaj” który rekurencyjnie dzieli podatek u źródła o rozmiarze na dwa mniejsze WHT o rozmiarze . Ta implementacja z rekurencyjną definicją macierzy Hadamarda : :
Czynniki można zgrupować lub nawet
Uporządkowana sekwencyjnie , znana również jako uporządkowana przez Walsha, szybka transformata Walsha-Hadamarda, FWHT w , jest uzyskiwana przez obliczenie FWHT h jak powyżej, a następnie przestawienie wyników.
implementacja transformaty Walsha-Hadamarda wynika z rozkładu macierzy transformacji Hadamarda gdzie A to -ty z .
Przykładowy kod Pythona
0
def fwht ( a ) -> None : """Szybka transformata Walsha-Hadamarda w miejscu tablicy a.""" h = 1 while h < len ( a ): # wykonaj FWHT dla i w zakresie ( , len ( a ), godz * 2 ): dla j w przedziale ( ja , ja + godz ): x = za [ j ] y = za [ j + godz ] za [ jot ] = x + y za [ j + godz ] = x - y # znormalizuj i zwiększ a /= 2 h *= 2
Zobacz też
Linki zewnętrzne
- Charles Constantine Gumas, Sto lat, szybka transformacja Hadamarda okazuje się przydatna w komunikacji cyfrowej