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

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

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

dftmtx

ガロア体の離散フーリエ変換行列

構文

dm = dftmtx(alph)

説明

dm = dftmtx(alph) は、ガロア スカラー alph に関して、ガロア ベクトルでの離散フーリエ変換を表すガロア配列を返します。要素 alph は、ガロア体 GF(2m) = GF(n+1) の n 次の原子根です。つまり、n は alph^k が 1 に等しい k の最小の正の値でなければなりません。離散フーリエ変換のサイズは n で、dm は n 行 n 列の配列です。配列 dm は、dm と長さ n のガロア列ベクトルの乗算はそのベクトルの変換であるという意味で変換を表します。

    メモ:   逆離散フーリエ変換行列は、dftmtx(1/alph) です。

以下の例は、要素 gf(3,4) に関して、離散フーリエ変換とその逆変換を説明します。例は、n 乗のみが 1 と等しいことを証明するために、要素の最初の n 乗を調べます。その後で、ランダム ガロア ベクトルを変換し、変換を元に戻し、結果をチェックします。

m = 4;
n = 2^m-1;
a = 3;
alph = gf(a,m);
mp = minpol(alph);
if (mp(1)==1 && isprimitive(mp)) % Check that alph has order n.
    disp('alph is a primitive nth root of unity.')
    dm = dftmtx(alph);
    idm = dftmtx(1/alph);
    x = gf(randi([0 2^m-1],n,1),m);
    y = dm*x; % Transform x.
    z = idm*y; % Recover x.
    ck = isequal(x,z)
end

出力は以下のようになります。

alph is a primitive nth root of unity.

ck =

     1

制限

この関数が機能するガロア体の要素数は、256 以下でなければなりません。言い換えると、alph はガロア体 GF(2m) の n 次の原始根でなければなりません。ここで、m は 1 ~ 8 の整数です。

詳細

すべて展開する

アルゴリズム

要素 dm(a,b)alph^((a-1)*(b-1)) と同等です。

参考

|

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