Articulo de referencia

Transformada discreta de Fourier sobre un anillo

En matemáticas , la transformada discreta de Fourier sobre un anillo generaliza la transformada discreta de Fourier (DFT) de una función cuyos valores suelen ser números complej...

En matemáticas , la transformada discreta de Fourier sobre un anillo generaliza la transformada discreta de Fourier (DFT) de una función cuyos valores suelen ser números complejos , sobre un anillo arbitrario .

Definición

Sea R un anillo cualquiera , sea un entero y sea una raíz n- ésima principal de la unidad, definida por: [ 1 ]norte1{\displaystyle n\geq 1}αR{\displaystyle \alpha \in R}

La transformada discreta de Fourier asigna una n -tupla de elementos de R a otra n -tupla de elementos de R según la siguiente fórmula: (v0,,vnorte1){\displaystyle (v_{0},\ldots,v_{n-1})}(F0,,Fnorte1){\displaystyle (f_{0},\ldots ,f_{n-1})}

Por convención, se dice que la tupla está en el dominio del tiempo y el índice j se llama tiempo . Se dice que la tupla está en el dominio de la frecuencia y el índice k se llama frecuencia . La tupla también se denomina espectro de . Esta terminología deriva de las aplicaciones de las transformadas de Fourier en el procesamiento de señales . (v0,,vnorte1){\displaystyle (v_{0},\ldots,v_{n-1})}(F0,,Fnorte1){\displaystyle (f_{0},\ldots ,f_{n-1})}(F0,,Fnorte1){\displaystyle (f_{0},\ldots ,f_{n-1})}(v0,,vnorte1){\displaystyle (v_{0},\ldots,v_{n-1})}

Si R es un dominio de integridad (que incluye campos ), es suficiente elegir como raíz n- ésima primitiva de la unidad , lo que reemplaza la condición ( 1 ) por: [ 1 ]α{\displaystyle \alpha }

αk1{\displaystyle \alpha ^{k}\neq 1}para1k<norte{\displaystyle 1\leq k<n}
Prueba

Tomar con . Dado que , , dando: β=αk{\displaystyle \beta =\alpha ^{k}}1k<norte{\displaystyle 1\leq k<n}αnorte=1{\displaystyle \alpha ^{n}=1}βnorte=(αnorte)k=1{\displaystyle \beta ^{n}=(\alpha ^{n})^{k}=1}

βnorte1=(β1)(j=0norte1βj)=0{\displaystyle \beta ^{n}-1=(\beta -1)\left(\sum _{j=0}^{n-1}\beta ^{j}\right)=0}

donde la suma coincide con ( 1 ). Dado que es una raíz primitiva de la unidad, . Como R es un dominio de integridad, la suma debe ser cero. ∎ α{\displaystyle \alpha }β10{\displaystyle \beta -1\neq 0}

Otra condición simple se aplica en el caso en que n es una potencia de dos: ( 1 ) puede ser reemplazado por . [ 1 ]αnorte/2=1{\displaystyle \alpha ^{n/2}=-1}

Inverso

La inversa de la transformada discreta de Fourier se expresa como:

donde es el inverso multiplicativo de n en R (si este inverso no existe, la DFT no se puede invertir). 1/norte{\displaystyle 1/n}

Prueba

Sustituyendo ( 2 ) en el lado derecho de ( 3 ), obtenemos

1nortek=0norte1Fkαjk=1nortek=0norte1j=0norte1vjαjkαjk=1nortej=0norte1vjk=0norte1α(jj)k.{\displaystyle {\begin{aligned}&{\frac {1}{n}}\sum _{k=0}^{n-1}f_{k}\alpha ^{-jk}\\={}&{\frac {1}{n}}\sum _{k=0}^{n-1}\sum _{j'=0}^{n-1}v_{j'}\alpha ^{j'k}\alpha ^{-jk}\\={}&{\frac {1}{n}}\sum _{j'=0}^{n-1}v_{j'}\sum _{k=0}^{n-1}\alpha ^{(j'-j)k}.\end{aligned}}}

