武汉大学学报(理学版) 2019, Vol. 65 Issue (6): 576-580
0

文章信息

姜恩华
JIANG Enhua
Walsh变换的一种快速并行算法
A Fast Parallel Algorithm of the Walsh Transform
武汉大学学报(理学版), 2019, 65(6): 576-580
Journal of Wuhan University(Natural Science Edition), 2019, 65(6): 576-580
http://dx.doi.org/10.14188/j.1671-8836.2019.06.007

文章历史

收稿日期:2018-03-02
Walsh变换的一种快速并行算法
姜恩华    
淮北师范大学 物理与电子信息学院,安徽 淮北 235000
摘要:在数字信号的逻辑处理基础上,利用布尔函数的分解方法,导出了离散Walsh变换的一种并行算法及其快速并行算法。对已有Walsh变换算法及本文算法的时间复杂度进行了分析,该分析表明本文算法时间复杂度有一定程度下降。当变量个数为20时,本文提出的Walsh并行算法速度是Walsh变换算法速度的29倍,快速并行算法速度是快速Walsh变换算法速度的210倍。本文提出的算法适用于高级语言编程实现。
关键词布尔函数    Walsh-Hadamard变换    谱技术    并行计算    
A Fast Parallel Algorithm of the Walsh Transform
JIANG Enhua    
School of Electronic Information, Huaibei Normal University, Huaibei 235000, Anhui, China
Abstract: Based on the logical processing of the digital signals, a parallel algorithm and its fast parallel algorithm of the Walsh transform have been developed by using decomposition method of the Boolean functions. The time complexities of the existing Walsh transform algorithms and the algorithms proposed in this paper were analyzed. It is shown that the time complexity of the algorithm in this paper has been reduced to a certain extent. When the number of variables is 20, the speed of Walsh parallel algorithm proposed in this paper is 29 times faster than the existing Walsh transformation algorithm. The speed of Walsh parallel fast algorithm proposed in this paper is 210 times faster than the existing Walsh transformation fast algorithm. The algorithm proposed in this paper is suitable for advanced language programming implementation.
Key words: Boolean function    Walsh-Hadamard transform    spectral techniques    parallel computing    
0 引言

近年来,正交变换的理论和方法引起了科学界和工程界的广泛关注[1~4],在信号处理领域内得到了广泛应用。离散Walsh变换是信号处理领域中应用比较广泛的一种正交变换[1, 5]。变换是信号处理系统的一种数学抽象。在数学上,可将变换看成一种算法或算子。离散正交变换算子的矩阵形式是正交矩阵。由于正交矩阵的逆矩阵的存在性,保证了信号的恢复或重建。另外,由于正交变换满足Parseval定理,保证了信号变换前后能量的守恒。原始信号经过正交变换后得到一组离散系数(谱系数),这组系数通常将原始信号的能量集中在少数系数上,减少了原始信号中各分量的相关性。虽然早在1923年Walsh已提出了完整的Walsh函数的数学理论[6],但Walsh变换真正被人们重视并付诸应用,则是在20世纪60年代快速算法[7]提出以后。它在近代数字逻辑理论和技术中的应用则是在20世纪70年代[8, 9]。目前,Walsh变换的理论和谱技术在计算机科学与技术、通信技术、图像压缩、密码学、近代数字逻辑理论,以及量子可逆逻辑电路等方面均获得了应用[2~4, 10]。由于基函数的排序不同,Walsh变换具有以不同序表示的形式。本文讨论了以Hadamard序表示的离散Walsh变换,或称为Walsh-Hadamard变换,并导出了这种变换的一种并行算法。这种离散正交变换的算子形式可用Hadamard矩阵表示。由于Hadamard矩阵有简单的递推公式,因此这种Walsh变换的应用很广泛。

对于离散Walsh变换的谱系数的计算,虽然有相应的快速算法,但当问题的规模n 增加时,其计算时间将迅速(指数阶)增加,此时应采用并行计算方法来解决此问题。本文将一维Walsh变换转换为二维Walsh变换,并将其用两个一维离散Walsh变换的并行算法计算,导出了离散Walsh变换算法的一种并行算法及其快速并行算法。该算法使计算Walsh谱系数的算法的时间复杂度降低,并且这种算法为实数域上的矩阵运算,适合用高级语言编程实现。

1 布尔函数的分解和Walsh-Hadamard变换的并行算法 1.1 离散Walsh-Hadamard变换

