dftmtx
ガロア体の離散フーリエ変換行列
構文
dm = dftmtx(alph)
説明
dm = dftmtx(alph)
は、ガロア スカラー alph
に関して、ガロア ベクトルでの離散フーリエ変換を表すガロア配列を返します。要素 alph
は、ガロア体 GF(2m) = GF(n+1) の 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) の 1 の原始 n 乗根でなければなりません。ここで、m は 1 ~ 8 の整数です。
アルゴリズム
要素 dm(a,b)
は alph^((a-1)*(b-1))
と同等です。
バージョン履歴
R2006a より前に導入