ドキュメンテーション センター

  • 評価版
  • 製品アップデート

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

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 は、非ゼロ値を次の位置に含んでいます。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 = 2*w0 + 3*w1 + 4*w3 + 10*w6;
y1=fwht(w);
x1 = ifwht(y);

詳細

すべて展開する

アルゴリズム

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

参考文献

[1] Beauchamp, K.G., Applications of Walsh and Related Functions, Academic Press, 1984.

[2] Beer, T., Walsh Transforms, American Journal of Physics, Volume 49, Issue 5, May 1981.

参考

| | | |

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