Быстрое преобразование Уолша – Адамара - Fast Walsh–Hadamard transform

Быстрое преобразование Уолша – Адамара, примененное к вектору длиной 8
Пример для входного вектора (1, 0, 1, 0, 0, 1, 1, 0)

В вычислительной математике Адамар приказал быстрое преобразование Уолша – Адамара (FWHTчас) является эффективным алгоритм вычислить Преобразование Уолша-Адамара (БЕЛЫЙ). Наивная реализация WHT порядка имел бы вычислительная сложность из O (). FWHTчас требуется только сложения или вычитания.

FWHTчас это разделяй и властвуй алгоритм который рекурсивно разбивает WHT размера на два WHT меньшего размера . [1] Эта реализация следует рекурсивному определению Матрица Адамара :

В Коэффициенты нормализации для каждого этапа могут быть сгруппированы вместе или даже опущены.

В заказанная последовательность, также известное как упорядоченное по Уолшу быстрое преобразование Уолша – Адамара, FWHTш, получается путем вычисления FWHTчас как указано выше, а затем переставляем выходы.

Простая быстрая нерекурсивная реализация преобразования Уолша-Адамара следует из разложения матрицы преобразования Адамара как , где A - корень m-й степени из . [2]

Пример кода Python

def fwht(а) -> Никто:    "" "Быстрое преобразование Уолша – Адамара на месте массива a." ""    час = 1    пока час < len(а):        за я в классифицировать(0, len(а), час * 2):            за j в классифицировать(я, я + час):                Икс = а[j]                у = а[j + час]                а[j] = Икс + у                а[j + час] = Икс - у        час *= 2

Смотрите также

Рекомендации

  1. ^ Fino, B.J .; Альгази, В. Р. (1976). "Единая матричная обработка быстрого преобразования Уолша-Адамара". Транзакции IEEE на компьютерах. 25 (11): 1142–1146. Дои:10.1109 / TC.1976.1674569.
  2. ^ Ярлагадда и Херши, "Анализ и синтез матрицы Адамара", 1997 (Springer)

внешняя ссылка