Generalisation of Fourier transform to any ring
数学 において 、 環上の離散フーリエ変換は、 値が通常は 複素数である関数の、任意の 環 上の 離散フーリエ変換 (DFT) を一般化したものです 。
定義 R を任意 の 環 、 を整数、を 主 n 乗根とし 、次のように定義されるものとする。 [1] n ≥ 1 {\displaystyle n\geq 1} α ∈ R {\displaystyle \alpha \in R}
α n = 1 ∑ j = 0 n − 1 α j k = 0 for 1 ≤ k < n {\displaystyle {\begin{aligned}&\alpha ^{n}=1\\&\sum _{j=0}^{n-1}\alpha ^{jk}=0{\text{ for }}1\leq k<n\end{aligned}}} 1
離散フーリエ変換は、 R の n 個の要素の組 を、次の式に従って R の 別の n 個の要素の組に写像します ( v 0 , … , v n − 1 ) {\displaystyle (v_{0},\ldots ,v_{n-1})} ( f 0 , … , f n − 1 ) {\displaystyle (f_{0},\ldots ,f_{n-1})}
f k = ∑ j = 0 n − 1 v j α j k . {\displaystyle f_{k}=\sum _{j=0}^{n-1}v_{j}\alpha ^{jk}.} 2
慣例により、タプルは 時間領域 にあると言われ 、インデックス jは 時間 と呼ばれます 。タプルは 周波数領域 にあると言われ 、インデックス kは 周波数 と呼ばれます 。タプルは スペクトル とも呼ばれます。この用語は 、 信号処理 におけるフーリエ変換の 応用に由来しています ( v 0 , … , v n − 1 ) {\displaystyle (v_{0},\ldots ,v_{n-1})} ( f 0 , … , f n − 1 ) {\displaystyle (f_{0},\ldots ,f_{n-1})} ( f 0 , … , f n − 1 ) {\displaystyle (f_{0},\ldots ,f_{n-1})} ( v 0 , … , v n − 1 ) {\displaystyle (v_{0},\ldots ,v_{n-1})}
Rが 整域( 体を 含む) である 場合、 原始 n 乗根 として1のn乗根 を選択すれば十分であり 、条件( 1 )は次のように置き換えられる: [1] α {\displaystyle \alpha }
α k ≠ 1 {\displaystyle \alpha ^{k}\neq 1} のために 1 ≤ k < n {\displaystyle 1\leq k<n} n が2のべき乗の 場合には、もう1つの簡単な条件が適用されます。( 1 )は に置き換えられます 。 [1] α n / 2 = − 1 {\displaystyle \alpha ^{n/2}=-1}
逆変換 離散フーリエ変換の逆変換は次のように与えられます
v j = 1 n ∑ k = 0 n − 1 f k α − j k . {\displaystyle v_{j}={\frac {1}{n}}\sum _{k=0}^{n-1}f_{k}\alpha ^{-jk}.} 3
ここで、 R における n の逆数です (この逆数が存在しない場合、DFTは逆変換できません)。 1 / n {\displaystyle 1/n}
離散フーリエ変換は 線形演算子なので、 行列の乗算 で記述できます 。行列表記では、離散フーリエ変換は次のように表されます
[ f 0 f 1 ⋮ f n − 1 ] = [ 1 1 1 ⋯ 1 1 α α 2 ⋯ α n − 1 1 α 2 α 4 ⋯ α 2 ( n − 1 ) ⋮ ⋮ ⋮ ⋱ ⋮ 1 α n − 1 α 2 ( n − 1 ) ⋯ α ( n − 1 ) ( n − 1 ) ] [ v 0 v 1 ⋮ v n − 1 ] . {\displaystyle {\begin{bmatrix}f_{0}\\f_{1}\\\vdots \\f_{n-1}\end{bmatrix}}={\begin{bmatrix}1&1&1&\cdots &1\\1&\alpha &\alpha ^{2}&\cdots &\alpha ^{n-1}\\1&\alpha ^{2}&\alpha ^{4}&\cdots &\alpha ^{2(n-1)}\\\vdots &\vdots &\vdots &\ddots &\vdots \\1&\alpha ^{n-1}&\alpha ^{2(n-1)}&\cdots &\alpha ^{(n-1)(n-1)}\\\end{bmatrix}}{\begin{bmatrix}v_{0}\\v_{1}\\\vdots \\v_{n-1}\end{bmatrix}}.} この変換の行列は DFT 行列 と呼ばれます。
同様に、逆フーリエ変換の行列表記は
[ v 0 v 1 ⋮ v n − 1 ] = 1 n [ 1 1 1 ⋯ 1 1 α − 1 α − 2 ⋯ α − ( n − 1 ) 1 α − 2 α − 4 ⋯ α − 2 ( n − 1 ) ⋮ ⋮ ⋮ ⋱ ⋮ 1 α − ( n − 1 ) α − 2 ( n − 1 ) ⋯ α − ( n − 1 ) ( n − 1 ) ] [ f 0 f 1 ⋮ f n − 1 ] . {\displaystyle {\begin{bmatrix}v_{0}\\v_{1}\\\vdots \\v_{n-1}\end{bmatrix}}={\frac {1}{n}}{\begin{bmatrix}1&1&1&\cdots &1\\1&\alpha ^{-1}&\alpha ^{-2}&\cdots &\alpha ^{-(n-1)}\\1&\alpha ^{-2}&\alpha ^{-4}&\cdots &\alpha ^{-2(n-1)}\\\vdots &\vdots &\vdots &\ddots &\vdots \\1&\alpha ^{-(n-1)}&\alpha ^{-2(n-1)}&\cdots &\alpha ^{-(n-1)(n-1)}\end{bmatrix}}{\begin{bmatrix}f_{0}\\f_{1}\\\vdots \\f_{n-1}\end{bmatrix}}.}
n 組を 形式多項式と 同一視すると便利な場合があります ( v 0 , … , v n − 1 ) {\displaystyle (v_{0},\ldots ,v_{n-1})}
p v ( x ) = v 0 + v 1 x + v 2 x 2 + ⋯ + v n − 1 x n − 1 . {\displaystyle p_{v}(x)=v_{0}+v_{1}x+v_{2}x^{2}+\cdots +v_{n-1}x^{n-1}.\,} 離散フーリエ変換の定義( 2 )の合計を書き出すと、次の式が得られます。
f k = v 0 + v 1 α k + v 2 α 2 k + ⋯ + v n − 1 α ( n − 1 ) k . {\displaystyle f_{k}=v_{0}+v_{1}\alpha ^{k}+v_{2}\alpha ^{2k}+\cdots +v_{n-1}\alpha ^{(n-1)k}.\,} これは、 が の 多項式の値であることを意味します 。つまり、 f k {\displaystyle f_{k}} p v ( x ) {\displaystyle p_{v}(x)} x = α k {\displaystyle x=\alpha ^{k}}
f k = p v ( α k ) . {\displaystyle f_{k}=p_{v}(\alpha ^{k}).\,} 4
したがって、フーリエ変換は多項式の 係数 と 値を 関連付けるものと見ることができます。係数は時間領域にあり、値は周波数領域にあります。ここで重要なのは、多項式がの n 乗根、つまり のべき乗で評価されることです 。 α {\displaystyle \alpha }
同様に逆フーリエ変換( 3 )の定義は次のように書くことができる。
v j = 1 n ( f 0 + f 1 α − j + f 2 α − 2 j + ⋯ + f n − 1 α − ( n − 1 ) j ) . {\displaystyle v_{j}={\frac {1}{n}}(f_{0}+f_{1}\alpha ^{-j}+f_{2}\alpha ^{-2j}+\cdots +f_{n-1}\alpha ^{-(n-1)j}).} 5
と
p f ( x ) = f 0 + f 1 x + f 2 x 2 + ⋯ + f n − 1 x n − 1 , {\displaystyle p_{f}(x)=f_{0}+f_{1}x+f_{2}x^{2}+\cdots +f_{n-1}x^{n-1},} これは次のことを意味します
v j = 1 n p f ( α − j ) . {\displaystyle v_{j}={\frac {1}{n}}p_{f}(\alpha ^{-j}).} これを次のようにまとめることができます。 の 値 がの 係数 である場合 、 の 値は 、スカラー因子と並べ替えを除いて、の 係数 です 。 [2] p v ( x ) {\displaystyle p_{v}(x)} p f ( x ) {\displaystyle p_{f}(x)} p f ( x ) {\displaystyle p_{f}(x)} p v ( x ) {\displaystyle p_{v}(x)}
特殊なケース
複素数 が複素数体である 場合、 単位根は 複素平面 上の 単位円 上の点として視覚化できる。この場合、通常は次のように表される。 F = C {\displaystyle F={\mathbb {C} }} n {\displaystyle n}
α = e − 2 π i n , {\displaystyle \alpha =e^{\frac {-2\pi i}{n}},} これは複素離散フーリエ変換 の通常の式を与える 。
f k = ∑ j = 0 n − 1 v j e − 2 π i n j k . {\displaystyle f_{k}=\sum _{j=0}^{n-1}v_{j}e^{{\frac {-2\pi i}{n}}jk}.} 複素数の場合、DFTと逆DFTの式を正規化する際に、 DFTの式と逆DFTの式 の両方でスカラー因子を用いるのではなく、両方の式でスカラー因子を用いるのが一般的です。この正規化により、DFT行列はユニタリ行列になります。 ただし、任意の体では意味をなさない ことに注意してください。 1 n {\displaystyle {\frac {1}{\sqrt {n}}}} 1 {\displaystyle 1} 1 n {\displaystyle {\frac {1}{n}}} n {\displaystyle {\sqrt {n}}}
有限体 が有限体 で、 qが 素数 冪 である 場合、原始 n 乗根 の存在は自動的に nが を割り切る ことを意味します。なぜなら、各元の 乗法順序は、 F の 乗法群 のサイズである を割り切れる必要がある からです 。これは特に、 が逆であることを保証し、( 3 )の 表記が 意味を成します F = G F ( q ) {\displaystyle F=\mathrm {GF} (q)} q − 1 {\displaystyle q-1} q − 1 {\displaystyle q-1} n = 1 + 1 + ⋯ + 1 ⏟ n t i m e s {\displaystyle n=\underbrace {1+1+\cdots +1} _{n\ {\rm {times}}}} 1 n {\displaystyle {\frac {1}{n}}}
離散フーリエ変換の応用として、 符号理論 における リード・ソロモン符号の BCH符号 へ の縮約が挙げられます。このような変換は、適切な高速アルゴリズム、例えば 円分高速フーリエ変換を 用いることで効率的に実行できます 。 G F ( q ) {\displaystyle \mathrm {GF} (q)}
と仮定します 。もし の場合 、 となる可能性があります 。これは、 に単位根を見つけることができないことを意味します。 マシュケの定理 に従って、フーリエ変換を いくつかの多項式に対する 同型写像と見なすことができます 。写像は 中国剰余定理によって与えられ、逆写像は多項式に対する ベズーの恒等式 を適用することによって与えられます 。 [3] F = G F ( p ) {\displaystyle F=\mathrm {GF} (p)} p ∤ n {\displaystyle p\nmid n} n ∤ p − 1 {\displaystyle n\nmid p-1} n t h {\displaystyle n^{th}} F {\displaystyle F} F [ C n ] = F [ x ] / ( x n − 1 ) ≅ ⨁ i F [ x ] / ( P i ( x ) ) {\displaystyle \mathrm {F} [C_{n}]=\mathrm {F} [x]/(x^{n}-1)\cong \bigoplus _{i}\mathrm {F} [x]/(P_{i}(x))} P i ( x ) {\displaystyle P_{i}(x)}
x n − 1 = ∏ d | n Φ d ( x ) {\displaystyle x^{n}-1=\prod _{d|n}\Phi _{d}(x)} は円分多項式の積である。 を因数分解することは、 の 素イデアルを因数分解することと同値である。 の位 数である 次 数 の 多項式が 得られる 。 Φ d ( x ) {\displaystyle \Phi _{d}(x)} F [ x ] {\displaystyle F[x]} ( p ) {\displaystyle (p)} Z [ ζ ] = Z [ x ] / ( Φ d ( x ) ) {\displaystyle \mathrm {Z} [\zeta ]=\mathrm {Z} [x]/(\Phi _{d}(x))} g {\displaystyle g} P 1 … P g {\displaystyle P_{1}\ldots P_{g}} f {\displaystyle f} f g = φ ( d ) {\displaystyle fg=\varphi (d)} f {\displaystyle f} p mod d {\displaystyle p{\text{ mod }}d}
上で述べたように、 の基底体 を に拡張する ことで、 の原始根、つまり の分割体 を求めることができます 。 となるので、 のそれぞれについて 、要素は にマッピングされます 。 G F ( q ) {\displaystyle \mathrm {GF} (q)} x n − 1 {\displaystyle x^{n}-1} x n − 1 = ∏ k ( x − α k ) {\displaystyle x^{n}-1=\prod _{k}(x-\alpha ^{k})} ∑ j = 0 n − 1 v j x j ∈ F [ x ] / ( x n − 1 ) {\displaystyle \sum _{j=0}^{n-1}v_{j}x^{j}\in F[x]/(x^{n}-1)} ∑ j = 0 n − 1 v j x j mod ( x − α k ) ≡ ∑ j = 0 n − 1 v j ( α k ) j {\displaystyle \sum _{j=0}^{n-1}v_{j}x^{j}\mod (x-\alpha ^{k})\equiv \sum _{j=0}^{n-1}v_{j}(\alpha ^{k})^{j}} k {\displaystyle k}
pがnを割るとき の場合でも、上記 と同様に -線型同型 を定義できます 。ただし、 と であることに注意してください 。上記の因数分解を に適用すると 、分解 が得られます。 ここで 、発生する加群は既約ではなく分解不可能になります。 p | n {\displaystyle p|n} F p {\displaystyle F_{p}} ( x n − 1 ) = ( x m − 1 ) p s {\displaystyle (x^{n}-1)=(x^{m}-1)^{p^{s}}} n = m p s {\displaystyle n=mp^{s}} p ∤ m {\displaystyle p\nmid m} x m − 1 {\displaystyle x^{m}-1} F [ x ] / ( x n − 1 ) ≅ ⨁ i F [ x ] / ( P i ( x ) p s ) {\displaystyle F[x]/(x^{n}-1)\cong \bigoplus _{i}F[x]/(P_{i}(x)^{p^{s}})}
DFT行列の順序 と仮定すると、 1の根を 持つ 。 を上記のDFT行列、つまり を要素とするヴァンデルモンド行列とする 。 の 場合 、すべての要素が1になることを思い出してください 。 の場合 、公比 を持つ等比級数となる ため、 が得られる 。 分子は0だが、 の場合、分母は0ではない。 p ∤ n {\displaystyle p\nmid n} n t h {\displaystyle n^{th}} α {\displaystyle \alpha } A {\displaystyle A} A i j = α i j {\displaystyle A_{ij}=\alpha ^{ij}} 0 ≤ i , j < n {\displaystyle 0\leq i,j<n} ∑ j = 0 n − 1 α ( k − l ) j = n δ k , l {\displaystyle \sum _{j=0}^{n-1}\alpha ^{(k-l)j}=n\delta _{k,l}} k = l {\displaystyle k=l} k ≠ l {\displaystyle k\neq l} α k − l {\displaystyle \alpha ^{k-l}} 1 − α n ( k − l ) 1 − α k − l {\displaystyle {\frac {1-\alpha ^{n(k-l)}}{1-\alpha ^{k-l}}}} α n = 1 {\displaystyle \alpha ^{n}=1} k − l ≠ 0 {\displaystyle k-l\neq 0}
まず平方根を計算します 。同様に計算し 、デルタを簡略化すると、 が得られます 。したがって、 となり、順序は です 。 ( A 2 ) i k = ∑ j = 0 n − 1 α j ( i + k ) = n δ i , − k {\displaystyle (A^{2})_{ik}=\sum _{j=0}^{n-1}\alpha ^{j(i+k)}=n\delta _{i,-k}} A 4 = ( A 2 ) 2 {\displaystyle A^{4}=(A^{2})^{2}} ( A 4 ) i k = n 2 δ i , k {\displaystyle (A^{4})_{ik}=n^{2}\delta _{i,k}} A 4 = n 2 I n {\displaystyle A^{4}=n^{2}I_{n}} 4 ⋅ ord ( n 2 ) {\displaystyle 4\cdot {\text{ord}}(n^{2})}
DFT行列の正規化 複素数の場合と整合させ、行列が正確に4次であることを保証するため、上記のDFT行列 を で正規化することができます 。 の 分解体には は存在しないかもしれませんが、 平方根が存在する 二次拡張を形成できることに留意してください。そして 、 、 と設定します 。 A {\displaystyle A} 1 n {\displaystyle {\frac {1}{\sqrt {n}}}} n {\displaystyle {\sqrt {n}}} F q {\displaystyle F_{q}} x n − 1 {\displaystyle x^{n}-1} F q 2 ≅ F q [ x ] / ( x 2 − n ) {\displaystyle F_{q^{2}}\cong F_{q}[x]/(x^{2}-n)} U = 1 n A {\displaystyle U={\frac {1}{\sqrt {n}}}A} U 4 = I n {\displaystyle U^{4}=I_{n}}
ユニタリー性 と仮定します 。DFT行列が 有限体 上でユニタリー であるかどうかを問うことができます。行列の要素が 上にある場合 、 が完全な平方数であることを確認するか、 2次の自己同型性 を定義するために まで 拡張する必要があります 。上記のDFT行列 を考えます 。 が対称であることに注意してください 。 共役と転置を行うと が得られます p ∤ n {\displaystyle p\nmid n} F q {\displaystyle F_{q}} q {\displaystyle q} F q 2 {\displaystyle F_{q^{2}}} x ↦ x q {\displaystyle x\mapsto x^{q}} A i j = α i j {\displaystyle A_{ij}=\alpha ^{ij}} A {\displaystyle A} A i j ∗ = α q j i {\displaystyle A_{ij}^{*}=\alpha ^{qji}}
( A A ∗ ) i k = ∑ j = 0 n − 1 α j ( i + q k ) = n δ i , − q k {\displaystyle (AA^{*})_{ik}=\sum _{j=0}^{n-1}\alpha ^{j(i+qk)}=n\delta _{i,-qk}}
上記と同様の等比級数の議論によって、 は正規化によって 除去でき、 と となる。 したがって、 は の ときのみユニタリとなる 。単位根 が存在するので 、であることを思い出してください 。これは を意味する。 が最初から完全な平方数でない場合は となり、 となること に注意 。 n {\displaystyle n} U = 1 n A {\displaystyle U={\frac {1}{\sqrt {n}}}A} ( U U ∗ ) i k = δ i , − q k {\displaystyle (UU^{*})_{ik}=\delta _{i,-qk}} U {\displaystyle U} q ≡ − 1 ( mod n ) {\displaystyle q\equiv -1\,({\text{mod}}\,n)} n t h {\displaystyle n^{th}} n | q 2 − 1 {\displaystyle n|q^{2}-1} q 2 − 1 ≡ ( q + 1 ) ( q − 1 ) ≡ 0 ( mod n ) {\displaystyle q^{2}-1\equiv (q+1)(q-1)\equiv 0\,({\text{mod}}\,n)} q {\displaystyle q} n | q − 1 {\displaystyle n|q-1} q ≡ 1 ( mod n ) {\displaystyle q\equiv 1\,({\text{mod}}\,n)}
たとえば、 を 5 乗根 に拡張する必要がある場合などです 。 p = 3 , n = 5 {\displaystyle p=3,n=5} q 2 = 3 4 {\displaystyle q^{2}=3^{4}} q = 9 ≡ − 1 ( mod 5 ) {\displaystyle q=9\equiv -1\,({\text{mod}}\,5)}
非例として、を 8 乗根 に拡張して 1 の 8 乗根を得る場合 、 となり 、この場合は となり、 となり ます 。 は単位元の平方根であるため、 は 1 乗ではありません。 p = 3 , n = 8 {\displaystyle p=3,n=8} F 3 2 {\displaystyle F_{3^{2}}} q 2 = 9 {\displaystyle q^{2}=9} q ≡ 3 ( mod 8 ) {\displaystyle q\equiv 3\,({\text{mod}}\,8)} q + 1 ≢ 0 {\displaystyle q+1\not \equiv 0} q − 1 ≢ 0 {\displaystyle q-1\not \equiv 0} U U ∗ {\displaystyle UU^{*}} U {\displaystyle U}
DFT行列の固有値 のとき、 分解体 に 単位根が あります 。上記のDFT行列の特性多項式は で分解できない可能性があることに注意してください。DFT行列は4次です。DFT行列 の特性多項式の分解拡張、つまり少なくとも単位根の4乗根を含むDFT行列の さらなる拡張 を行う必要があるかもしれません。 が の乗法群の生成元である場合 、複素数の場合と全く同様に、固有値は です 。それらは、ある非負の重複度で発生します。 p ∤ n {\displaystyle p\nmid n} n t h {\displaystyle n^{th}} α {\displaystyle \alpha } F q ≅ F p [ x ] / ( x n − 1 ) {\displaystyle F_{q}\cong F_{p}[x]/(x^{n}-1)} F q {\displaystyle F_{q}} F q ′ {\displaystyle F_{q'}} a {\displaystyle a} F q ′ {\displaystyle F_{q'}} { ± 1 , ± a ( q ′ − 1 ) / 4 } {\displaystyle \{\pm 1,\pm a^{(q'-1)/4}\}}
数 論的変換(NTT) [4] は、 離散フーリエ変換を 素数 p を法とする整数に特殊化することで得られます。これは 有限体 であり、 nが pを割り切るときは常に原始 n 乗根が存在する ため、 正の整数 ξ に対して次が成り立ちます。 具体的には、を 原始 n乗根とすると、 n 乗根はとする ことで求められます F = Z / p {\displaystyle F={\mathbb {Z} }/p} p − 1 {\displaystyle p-1} p = ξ n + 1 {\displaystyle p=\xi n+1} ω {\displaystyle \omega } ( p − 1 ) {\displaystyle (p-1)} α {\displaystyle \alpha } α = ω ξ {\displaystyle \alpha =\omega ^{\xi }}
例えば 、 p = 5 {\displaystyle p=5} α = 2 {\displaystyle \alpha =2}
2 1 = 2 ( mod 5 ) 2 2 = 4 ( mod 5 ) 2 3 = 3 ( mod 5 ) 2 4 = 1 ( mod 5 ) {\displaystyle {\begin{aligned}2^{1}&=2{\pmod {5}}\\2^{2}&=4{\pmod {5}}\\2^{3}&=3{\pmod {5}}\\2^{4}&=1{\pmod {5}}\end{aligned}}} とき N = 4 {\displaystyle N=4}
[ F ( 0 ) F ( 1 ) F ( 2 ) F ( 3 ) ] = [ 1 1 1 1 1 2 4 3 1 4 1 4 1 3 4 2 ] [ f ( 0 ) f ( 1 ) f ( 2 ) f ( 3 ) ] {\displaystyle {\begin{bmatrix}F(0)\\F(1)\\F(2)\\F(3)\end{bmatrix}}={\begin{bmatrix}1&1&1&1\\1&2&4&3\\1&4&1&4\\1&3&4&2\end{bmatrix}}{\begin{bmatrix}f(0)\\f(1)\\f(2)\\f(3)\end{bmatrix}}} 環において、法 m が素数でなくて も、 n 位の主根が存在する限り、 数論的変換は意味を持つことがあります。 シェーンハーゲ・シュトラッセンアルゴリズムで使用される フェルマー数 変換( m = 2 k + 1 ) やメルセンヌ数変換 [5] ( m = 2 k − 1 )などの数論的変換の特殊なケースでは、合成法が使用されます Z / m {\displaystyle \mathbb {Z} /m}
一般に、 ならば 、 を法とする単位根を求めることで、 を法とする単位根を求めることができ 、 組 が 得 られる 。 中国剰余定理 同型のもとでの の逆像は、 となる 単位根 である。これにより、上記の和の条件が満たされることが保証される。 各 に対して が 成り立つことが必要である。 ここでは オイラーのトーティエント 関数である 。 [6] m = ∏ i p i e i {\textstyle m=\prod _{i}p_{i}^{e_{i}}} n t h {\textstyle n^{th}} n t h {\textstyle n^{th}} g i {\displaystyle g_{i}} p i e i {\textstyle p_{i}^{e_{i}}} g = ( g i ) i ∈ ∏ i ( Z / p i e i Z ) ∗ {\textstyle g=\left(g_{i}\right)_{i}\in \prod _{i}\left(\mathbb {Z} /p_{i}^{e_{i}}\mathbb {Z} \right)^{\ast }} g {\displaystyle g} n t h {\textstyle n^{th}} α {\textstyle \alpha } α n / 2 = − 1 mod m {\textstyle \alpha ^{n/2}=-1\mod m} n | φ ( p i e i ) {\textstyle n|\varphi (p_{i}^{e_{i}})} i {\displaystyle i} φ {\displaystyle \varphi }
高速フーリエ変換は NTTに適応でき、整数演算のみで実装できる。 [7] ソリナス素数 のような m の選択は、 減算に除算演算を必要としないため、コンピュータ上で計算するのがさらに簡単である。 [8] 2 64 − 2 32 + 1 {\displaystyle 2^{64}-2^{32}+1}
離散 加重変換(DWT) は、任意の環上の離散フーリエ変換のバリエーションであり、 入力を重みベクトルで要素ごとに乗算して変換し、その結果を別のベクトルで重み付けする。 [ 9] 無理 数基底離散加重変換は 、この特殊なケースである。
性質 逆変換、 畳み込み定理 、およびほとんどの 高速フーリエ変換(FFT)アルゴリズムを含む 複素DFT の重要な属性のほとんどは 、変換の核が主根であるという性質のみに依存します。これらの性質は、任意の環上でも同一の証明で成り立ちます。体の場合、この類推は 1つの元を持つ体によって形式化でき、 n 乗原始根を持つ任意の体を 拡大体上の代数と見なすことができます [ 説明が必要 ] F 1 n . {\displaystyle \mathbf {F} _{1^{n}}.}
特に、 NTTの計算に 高速フーリエ変換アルゴリズムを適用できることと、畳み込み定理を組み合わせることで、 数論的変換は整数列の正確な 畳み込みを 効率的に計算できる方法となります。複素DFTでも同じタスクを実行できますが、 有限精度 浮動小数点演算では 丸め誤差の 影響を受けます 。NTTは、正確に表現できる固定サイズの整数のみを扱うため、丸め誤差は発生しません。 O ( n log n ) {\displaystyle O(n\log n)}
高速アルゴリズム 「高速」アルゴリズム( FFTが DFT を計算する方法に似ています )を実装するには、変換長も高度に合成された(例えば 2のべき乗)ことが望ましい場合がよくあります。しかし、WangとZhuのアルゴリズム [10] など、変換長の係数に関係なく効率的な、 有限体用の特殊な高速フーリエ変換アルゴリズムがあります
参照
参考文献 ^ abc Martin Fürer、「高速整数乗算」、STOC 2007 Proceedings、pp. 57–66。第2章:離散フーリエ変換 ^ R. LidlとG. Pilz. 応用抽象代数第2版. Wiley, 1999, pp. 217–219. ^ "Jacksonwalters/DFT-finite-groups". GitHub . ^ Agarwal, R.; Burrus, C. (1974年4月). 「フェルマー数変換を用いた高速畳み込みとデジタルフィルタリングへの応用」. IEEE Transactions on Acoustics, Speech, and Signal Processing . 22 (2): 87– 97. doi :10.1109/TASSP.1974.1162555. ISSN 0096-3518. ^ Rader, CM (1972年12月). 「メルセンヌ変換による離散畳み込み」. IEEE Transactions on Computers . C-21 (12): 1269– 1273. doi :10.1109/TC.1972.223497. ISSN 0018-9340. S2CID 1939809. ^ ^ Satriawan, Ardianto; Syafalni, Infall; Mareta, Rella; Anshori, Isa; Shalannanda, Wervyan; Barra, Aleams (2023). 「数論的変換の概念的レビューとその実装に関する包括的レビュー」. IEEE Access . 11 : 70288–70316 . doi : 10.1109/ACCESS.2023.3294446 . ^ Craig-Wood, Nick. 「整数DWT mod 2^64-2^32+1」 www.craig-wood.com . ^ Crandall, Richard; Fagin, Barry (1994)、「離散重み付け変換と大整数演算」 (PDF) 、 Mathematics of Computation 、 62 (205): 305– 324、 doi : 10.2307/2153411 、 JSTOR 2153411 ^ Yao Wang とXuelong Zhu、「有限体上のフーリエ変換の高速アルゴリズムとそのVLSI実装」、IEEE Journal on Selected Areas in Communications 6(3)572–577、1988年
外部リンク https://www.apfloat.org/ntt.html