Esto es exactamente igual a , porque cuando (por ( 1 ) con ), y cuando . ∎ vj{\displaystyle v_{j}}k=0norte1α(jj)k=0{\displaystyle \sum _{k=0}^{n-1}\alpha ^{(j'-j)k}=0}jj{\displaystyle j'\neq j}k=jj{\displaystyle k=j'-j}k=0norte1α(jj)k=norte{\displaystyle \sum _{k=0}^{n-1}\alpha ^{(j'-j)k}=n}j=j{\displaystyle j'=j}

Formulación de la matriz

Dado que la transformada discreta de Fourier es un operador lineal , puede describirse mediante la multiplicación de matrices . En notación matricial, la transformada discreta de Fourier se expresa de la siguiente manera:

[F0F1Fnorte1]=[11111αα2αnorte11α2α4α2(norte1)1αnorte1α2(norte1)α(norte1)(norte1)][v0v1vnorte1].{\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}}.}

La matriz para esta transformación se llama matriz DFT .

De manera similar, la notación matricial para la transformada inversa de Fourier es

[v0v1vn1]=1n[11111α1α2α(n1)1α2α4α2(n1)1α(n1)α2(n1)α(n1)(n1)][f0f1fn1].{\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}}.}

Formulación polinómica

A veces resulta conveniente identificar una n -tupla con un polinomio formal. (v0,,vn1){\displaystyle (v_{0},\ldots ,v_{n-1})}

pv(x)=v0+v1x+v2x2++vn1xn1.{\displaystyle p_{v}(x)=v_{0}+v_{1}x+v_{2}x^{2}+\cdots +v_{n-1}x^{n-1}.\,}

Al escribir la sumatoria en la definición de la transformada discreta de Fourier ( 2 ), obtenemos:

fk=v0+v1αk+v2α2k++vn1α(n1)k.{\displaystyle f_{k}=v_{0}+v_{1}\alpha ^{k}+v_{2}\alpha ^{2k}+\cdots +v_{n-1}\alpha ^{(n-1)k}.\,}

Esto significa que es simplemente el valor del polinomio para , es decir, fk{\displaystyle f_{k}}pv(x){\displaystyle p_{v}(x)}x=αk{\displaystyle x=\alpha ^{k}}

Por lo tanto, se puede ver que la transformada de Fourier relaciona los coeficientes y los valores de un polinomio: los coeficientes están en el dominio del tiempo y los valores están en el dominio de la frecuencia . Aquí, por supuesto, es importante que el polinomio se evalúe en las raíces enésimas de la unidad, que son precisamente las potencias de . α{\displaystyle \alpha }

De manera similar, la definición de la transformada inversa de Fourier ( 3 ) se puede escribir:

Con

pf(x)=f0+f1x+f2x2++fn1xn1,{\displaystyle p_{f}(x)=f_{0}+f_{1}x+f_{2}x^{2}+\cdots +f_{n-1}x^{n-1},}

esto significa que

vj=1npf(αj).{\displaystyle v_{j}={\frac {1}{n}}p_{f}(\alpha ^{-j}).}

Podemos resumirlo de la siguiente manera: si los valores de son los coeficientes de , entonces los valores de son los coeficientes de , salvo un factor escalar y un reordenamiento. [ 2 ]pv(x){\displaystyle p_{v}(x)}pf(x){\displaystyle p_{f}(x)}pf(x){\displaystyle p_{f}(x)}pv(x){\displaystyle p_{v}(x)}

Casos especiales

Números complejos

Si es el campo de los números complejos, entonces las raíces -ésimas de la unidad pueden visualizarse como puntos en el círculo unitario del plano complejo . En este caso, normalmente se toma F=C{\displaystyle F={\mathbb {C} }}n{\displaystyle n}

