ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

fwht

高速ウォルシュ・アダマール変換

構文

y = fwht(x)
y = fwht(x,n)
y = fwht(x,n,ordering)

説明

y = fwht(x) では、入力 x の離散ウォルシュ・アダマール変換の係数が返されます。x が行列の場合、FWHT では x の各列が計算されます。FWHT は、2 のべき乗数をもつ信号にのみ作用します。x の長さが 2 のべき乗より短い場合は、次に大きい 2 のべき乗になるようにゼロで埋められた後、処理されます。

y = fwht(x,n) は、n 点での離散ウォルシュ・アダマール変換を返します。ここで、n は 2 のべき乗でなければなりません。xn は同じ長さでなければなりません。xn より長い場合は、x は切り捨てられます。xn より短い場合は、x にゼロが加えられます。

y = fwht(x,n,ordering) では、返されるウォルシュ・アダマール変換係数に使用する次数が指定されます。次数を指定するには、長さ n の値を入力するか、n に空ベクトル ([]) を指定して既定値を使用します。次数に対して有効な値は、以下の文字列です。

次数説明
'sequency'交差数値の昇順の係数で、各行にはさらにゼロクロッシングが含まれます。これは既定の次数です。
'hadamard'標準の Hadamard order の係数。
'dyadic'Gray code order の係数で、ある係数からその隣の係数で 1 ビットの変更が発生します。

Walsh 関数と ordering の詳細は、「ウォルシュ・アダマール変換」を参照してください。

すべて折りたたむ

信号のウォルシュ・アダマール変換

この例は、単純な入力信号とそのウォルシュ・アダマール変換を示します。

x = [19 -1 11 -9 -7 13 -15 5];
y = fwht(x)
y =

     2     3     0     4     0     0    10     0

y の 0、1、3 および 6 の位置の値は非ゼロです。交差数値 0、1、3、6 でウォルシュ関数を形成して、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 =

    19    -1    11    -9    -7    13   -15     5

詳細

すべて折りたたむ

アルゴリズム

高速ウォルシュ・アダマール変換アルゴリズムは、FFT におけるクーリー・テューキーのアルゴリズムとほぼ同じです。いずれも変換係数の決定にバタフライ構造を使用します。詳細は、参考文献を参照してください。

参考文献

[1] Beauchamp, Kenneth G. Applications of Walsh and Related Functions: With an Introduction to Sequency Theory. London: Academic Press, 1984.

[2] Beer, Tom. “Walsh Transforms.” American Journal of Physics. Vol. 49, 1981, pp. 466–472.

参考

| | | |

この情報は役に立ちましたか?