像三角函数系一样,Walsh函数系是一个完备的正交函数系[6],其中每个函数只取+1和-1两个值,其波形呈双极性矩形波波形。Hadamard矩阵可以由以Hadamard序排列的Walsh函数WalH (kθ)的波形对归一化时间θθ 不一定是时间)的主值区间[0,1),以N=2nn 为正整数)等份均匀采样求得。例如,当n=3时,对前8个WalH (kθ)函数的波形以N=8等份均匀采样,得到以Hadamard序排列的离散Walsh函数为WalH (km),其中,km = 0,1,⋯,N-1。将它们排列成一个8阶的矩阵,则得一个8阶的Hadamard矩阵H3,利用矩阵的Kronecker乘积运算(也称直积运算),以符号“⊗”表示这种运算,可将它表示为

式中H1H2分别为2阶和4阶的Hadamard矩阵。利用递推公式可得2n阶Hadamard矩阵为

(1)

若把一个离散时间信号fm),m=0,1,…,2n-1,n 为正整数,看成相应的信号空间的一个点,即一个列向量f= [ f (0),f (1),⋯,f (2n-1)]T,则得该信号的离散Walsh变换和离散Walsh反变换如下

(2)

式中S= [S (0),S (1),⋯,S (2n-1)]T,称为谱系数列向量,其中各分量称为谱系数。

1.2 布尔函数的分解

布尔(Boolean)函数即二值逻辑函数,简称逻辑函数,其变量和函数均在布尔集合{0,1}上取值。对于一个定义在变量集合X= {x1x2,⋯,xn}上的n 变量函数f (X),由Shannon展开定理,可导出它在布尔域上的最小项展开式为

(3)

定义

(4)

则得,最小项为(e1e2en2(下标2表示二进制数)的十进制数表示,即j = ,与之相应的系数为cj =f (e1e2,⋯,en)。令 则将(3)式写成矩阵形式为

(5)

在变量集合X上取划分

(6)

其中,B1B2 = XB1B2 = ∅,以子集合B1B2中的变量分别组成两组最小项:

并令则得

(7)

由(5)式得该函数的最小项展开式为

(8)

将矩阵C按划分式(6)重新排序为一个矩阵,称之为划分矩阵,如下

(9)

则得

(10)

若令

(11)

则得

(12)

亦即

(13)

(13)式即为原函数按照划分式(6)的Shannon展开(分解)式。

1.3 Walsh变换的并行算法

在数字信号逻辑处理中,常把一个n 变量布尔函数f (x1x2,⋯,xn)看作一个数字信号fm)进行分析、设计或其他处理,其中,m = (x1 x2xn)2,0 ≤ m ≤ (2n - 1)。然而,对于数字逻辑研究领域中所涉及的上述问题,当函数中的变量数目增多时,这些问题在布尔空间直接解决是较困难的,而在Walsh谱空间解决则较有效。当从布尔空间变换到Walsh谱空间时,函数的取值作0 → 1,1 → -1变换,其运算为实数域上的乘法运算和加法运算。将函数f (x1x2,⋯,xn)之值cm以0 → 1,1 → -1变换,得到相应的值amm = 0,1,⋯,(2n - 1)。令列向量为F= [a0a1,⋯,a2n-1]T,则得该布尔函数的离散Walsh变换和离散Walsh反变换如下

(14)

注意到,上述离散Walsh变换和离散Walsh反变换的矩阵形式是以数字信号的逻辑处理中的形式来定义的,(14)式中2n 阶的Hadamard矩阵Hn 由下式定义:

(15)

谱系数列向量S= [S0SnSn-1S(n-1) nSn-2,⋯, S12n]TSj下标的取法如下:当j=0时,Sj= S0;当j ≠ 0时,Sj的一组下标为j = (x1 x2xn - 1xn)2中取值为1的变量的下标组合,例如(x1 x2xn - 1xn)2 = (00⋯01)2表示Sn,(00⋯10)2表示Sn - 1,(00⋯11)2表示S(n- 1) n 等。各阶谱系数的意义如下:S0称为0阶谱系数,它表示f (X)与常量的相关性(相似程度),若S0 =+2n (由于变换矩阵Hn 的正交性,其余的谱系数必均为0),表示f (X)为常量0;若S0 = -2n,表示f (X)为常量1。事实上,S0表示函数f (X)中的常量0的个数与常量1的个数之差。Si称为一阶谱系数,它表示f (X)与相应的变量xi的相关性,若Si= +2n,则表示f (X)= xi;若Si= -2n,则表示f (X)= xi,1 ≤ in。其余的谱系数称为高阶谱系数,它们分别表示函数f (X)与相应的异或函数的相关性。例如Sij称为二阶谱系数,ij,1 ≤ ijn,它们表示函数f (X)与相应的异或函数(xixj)的相关性。又如,S12n 称为n 阶谱系数,它表示函数f (X)与异或函数(x1x2⊕… ⊕xn)的相关性。