α=e2πin,{\displaystyle \alpha =e^{\frac {-2\pi i}{n}},}

lo que da como resultado la fórmula habitual para la transformada discreta de Fourier compleja :

fk=j=0n1vje2πinjk.{\displaystyle f_{k}=\sum _{j=0}^{n-1}v_{j}e^{{\frac {-2\pi i}{n}}jk}.}

En el caso de los números complejos, suele ser habitual normalizar las fórmulas de la DFT y la DFT inversa utilizando el factor escalar en ambas, en lugar de en la fórmula de la DFT y en la de la DFT inversa. Con esta normalización, la matriz de la DFT resulta unitaria. Cabe destacar que esto no tiene sentido en un campo arbitrario. 1n{\displaystyle {\frac {1}{\sqrt {n}}}}1{\displaystyle 1}1n{\displaystyle {\frac {1}{n}}}n{\displaystyle {\sqrt {n}}}

Campos finitos

Si es un cuerpo finito , donde q es una potencia prima , entonces la existencia de una raíz n- ésima primitiva implica automáticamente que n divide a , porque el orden multiplicativo de cada elemento debe dividir el tamaño del grupo multiplicativo de F , que es . Esto, en particular, asegura que es invertible, de modo que la notación en ( 3 ) tiene sentido. F=GF(q){\displaystyle F=\mathrm {GF} (q)}q1{\displaystyle q-1}q1{\displaystyle q-1}n=1+1++1n times{\displaystyle n=\underbrace {1+1+\cdots +1} _{n\ {\rm {times}}}}1n{\displaystyle {\frac {1}{n}}}

Una aplicación de la transformada discreta de Fourier es la reducción de códigos Reed-Solomon a códigos BCH en la teoría de la codificación . Dicha transformada se puede realizar de manera eficiente con algoritmos rápidos adecuados, por ejemplo, la transformada rápida de Fourier ciclotómica . GF(q){\displaystyle \mathrm {GF} (q)}

Formulación polinómica sin raíz n- ésima

Supongamos que . Si , puede darse el caso de que . Esto significa que no podemos encontrar una raíz de la unidad en . Podemos considerar la transformada de Fourier como un isomorfismo para algunos polinomios , de acuerdo con el teorema de Maschke . La aplicación viene dada por el teorema chino del resto , y la inversa viene dada aplicando la identidad de Bézout para polinomios. [ 3 ]F=GF(p){\displaystyle F=\mathrm {GF} (p)}pn{\displaystyle p\nmid n}np1{\displaystyle n\nmid p-1}nth{\displaystyle n^{th}}F{\displaystyle F}F[Cn]=F[x]/(xn1)iF[x]/(Pi(x)){\displaystyle \mathrm {F} [C_{n}]=\mathrm {F} [x]/(x^{n}-1)\cong \bigoplus _{i}\mathrm {F} [x]/(P_{i}(x))}Pi(x){\displaystyle P_{i}(x)}

xn1=d|nΦd(x){\displaystyle x^{n}-1=\prod _{d|n}\Phi _{d}(x)}, un producto de polinomios ciclotómicos. Factorizar en es equivalente a factorizar el ideal primo en . Obtenemos polinomios de grado donde y es el orden de . Φ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}P1Pg{\displaystyle P_{1}\ldots P_{g}}f{\displaystyle f}fg=φ(d){\displaystyle fg=\varphi (d)}f{\displaystyle f}p mod d{\displaystyle p{\text{ mod }}d}

Como se indicó anteriormente, podemos extender el campo base para encontrar una raíz primitiva, es decir, un campo de división para . Ahora , por lo que un elemento se asigna a para cada . GF(q){\displaystyle \mathrm {GF} (q)}xn1{\displaystyle x^{n}-1}xn1=k(xαk){\displaystyle x^{n}-1=\prod _{k}(x-\alpha ^{k})}j=0n1vjxjF[x]/(xn1){\displaystyle \sum _{j=0}^{n-1}v_{j}x^{j}\in F[x]/(x^{n}-1)}j=0n1vjxjmod(xαk)j=0n1vj(α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}

