Radix-4 FFT versus Radix-2

10

¿Es una implementación radix-4 más rápida que una radix-2 FFT equivalentemente codificada? Y si es así, ¿por qué sería más rápido?

hotpaw2
fuente

Respuestas:

5

Depende. Teóricamente, puede guardar algunas multiplicaciones con un radix-4, ya que radix-4 tiene un 1/4 del número de mariposas y 3 mpy + 8 adiciones por mariposa (si está estructurado adecuadamente) y el radix 2 tiene 1 mpy + 2 agregados por mariposa .

Por lo tanto, en términos de multiplicaciones, es un poco mejor, sin embargo, existe una mayor complejidad en términos de estructura de código, manejo de excepciones, gestión de coeficientes, gestión de registros, direccionamiento de inversión de dígitos, etc.

Por lo tanto, solo es una ventaja si el número de mpy es el factor limitante que para la mayoría del hardware en estos días no es el caso.

Hilmar
fuente
2

aqui ! Puede encontrar una explicación de las principales diferencias entre los dos algoritmos para la FFT. Al final del documento hay algunas tablas en las que es posible observar que, si el tamaño de los datos aumenta, el rendimiento del radix-4 fft es mejor que el radix-2.

Leos313
fuente
2

π2pecado()cos()

el número neto de multiplicaciones y adiciones creo que es el mismo, pero la mariposa radix-4 se puede hacer todo en el banco de registros del procesador (creo que hay alrededor de 16 registros de punto flotante diferentes y necesita 8 para las partes real e imag de los 4 valores, 2 registros para los twiddles de pecado y coseno, y tal vez algún otro registro o dos para scratch). Esto es más rápido que hacerlo en la memoria.

robert bristow-johnson
fuente
-2

En la raíz 2, el número de muestra es en términos de potencia de potencia 2 pero en la raíz 4 el número de muestras pertenece es una potencia de 4.

usuario36410
fuente
1
Sugeriría explicar por qué eso tiene un efecto en la velocidad del algoritmo, que no es obvio por el valor del exponente.
MBaz