主要内容

FWHT.

快速沃尔什 - 哈马德变换

描述

例子

y= fwht(x返回输入离散Walsh-Hadamard变换的系数x

y= fwht(xn返回n-点离散Walsh-Hadamard变换。

y= fwht(xn订购指定返回Walsh-Hadamard转换系数的使用顺序。

例子

全部折叠

这个例子展示了一个简单的输入信号及其Walsh-Hadamard变换。

X = [19 -1 11 -9 -7 13 -15 5];y = fwht (x)
y =1×81 . 2 3 0 4 0 0 10 0

y包含位置0、1、3和6的非零值。用序列值0、1、3和6组成Walsh函数以重新创建x。

W0 = [1 1 1 1 11 1 1];W1 = [1 1 1 1 1 -1 -1 -1 -1];W3 = [1 1 1 -1 -1 1 1 -1 -1];W6 = [1 -1 1 -1 -1 1 -1 1];w = y(0 + 1)* w0 + y(1 + 1)* w1 + y(3 + 1)* w3 + y(6 + 1)* w6
w =1×819 -1 11 -9 -7 13 -15 5

通过编程提取非零值和Walsh函数,获得相同的结果。

ww = fwht(眼(长度(y))) *长度(y)
ww =8×81 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
新西兰=找到(y);w =总和(y(新西兰)”。* ww(新西兰:))
w =1×819 -1 11 -9 -7 13 -15 5

输入参数

全部折叠

输入信号,指定为矩阵或向量。如果x是一个矩阵,对?的每一列计算Fast Walsh-Hadamard变换xFWHT.只对长度为2的幂的信号起作用。如果长度x小于2的功率,其长度用零填充到下一个更大的两个功率在加工之前。

离散Walsh Hadamard变换中的点,指定为正偶数标量。xn必须是相同的长度。如果x长于nx被截断。如果x短于nx是用零填充的。

Walsh Hadamard变换系数的阶数,指定为“顺序”“阿达玛”或者“二元”.要指定顺序,必须为长度输入一个值n或者,要使用默认行为,请指定一个空向量([])n.排序的有效值如下:

订购 描述
“顺序” 系数的顺序递增的序列值,其中每一行有一个额外的零交叉。这是默认的顺序。
“阿达玛” 普通Hadamard订单中的系数。
“二元” 按格雷码顺序排列的系数,即从一个系数到下一个系数发生一个比特的变化。

有关Walsh函数和排序的更多信息,请参见Walsh-Hadamard变换

输出参数

全部折叠

离散Walsh-Hadamard变换,以矩阵或向量的形式返回。

算法

快速Walsh-Hadamard变换算法类似于用于FFT的Cooley-Tukey算法。两者都使用蝴蝶结构来确定转换系数。详情请参阅参考资料。

参考

比彻姆(Kenneth G. Beauchamp)Walsh和相关函数的应用:序列理论导论.伦敦:学术出版社,1984。

[2]啤酒,汤姆。“沃尔什变换”。美国物理学杂志.第49卷,1981年,466-472页。

扩展功能

C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。

另请参阅

||||

介绍了R2008b