Cuando p divide a n

Cuando , aún podemos definir un isomorfismo -lineal como se indicó anteriormente. Nótese que donde y . Aplicamos la factorización anterior a , y ahora obtenemos la descomposición . Los módulos que aparecen ahora son indescomponibles en lugar de irreducibles. p|n{\displaystyle p|n}Fp{\displaystyle F_{p}}(xn1)=(xm1)ps{\displaystyle (x^{n}-1)=(x^{m}-1)^{p^{s}}}n=mps{\displaystyle n=mp^{s}}pm{\displaystyle p\nmid m}xm1{\displaystyle x^{m}-1}F[x]/(xn1)iF[x]/(Pi(x)ps){\displaystyle F[x]/(x^{n}-1)\cong \bigoplus _{i}F[x]/(P_{i}(x)^{p^{s}})}

Orden de la matriz DFT

Supongamos que tenemos una raíz de la unidad . Sea la matriz DFT anterior, una matriz de Vandermonde con entradas para . Recordemos que, dado que si , entonces cada entrada es 1. Si , entonces tenemos una serie geométrica con razón común , por lo que obtenemos . Dado que el numerador es cero, pero , entonces el denominador es distinto de cero. pn{\displaystyle p\nmid n}nth{\displaystyle n^{th}}α{\displaystyle \alpha }A{\displaystyle A}Aij=αij{\displaystyle A_{ij}=\alpha ^{ij}}0i,j<n{\displaystyle 0\leq i,j<n}j=0n1α(kl)j=nδk,l{\displaystyle \sum _{j=0}^{n-1}\alpha ^{(k-l)j}=n\delta _{k,l}}k=l{\displaystyle k=l}kl{\displaystyle k\neq l}αkl{\displaystyle \alpha ^{k-l}}1αn(kl)1αkl{\displaystyle {\frac {1-\alpha ^{n(k-l)}}{1-\alpha ^{k-l}}}}αn=1{\displaystyle \alpha ^{n}=1}kl0{\displaystyle k-l\neq 0}

Primero calculamos el cuadrado, . Calculando de forma similar y simplificando los deltas, obtenemos . Por lo tanto, y el orden es . (A2)ik=j=0n1αj(i+k)=nδi,k{\displaystyle (A^{2})_{ik}=\sum _{j=0}^{n-1}\alpha ^{j(i+k)}=n\delta _{i,-k}}A4=(A2)2{\displaystyle A^{4}=(A^{2})^{2}}(A4)ik=n2δi,k{\displaystyle (A^{4})_{ik}=n^{2}\delta _{i,k}}A4=n2In{\displaystyle A^{4}=n^{2}I_{n}}4ord(n2){\displaystyle 4\cdot {\text{ord}}(n^{2})}

Normalización de la matriz DFT

Para alinearnos con el caso complejo y asegurar que la matriz sea exactamente de orden 4, podemos normalizar la matriz DFT anterior con . Nótese que, aunque puede que no exista en el campo de división de , podemos formar una extensión cuadrática en la que exista la raíz cuadrada. Entonces podemos establecer , y . A{\displaystyle A}1n{\displaystyle {\frac {1}{\sqrt {n}}}}n{\displaystyle {\sqrt {n}}}Fq{\displaystyle F_{q}}xn1{\displaystyle x^{n}-1}Fq2Fq[x]/(x2n){\displaystyle F_{q^{2}}\cong F_{q}[x]/(x^{2}-n)}U=1nA{\displaystyle U={\frac {1}{\sqrt {n}}}A}U4=In{\displaystyle U^{4}=I_{n}}

Unitaridad