为了导出Walsh变换的并行算法,按照划分式(6),将列向量F重新排列为一个2r × 2n-r矩阵为

(16)

令各子函数f0 (B2),f1 (B2),⋯,f2r- 1 (B2)的列向量分别为

(17)

并令各个子函数f0 (B2),f1 (B2),⋯,f2r- 1 (B2)的Walsh谱系数列向量分别为

(18)

(18)式中各子函数(0 ≤ k ≤ (2r - 1))的谱系数用上标表示。由Walsh变换的公式,得各子函数的Walsh变换式为

(19)

或以矩阵形式表示为

(20)

其中子函数谱系数矩阵SF 为一个2n- r × 2r 矩阵,该矩阵的每一列对应一个子函数的谱系数列向量 SFk。和(8)式相类比,利用Kronecker矩阵乘积的性质,将(14)式中第一式按照划分式(6)表示为

(21)

并且按照划分式(6)将原函数f (X)的谱系数列向量S排列成一个矩阵为

(22)

该矩阵的纵坐标和横坐标分别为(x1 x2xr)2和(xr + 1 xr + 2xn)2,谱系数下标的编码方法如上所述。将(22)式用2r 阶Hadamard逆矩阵[Hr]-1 = (1/2r) ⋅ Hr 相乘,即将B1的变量由谱域反变换到布尔域,作为子函数fk(X)所含原函数最小项的公因子Ik(B1),0 ≤ k ≤ (2r - 1),剩余子函数谱系数矩阵的转置矩阵[SF]T

(23)

该转置矩阵[SF]T的每一行对应一个子函数谱系数行向量,即[SFk]T,0 ≤ k ≤ (2r - 1)。将(23)式两边左乘矩阵Hr,则得 Sre = Hr ⋅ [SF]T(24)利用(20)式,则得

(25)

利用Hadamard矩阵的性质,并利用(20)式及(23)式,即可推得

(26)

并且按照划分式(6)将原函数f (X)分解得到各个子函数的谱系数,可以利用(23)式由原函数f (X)的谱系数矩阵Sre求得;利用(24)式,可以由各子函数的谱系数行向量构成的矩阵[SF]T求得原函数f (X)的谱系数矩阵Sre。(25)式和(26)式分别为Walsh变换并行算法公式和Walsh反变换并行算法公式,可以利用Hadamard矩阵直接计算得到,也可以利用快速Walsh变换算法实现。

1.4 Walsh变换的快速并行算法

求给定函数的Walsh谱系数的快速并行算法,可以由(20)式和(24)式,分别利用快速Walsh变换并行算法的迭代过程流图[11]通过两步计算实现。

下面以一个简单的例子,说明该快速并行算法的一般步骤。

例1   求4变量布尔函数f (X)= Σ(0, 1, 2, 4, 6, 9, 10, 11, 13)的Walsh谱系数。

计算步骤如下:

1)取划分X= {B1B2}= {x1x2x3x4 },n= 4,r=2。

2)由函数f (X)的函数值,按照上述划分排列成矩阵Cre,将矩阵Cre的元素值0 → 1,1 → -1变换,得到谱域值矩阵Fre,分别为

3)计算SF = Hn-r ⋅ [Fre]T。其迭代过程流图如图 1所示。图 1中的连线表示对应的操作是将前行各元素与分别乘以“ +1”(或“-1”)后的后行各元素相加形成新的(迭代后的)前行(或后行)。

图 1 由[Fre]T计算SF 的迭代过程流图(n=4,r=2) Fig. 1 The iterative process flow diagram of the calculating SF by the [Fre]T

4)计算Sre = Hr ⋅ [SF]T。其迭代过程流图如图 2所示。图 2中,Sre的纵坐标和横坐标分别为(x1 x2)2 = (00,01,10,11)2和(x3 x4)2 = (00,01,10,11)2,在矩阵Sre中各元素的编码方法如上所述。

图 2 由[SF]T计算Sre的迭代过程流图(n=4,r=2) Fig. 2 The iterative process flow diagram of the calculating Sre by the [SF]T(n=4, r=2)

将矩阵Sre进行矩阵的拉直运算,即得由(14)式第1式求得的谱系数列向量

2 算法的时间复杂度分析 2.1 Walsh变换算法的时间复杂度

