FWHT

快速沃尔什 - 阿达玛变换

描述

例子

y= FWHT(x)返回输入的离散沃尔什-阿达玛变换的系数x

y= FWHT(x,n)返回n-点离散沃尔什-阿达玛变换。

y= FWHT(x,n,订购)指定返回的Walsh-Hadamard转换系数使用的顺序。

例子

全部折叠

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

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

y包含位置0、1、3和6上的非零值。形成具有顺序值0、1、3和6的Walsh函数来重新创建x。

W0 = [1 1 1 1 1 1 1 1];W1 = [1 1 1 1 -1 -1 -1 -1];W3 = [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是一个矩阵,快速的Walsh-Hadamard变换是计算在每一列上的xFWHT只作用于长度等于2的幂的信号。如果x小于2的幂,其长度被用零填充到处理前的两个下一个更大的功率。

离散沃尔什阿达玛变换中的点,指定为一个正的偶数标量。xn必须是相同的长度。如果x长于n,x被截断。如果x短于n,x用零填充。

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

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

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

输出参数

全部折叠

离散沃尔什-阿达玛变换,返回为一个矩阵或一个向量。

算法

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

参考

比尚,肯尼斯·G。沃尔什函数及其相关函数的应用:介绍序列理论。伦敦:学术出版社,1984。

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

扩展功能

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

另请参阅

||||

介绍了R2008b