Supongamos que . Se puede preguntar si la matriz DFT es unitaria sobre un cuerpo finito . Si las entradas de la matriz están sobre , entonces hay que asegurar que sea un cuadrado perfecto o extender a para definir el automorfismo de orden dos . Consideremos la matriz DFT anterior . Nótese que es simétrica. Conjugando y transponiendo, obtenemos . pn{\displaystyle p\nmid n}Fq{\displaystyle F_{q}}q{\displaystyle q}Fq2{\displaystyle F_{q^{2}}}xxq{\displaystyle x\mapsto x^{q}}Aij=αij{\displaystyle A_{ij}=\alpha ^{ij}}A{\displaystyle A}Aij=αqji{\displaystyle A_{ij}^{*}=\alpha ^{qji}}

(AA)ik=j=0n1αj(i+qk)=nδi,qk{\displaystyle (AA^{*})_{ik}=\sum _{j=0}^{n-1}\alpha ^{j(i+qk)}=n\delta _{i,-qk}}

mediante un argumento de serie geométrica similar al anterior. Podemos eliminar la normalizando de modo que y . Por lo tanto, es unitaria si y solo si . Recordemos que, dado que tenemos una raíz de la unidad, . Esto significa que . Nótese que si no era un cuadrado perfecto para empezar, entonces y por lo tanto . n{\displaystyle n}U=1nA{\displaystyle U={\frac {1}{\sqrt {n}}}A}(UU)ik=δi,qk{\displaystyle (UU^{*})_{ik}=\delta _{i,-qk}}U{\displaystyle U}q1(modn){\displaystyle q\equiv -1\,({\text{mod}}\,n)}nth{\displaystyle n^{th}}n|q21{\displaystyle n|q^{2}-1}q21(q+1)(q1)0(modn){\displaystyle q^{2}-1\equiv (q+1)(q-1)\equiv 0\,({\text{mod}}\,n)}q{\displaystyle q}n|q1{\displaystyle n|q-1}q1(modn){\displaystyle q\equiv 1\,({\text{mod}}\,n)}

Por ejemplo, cuando necesitamos extender para obtener una raíz quinta de la unidad . p=3,n=5{\displaystyle p=3,n=5}q2=34{\displaystyle q^{2}=3^{4}}q=91(mod5){\displaystyle q=9\equiv -1\,({\text{mod}}\,5)}

Por ejemplo, cuando extendemos para obtener una raíz octava de la unidad, , entonces , y en este caso y . es una raíz cuadrada de la identidad, por lo que no es unitaria. p=3,n=8{\displaystyle p=3,n=8}F32{\displaystyle F_{3^{2}}}q2=9{\displaystyle q^{2}=9}q3(mod8){\displaystyle q\equiv 3\,({\text{mod}}\,8)}q+10{\displaystyle q+1\not \equiv 0}q10{\displaystyle q-1\not \equiv 0}UU{\displaystyle UU^{*}}U{\displaystyle U}

Valores propios de la matriz DFT

Cuando , tenemos una raíz de la unidad en el campo de descomposición . Nótese que el polinomio característico de la matriz DFT anterior puede no descomponerse sobre . La matriz DFT es de orden 4. Puede que necesitemos ir a una extensión más allá , la extensión de descomposición del polinomio característico de la matriz DFT, que al menos contiene raíces cuartas de la unidad. Si es un generador del grupo multiplicativo de , entonces los autovalores son , en analogía exacta con el caso complejo. Aparecen con alguna multiplicidad no negativa. pn{\displaystyle p\nmid n}nth{\displaystyle n^{th}}α{\displaystyle \alpha }FqFp[x]/(xn1){\displaystyle F_{q}\cong F_{p}[x]/(x^{n}-1)}Fq{\displaystyle F_{q}}Fq{\displaystyle F_{q'}}a{\displaystyle a}Fq{\displaystyle F_{q'}}{±1,±a(q1)/4}{\displaystyle \{\pm 1,\pm a^{(q'-1)/4}\}}

Transformación teórica de números

La transformada teórica de números (NTT) [ 4 ] se obtiene especializando la transformada discreta de Fourier a , los enteros módulo un primo p . Este es un campo finito , y existen raíces n -ésimas primitivas de la unidad siempre que n divide a , por lo que tenemos para un entero positivo ξ . Específicamente, sea una raíz n-ésima primitiva de la unidad, entonces se puede encontrar una raíz n- ésima de la unidad haciendo . F=Z/p{\displaystyle F={\mathbb {Z} }/p}p1{\displaystyle p-1}p=ξn+1{\displaystyle p=\xi n+1}ω{\displaystyle \omega }(p1){\displaystyle (p-1)}α{\displaystyle \alpha }α=ωξ{\displaystyle \alpha =\omega ^{\xi }}

por ejemplo, para ,p=5{\displaystyle p=5}α=2{\displaystyle \alpha =2}

21=2(mod5)22=4(mod5)23=3(mod5)24=1(mod5){\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}}}

cuandoN=4{\displaystyle N=4}

[F(0)F(1)F(2)F(3)]=[1111124314141342][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}}}