N=2nn 为变量个数(或问题的规模),计算N=2n 点的Walsh谱系数,需做N2次乘法,N (N - 1)次加法,时间复杂度为

2.2 快速Walsh变换算法的时间复杂度

计算N=2n 点的Walsh谱系数,需做N log2 N 次加、减法运算,时间复杂度为

2.3 Walsh变换并行算法的时间复杂度

r+q=nN1=2rN2=2q,计算N=2n 点的Walsh谱系数,需做(N1 N2 2 + N2 N2 1)次乘法,(N1 N2 (N2 - 1)+ N2 N1 (N1 - 1))次加法。当n 为偶数时,取r=q=n/2,时间复杂度为。当n 为奇数时,取r =(n-1)/2,q=(n+1)/2,计算N=2n 点的Walsh谱系数,时间复杂度为

2.4 Walsh变换的快速并行算法的时间复杂度

n 为偶数时,取r=q=n/2,计算N =2n 点的Walsh谱系数,需做(2q log2 2q + 2r log2 2r)次向量加、减法运算,时间复杂度为

n 为奇数时,取r=(n-1)/2,q=(n+1)/2,计算N=2n 点的Walsh谱系数,时间复杂度为

已有Walsh变换算法与本文算法计算次数的比较,见表 1

表1 本文算法与已有Walsh变换算法计算次数的比较 Table 1 Comparison the calculation times between our algorithm and the exiting Walsh transformation algorithms
算法 n
10 20
Walsh变换 2×220 2×240
快速Walsh变换 10×210 20×220
Walsh变换并行* 4×215 4×230
Walsh变换快速并行* 10×25 20×210
注: 标注*的算法是本文提出的

把变换的计算速度定义为每秒完成的计算次数,由表 1可以看出当变量个数n=10时,本文导出的并行算法速度是Walsh变换算法速度的24倍,当n =20时,则为29倍;当变量个数n=10时,本文导出的并行快速算法速度是快速Walsh变换算法速度的25倍,当变量个数n=20时,则为210倍。

3 结语

本文基于布尔函数的分解方法,导出了计算Walsh谱系数的一种并行计算方法及其快速并行算法。这两种算法降低了计算的时间复杂度,适用于高级语言编程计算,并且为Walsh变换的并行算法和并行快速算法的硬件实现提供了理论基础。

参考文献
[1]
PARK C S. Recursive algorithm for sliding Walsh Hadamard transform[J]. IEEE Transactions on Signal Processing, 2014, 62(11): 2827-2836. DOI:10.1109/TSP.2014.2316146
[2]
KARPOVSKY M G, STANKOVIC R S, ASTOLA J T. Spectral Techniques for Design and Testing of Com puter Hardware[DB/OL].[2018-02-01]. http://www.bu.edu/reliable/publications/.
[3]
MARTINA M, MASERA G. State metric compression techniques for Turbo decoder architectures[J]. IEEE Transactions on Circuits and Systems, 2011, 58(5): 1119-1128. DOI:10.1109/TCSI.2010.2090566
[4]
PANG S Q, WANG J, WANG X N, et al. Application of orthogonal array and Walsh transform in resilient function[J]. Chinese Journal of Electronics, 2018, 27(2): 281-286. DOI:10.1049/cje.2017.09.011
[5]
KARPOVSKY M G. Finite Orthogonal Series in the Design of Digital Devices[M]. New York: John Wiley, 1976.
[6]
WALSH J L. A closed set of orthogonal functions[J]. American Journal of Mathematics, 1923, 45: 5-24. DOI:10.2307/2387224
[7]
SHANKS J. Computation of the fast Walsh-Fourier transform[J]. IEEE Trans on Computers, 1969, 18(5): 457-459. DOI:10.1109/T-C.1969.222685
[8]
HURST S L. The Logical Processing of Digital Signals[M]. New York: Grame-Russak, 1978.
[9]
HURST S L, MILLER D M, MUZIO J C. Spectral Techniques in Digital Logic[M]. London: Academic Press Inc, 1985.
[10]
MILLER D M. Spectral and Two-place Decomposition Techniques in Reversible Logic[DB/OL].[2018-02-01]. https://ieeexplore.ieee.org/document/1186906/. DOI: 10.1109/MWSCAS.2002.1186906.
[11]
姜文彬. 利用谱方法的多路选择器树形网络设计[J]. 系统工程与电子技术, 2001, 23(8): 92-97.
JIANG W B. Designing of multiplexer tree-type logic networks by spectral means[J]. Systems Engineering and Electronics, 2001, 23(8): 92-97. DOI:10.3321/j.issn:1001-506X.2001.08.028 (Ch).