stringtranslate.com

Algoritmo FFT de factor primo

El algoritmo de factores primos (PFA) , también llamado algoritmo de Good–Thomas (1958/1963), es un algoritmo de transformada rápida de Fourier (FFT) que reexpresa la transformada discreta de Fourier (DFT) de tamaño N = N 1 N 2 como una DFT bidimensional N 1 × N 2 , pero solo para el caso en que N 1 y N 2 sean primos entre sí . Estas transformadas más pequeñas de tamaño N 1 y N 2 pueden evaluarse aplicando PFA de forma recursiva o utilizando algún otro algoritmo de FFT.

PFA no debe confundirse con la generalización de base mixta del popular algoritmo Cooley–Tukey , que también subdivide una DFT de tamaño N = N 1 N 2 en transformadas más pequeñas de tamaño N 1 y N 2. El último algoritmo puede usar cualquier factor (no necesariamente primos relativos), pero tiene la desventaja de que también requiere multiplicaciones adicionales por raíces de la unidad llamadas factores twiddle , además de las transformadas más pequeñas. Por otro lado, PFA tiene las desventajas de que solo funciona para factores primos relativos (por ejemplo, es inútil para tamaños de potencia de dos ) y que requiere una reindexación más complicada de los datos basada en los isomorfismos del grupo aditivo . Sin embargo, tenga en cuenta que PFA se puede combinar con Cooley–Tukey de base mixta, con el primero factorizando N en componentes primos relativos y el segundo manejando factores repetidos.

El PFA también está estrechamente relacionado con el algoritmo FFT anidado de Winograd, donde este último realiza la transformación N 1 por N 2 descompuesta mediante técnicas de convolución bidimensional más sofisticadas. Por lo tanto, algunos artículos más antiguos también denominan al algoritmo de Winograd FFT PFA.

(Aunque el PFA es distinto del algoritmo Cooley-Tukey, el trabajo de Good de 1958 sobre el PFA fue citado como inspiración por Cooley y Tukey en su artículo de 1965, y al principio hubo cierta confusión sobre si los dos algoritmos eran diferentes. De hecho, fue el único trabajo FFT anterior citado por ellos, ya que entonces no estaban al tanto de la investigación anterior de Gauss y otros).

Algoritmo

Sea un polinomio y una raíz principal -ésima de la unidad . Definimos la DFT de como la -tupla . En otras palabras, Para simplificar, denotamos la transformación como .

El PFA se basa en una factorización coprima de y se convierte en para algunas opciones de donde es el producto tensorial .

Mapeo basado en CRT

Para una factorización coprima , tenemos el mapa de resto chino de a con como su inverso donde son los elementos idempotentes ortogonales centrales con . Eligiendo (por lo tanto, ), reescribimos de la siguiente manera: Finalmente, definimos y , tenemos Por lo tanto, tenemos la DFT multidimensional, .

Como isomorfismos del álgebra

El PFA se puede expresar de manera general en términos de isomorfismos algebraicos . En primer lugar, recordamos que para un anillo conmutativo y un isomorfismo de grupo de a , tenemos el siguiente isomorfismo algebraico donde se refiere al producto tensorial de las álgebras .

Para ver cómo funciona PFA, elegimos y son grupos aditivos . También identificamos como y como . Eligiendo como isomorfismo de grupo , tenemos el isomorfismo algebraico , o alternativamente, Ahora observe que es en realidad un isomorfismo algebraico de a y cada uno es un isomorfismo algebraico de a , tenemos un isomorfismo algebraico de a . Lo que PFA nos dice es que donde y están reindexando sin aritmética real en .

Contando el número de transformaciones multidimensionales

Nótese que la condición para transformar en depende de "un" isomorfismo de grupo aditivo de a . Cualquier isomorfismo de grupo aditivo funcionará. Para contar la cantidad de formas de transformar en , solo necesitamos contar la cantidad de isomorfismos de grupo aditivo de a , o alternativamente, la cantidad de automorfismos de grupo aditivo en . Dado que es cíclico , cualquier automorfismo puede escribirse como donde es un generador de . Por la definición de , los ' son exactamente aquellos coprimos con . Por lo tanto, hay exactamente muchos de esos mapas donde es la función totiente de Euler . El ejemplo más pequeño es donde , que demuestra los dos mapas en la literatura: el "mapeo CRT" y el "mapeo ruritano". [1]

Véase también

Notas

  1. ^ Buen 1971

Referencias