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]