沃尔什-哈达玛变换
沃尔什-哈达玛变换是一种将信号分解成一组基函数的非正弦类正交变换方法。这些基函数是沃尔什函数,它们是值为 +1 或 –1 的矩形波或方波。沃尔什-哈达玛变换也称为哈达玛变换(请参阅 MATLAB 软件中的 hadamard
函数)、沃尔什变换或沃尔什-傅里叶变换。
前八个沃尔什函数具有以下值:
索引 | 沃尔什函数值 |
---|---|
0 | 1 1 1 1 1 1 1 1 |
1 | 1 1 1 1 -1 -1 -1 -1 |
2 | 1 1 -1 -1 -1 -1 1 1 |
3 | 1 1 -1 -1 1 1 -1 -1 |
4 | 1 -1 -1 1 1 -1 -1 1 |
5 | 1 -1 -1 1 -1 1 1 -1 |
6 | 1 -1 1 -1 -1 1 -1 1 |
7 | 1 -1 1 -1 1 -1 1 -1 |
沃尔什-哈达玛变换返回列率值。列率是一种更广义的频率,定义为每单位时间间隔平均过零次数的一半。每个沃尔什函数都有唯一的列率值。您可以使用返回的列率值来估计原始信号中的信号频率。
用来存储沃尔什函数的排序方案有三种:列率法,哈达玛法和并元法。列率排序用于信号处理应用,其中沃尔什函数的顺序如上表所示。哈达玛排序用于控制应用,函数顺序为 0、4、6、2、3、7、5、1。并元或格雷码排序用于数学,函数顺序为 0、1、3、2、6、7、5、4。
沃尔什-哈达玛变换用于许多应用,如图像处理、语音处理、滤波和功率谱分析。它对于降低带宽存储要求和扩频分析非常有用。像 FFT 一样,沃尔什-哈达玛变换有快速版本,即快速沃尔什-哈达玛变换 (fwht
)。与 FFT 相比,FWHT 所需的存储空间更少,并且计算速度更快,因为它只使用实数加法和减法,而 FFT 需要复数值。与 FFT 相比,FWHT 能够用更少的系数更精确地表示具有明显不连续性的信号。FWHT 和逆 FWHT (ifwht
) 是对称的,因此使用相同的计算过程。长度为 N 的信号 x(t) 的 FWHT 和 IFWHT 定义为:
,其中 i = 0,1, …, N – 1 和 WAL(n,i) 是沃尔什函数。与 FFT 的库利-图基算法相似,这 N 个元素被分解成元素个数为 N/2 的两组,然后用蝶形结构合并以形成 FWHT。对于图像(其输入通常是二维信号),其 FWHT 系数的计算方法是先横向计算行,再纵向计算列。
对于以下简单信号,得到的 FWHT 表明 x
是使用列率值为 0、1、3 和 6 的沃尔什函数创建的,这些值是变换后的 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