本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

Walsh-Hadamard 变换

Walsh-Hadamard 变换是一种将信号分解成一组基函数的非正弦类正交变换方法。这些基函数是 Walsh 函数,它们是值为 +1 或 –1 的矩形波或方波。Walsh-Hadamard 变换也称为 Hadamard 变换(请参阅 MATLAB 软件中的 hadamard 函数)、Walsh 变换或 Walsh-Fourier 变换。

前八个 Walsh 函数具有以下值:

索引Walsh 函数值
01 1 1 1 1 1 1 1
11 1 1 1 -1 -1 -1 -1
21 1 -1 -1 -1 -1 1 1
31 1 -1 -1 1 1 -1 -1
41 -1 -1 1 1 -1 -1 1
51 -1 -1 1 -1 1 1 -1
61 -1 1 -1 -1 1 -1 1
71 -1 1 -1 1 -1 1 -1

Walsh-Hadamard 变换返回列率值。列率是一种更广义的频率,定义为每单位时间间隔平均过零次数的一半。每个 Walsh 函数都有唯一的列率值。您可以使用返回的列率值来估计原始信号中的信号频率。

用来存储 Walsh 函数的排序方案有三种:列率法,Hadamard 法和并元法。列率排序用于信号处理应用,其中 Walsh 函数的顺序如上表所示。Hadamard 排序用于控制应用,函数顺序为 0、4、6、2、3、7、5、1。并元或格雷码排序用于数学,函数顺序为 0、1、3、2、6、7、5、4。

Walsh-Hadamard 变换用于许多应用,如图像处理、语音处理、滤波和功率谱分析。它对于降低带宽存储要求和扩频分析非常有用。像 FFT 一样,Walsh-Hadamard 变换有快速版本,即快速 Walsh-Hadamard 变换 (fwht)。与 FFT 相比,FWHT 所需的存储空间更少,并且计算速度更快,因为它只使用实数加法和减法,而 FFT 需要复数值。与 FFT 相比,FWHT 能够用更少的系数更精确地表示具有明显不连续性的信号。FWHT 和逆 FWHT (ifwht) 是对称的,因此使用相同的计算过程。长度为 N 的信号 x(t) 的 FWHT 和 IFWHT 定义为:

yn=1Ni=0N1xiWAL(n,i),xi=i=0N1ynWAL(n,i),

,其中 i = 0,1, …, N – 1WAL(n,i) 是 Walsh 函数。与 FFT 的 Cooley-Tukey 算法相似,这 N 个元素被分解成元素个数为 N/2 的两组,然后用蝶形结构合并以形成 FWHT。对于图像(其输入通常是二维信号),其 FWHT 系数的计算方法是先横向计算行,再纵向计算列。

对于以下简单信号,得到的 FWHT 表明 x 是使用列率值为 0、1、3 和 6 的 Walsh 函数创建的,这些值是变换后的 x 的非零索引。使用逆 FWHT 可重新创建原始信号。

x = [4 2 2 0 0 2 -2 0]
y = fwht(x)
x =

     4     2     2     0     0     2    -2     0

y =

     1     1     0     1     0     0     1     0
x1 = ifwht(y)
x1 =

     4     2     2     0     0     2    -2     0

另请参阅

|

相关主题