📜  Python|快速 Walsh Hadamard 变换

📅  最后修改于: 2022-05-13 01:55:03.821000             🧑  作者: Mango

Python|快速 Walsh Hadamard 变换

快速 Walsh Hadamard 变换是用于计算 Walsh Hadamard 变换 (WHT) 的Hadamard 有序高效算法。正常的 WHT 计算具有N = 2 m的复杂度,但使用 FWHT 将计算减少到O(n 2 ) 。 FWHT 需要O(n logn)加减运算。它是一种分而治之的算法,它递归地分解 WHT。

sympy.discrete.transforms.fwht( ) :它可以执行Walsh Hadamard 变换 (WHT) 。此方法使用 Hadamard 序列排序。
由于基数 2 FWHT 要求采样点编号为 2 的幂,因此该序列会自动在右侧填充零。

Parameters : 
-> seq : [iterable] sequence on which WHT is to be applied.

Returns : 
Fast Walsh Hadamard Transform Transform

示例 #1:

Python3
# import sympy
from sympy import fwht
 
# sequence
seq = [23,
       56,
       12,
       555]
 
# hwht
transform = fwht(seq)
print ("Transform  : ", transform)


Python3
# import sympy
from sympy import fwht
 
# sequence
seq = [15, 21, 13, 44]
 
# hwht
transform = fwht(seq)
print ("Transform  : ", transform)


输出 :

Transform  :  [646, -576, -488, 510]

示例 #2:

Python3

# import sympy
from sympy import fwht
 
# sequence
seq = [15, 21, 13, 44]
 
# hwht
transform = fwht(seq)
print ("Transform  : ", transform)

输出 :

Transform  :  [93, -37, -21, 25]