La transformación teórica de números puede ser significativa en el anillo , incluso cuando el módulo m no es primo, siempre que exista una raíz principal de orden n . Casos especiales de la transformación teórica de números, como la Transformación de Números de Fermat ( m = 2k + 1 ), utilizada por el algoritmo de Schönhage-Strassen , o la Transformación de Números de Mersenne [ 5 ] ( m = 2k  − 1 ), utilizan un módulo compuesto. Z/m{\displaystyle \mathbb {Z} /m}

En general, si , entonces se puede encontrar una raíz de la unidad módulo m al encontrar raíces primitivas de la unidad módulo , lo que produce una tupla . La preimagen de bajo el isomorfismo del teorema chino del resto es una raíz de la unidad tal que . Esto asegura que se satisfacen las condiciones de suma anteriores. Debemos tener que para cada , donde es la función totiente de Euler . [ 6 ]m=ipiei{\textstyle m=\prod _{i}p_{i}^{e_{i}}}nth{\textstyle n^{th}}nth{\textstyle n^{th}}gi{\displaystyle g_{i}}piei{\textstyle p_{i}^{e_{i}}}g=(gi)ii(Z/pieiZ){\textstyle g=\left(g_{i}\right)_{i}\in \prod _{i}\left(\mathbb {Z} /p_{i}^{e_{i}}\mathbb {Z} \right)^{\ast }}g{\displaystyle g}nth{\textstyle n^{th}}α{\textstyle \alpha }αn/2=1modm{\textstyle \alpha ^{n/2}=-1\mod m}n|φ(piei){\textstyle n|\varphi (p_{i}^{e_{i}})}i{\displaystyle i}φ{\displaystyle \varphi }

La transformada rápida de Fourier se puede adaptar a NTT e implementar con solo operaciones enteras. [ 7 ] Algunas elecciones de m, como el primo de Solinas, son incluso más fáciles de calcular en computadoras, ya que no requieren ninguna operación de división para la reducción. [ 8 ]264232+1{\displaystyle 2^{64}-2^{32}+1}

Transformación ponderada discreta

La transformada discreta ponderada (DWT) es una variación de la transformada discreta de Fourier sobre anillos arbitrarios que implica ponderar la entrada antes de transformarla multiplicándola elemento a elemento por un vector de ponderación, y luego ponderar el resultado por otro vector. [ 9 ] La transformada discreta ponderada de base irracional es un caso especial de esta.

Propiedades

La mayoría de los atributos importantes de la DFT compleja , incluyendo la transformada inversa, el teorema de convolución y la mayoría de los algoritmos de la transformada rápida de Fourier (FFT), dependen únicamente de la propiedad de que el núcleo de la transformada sea una raíz principal de la unidad. Estas propiedades también se cumplen, con demostraciones idénticas, sobre anillos arbitrarios. En el caso de los cuerpos, esta analogía puede formalizarse mediante el cuerpo con un elemento , considerando cualquier cuerpo con una raíz primitiva n -ésima de la unidad como un álgebra sobre el cuerpo de extensión.F1n.{\displaystyle \mathbf {F} _{1^{n}}.}

