stringtranslate.com

Algoritmo FFT de factor primo

El algoritmo de factor primo (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 un tamaño N = N 1 N 2 como una DFT bidimensional N 1 × N 2 , pero solo para el caso en el que N 1 y N 2 son primos relativos . Estas transformadas más pequeñas de tamaño N 1 y N 2 se pueden evaluar aplicando PFA de forma recursiva o utilizando algún otro algoritmo FFT.

PFA no debe confundirse con la generalización de base mixta del popular algoritmo de Cooley-Tukey , que también subdivide una DFT de tamaño N = N 1 N 2 en transformaciones más pequeñas de tamaño N 1 y N 2 . El último algoritmo puede utilizar cualquier factor (no necesariamente primos relativos), pero tiene la desventaja de que también requiere multiplicaciones adicionales por raíces unitarias llamadas factores de giro , además de las transformaciones más pequeñas. Por otro lado, PFA tiene las desventajas de que sólo funciona para factores relativamente primos (por ejemplo, es inútil para potencias de dos tamaños) y que requiere una reindexación más complicada de los datos basada en los isomorfismos de grupos aditivos . Sin embargo, tenga en cuenta que PFA se puede combinar con Cooley-Tukey de base mixta, donde el primero factoriza N en componentes relativamente primos y el segundo maneja factores repetidos.

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 llaman al algoritmo de Winograd PFA FFT.

(Aunque el PFA es distinto del algoritmo de 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, e inicialmente hubo cierta confusión sobre si los dos algoritmos eran diferentes. De hecho , fue el único trabajo anterior de FFT citado por ellos, ya que en ese momento no estaban al tanto de la investigación anterior de Gauss y otros).

Algoritmo

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

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

Mapeo basado en CRT

Para una factorización coprima , tenemos el mapa de residuos chino de a con como su inverso, donde están 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 de álgebra

PFA se puede expresar de manera de alto nivel en términos de isomorfismos de álgebra . Primero recordamos que para un anillo conmutativo y un isomorfismo de grupo de a , tenemos el siguiente isomorfismo de álgebra donde se refiere al producto tensorial de álgebras .

Para ver cómo funciona PFA, elegimos y somos grupos aditivos . También identificamos como y como . Al elegir como isomorfismo de grupo , tenemos el isomorfismo de álgebra , o alternativamente, ahora observe que en realidad es un isomorfismo de álgebra de a y cada uno es un isomorfismo de álgebra de a , tenemos un isomorfismo de álgebra de a . Lo que nos dice PFA es que dónde y se están reindexando sin aritmética real en .

Contando el número de transformaciones multidimensionales

Observe que la condición para transformarse en se basa en "un" isomorfismo de grupo aditivo de a . Cualquier isomorfismo de grupo aditivo funcionará. Para contar el número de formas de transformarse en , solo necesitamos contar el número de isomorfismos de grupos aditivos de a , o alternativamente, el número de automorfismos de grupos aditivos en . Dado que es cíclico , cualquier automorfismo se puede escribir como donde es un generador de . Según la definición de , los , son exactamente aquellos coprimos con . Por lo tanto, existen exactamente muchos mapas de este tipo donde está la función totiente de Euler . El ejemplo más pequeño es el de , que muestra los dos mapas de la literatura: el "mapeo CRT" y el "mapeo de Ruritania". [1]

Ver también

Notas

  1. ^ Bueno 1971

Referencias