Radix-4 FFT contro Radix-2


10

Un'implementazione di radix-4 è più veloce di una FFT radix-2 equivalentemente ben codificata? E se è così, perché dovrebbe essere più veloce?

Risposte:


5

Dipende. Teoricamente puoi salvare alcuni moltiplicazioni con un radix-4 in quanto radix-4 ha un 1/4 del numero di farfalle e 3 mpy + 8 aggiunte per farfalla (se adeguatamente strutturato) e il radix 2 ha 1 mpy + 2 aggiunte per farfalla .

Quindi in termini di moltiplicazioni è un po 'meglio, tuttavia c'è una maggiore complessità in termini di struttura del codice, gestione delle eccezioni, gestione dei coefficienti, gestione dei registri, indirizzamento inverso delle cifre, ecc.

Quindi è solo un vantaggio se il numero di mpy è il fattore limitante che al giorno d'oggi per la maggior parte dell'hardware non è il caso.


2

qui ! puoi trovare una spiegazione delle principali differenze tra i due algoritmi per la FFT. Alla fine del documento ci sono alcune tabelle in cui è possibile notare che, se la dimensione dei dati aumenta, le prestazioni del radix-4 fft sono migliori del radix-2.


2

un modo semplice di guardare una FFT radix-4 è pensare a una farfalla radix-4 come contenente 4 farfalle radix-2; 2 farfalle in un passaggio e 2 farfalle nel passaggio successivo. e i fattori di twiddle sono gli stessi tranne che il complesso fattore di twiddle per le farfalle è disattivato da una differenza di fase di . ma tutto ciò significa scambiare con e scambiare alcuni segni più e meno. quindi il tuo Alix FFT radix-4 deve solo leggere una volta nei 4 valori complessi, caricare una volta nel riquadro complesso, fare un mucchio di aritmetica e memorizzare i 4 risultati una volta. fai un passaggio radix-4 e svolgi lo stesso compito di due passaggi radix-2.π2peccato()cos()

il numero netto di moltiplicazioni e aggiunte credo siano le stesse, ma la farfalla radix-4 può essere fatta tutte nel banco dei registri del processore (penso che ci siano circa 16 diversi registri a virgola mobile e ne occorrano 8 per le parti reali e imag dei 4 valori, 2 registri per il sin e il twiddle del coseno e forse qualche altro registro o due per lo scratch). questo è più veloce di farlo in memoria.


-2

In radix 2, il numero di campioni è in termini di potenza di 2 potenze ma in radix 4 il numero di campioni appartenenti è una potenza di 4.


1
Suggerirei di spiegare perché ciò ha un effetto sulla velocità dell'algoritmo, che non è evidente dal valore dell'esponente.
MBaz,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.