En particular, la aplicabilidad de los algoritmos de transformada rápida de Fourier para calcular la transformada de Fourier no lineal (NTT), junto con el teorema de convolución, implica que la transformada basada en la teoría de números proporciona una forma eficiente de calcular convoluciones exactas de secuencias de enteros. Si bien la transformada discreta de Fourier (DFT) compleja puede realizar la misma tarea, es susceptible a errores de redondeo en la aritmética de punto flotante de precisión finita ; la NTT no presenta errores de redondeo porque trabaja exclusivamente con enteros de tamaño fijo que pueden representarse con exactitud. O(nlogn){\displaystyle O(n\log n)}

Algoritmos rápidos

Para la implementación de un algoritmo "rápido" (similar a cómo la FFT calcula la DFT ), suele ser deseable que la longitud de la transformada sea también altamente compuesta, por ejemplo, una potencia de dos . Sin embargo, existen algoritmos especializados de transformada rápida de Fourier para campos finitos, como el algoritmo de Wang y Zhu, [ 10 ] que son eficientes independientemente de los factores de longitud de la transformada.

Véase también

Referencias

  1. ^ a b c Martin Fürer, " Multiplicación de enteros más rápida ", Actas de STOC 2007, págs. 57–66. Sección 2: La transformada discreta de Fourier.
  2. ^ Lidl, R.; Pilz, G. (1999). Álgebra abstracta aplicada (2.ª ed.). Wiley. págs.  217–219 . ISBN 0-387-98290-6.
  3. ^ "La DFT modular del grupo simétrico" . GitHub .
  4. ^ Agarwal, R.; Burrus, C. (abril de 1974). "Convolución rápida mediante transformaciones de número de Fermat con aplicaciones al filtrado digital". IEEE Transactions on Acoustics, Speech, and Signal Processing . 22 (2): 87– 97. doi : 10.1109/TASSP.1974.1162555 . ISSN 0096-3518 . 
  5. ^ Rader, CM (diciembre de 1972). "Convoluciones discretas mediante transformadas de Mersenne". IEEE Transactions on Computers . C-21 (12): 1269– 1273. doi : 10.1109/TC.1972.223497 . ISSN 0018-9340 . S2CID 1939809 .  
  6. ^ Walters, Jackson; Silverman, Thomas. "ntt" . crates.io . Consultado el 14 de febrero de 2025 .
  7. ^ Satriawan, Ardianto; Syafalni, Infall; Mareta, Rella; Anshori, Isa; Shalannanda, Wervyan; Barra, Aleams (2023). "Revisión conceptual sobre la transformación teórica de números y revisión exhaustiva de sus implementaciones" . IEEE Access . 11 : 70288–70316 . doi : 10.1109/ACCESS.2023.3294446 .
  8. ^ Craig-Wood, Nick. "DWT enteros mod 2 64 -2 32 +1" . www.craig-wood.com .
  9. ^ Crandall, Richard; Fagin, Barry (1994), "Transformaciones ponderadas discretas y aritmética de enteros grandes" (PDF) , Mathematics of Computation , 62 (205): 305–324 , doi : 10.2307/2153411 , JSTOR 2153411 
  10. ^ Yao Wang ; Xuelong Zhu (1988). "Un algoritmo rápido para la transformada de Fourier sobre campos finitos y su implementación VLSI". IEEE Journal on Selected Areas in Communications . 6 (3): 572– 577. doi : 10.1109/49.1926 .
  • https://www.apfloat.org/ntt.html
Obtenido de " https://en.wikipedia.org/w/index.php?title=Discrete_Fourier_transform_over_a_ring&oldid=1357836427 "