Algoritmo FFT Vector-radix - Vector-radix FFT algorithm

L' algoritmo FFT vettore-Radix , è un multidimensionale trasformata di Fourier veloce algoritmo (FFT), che è una generalizzazione del normale algoritmo di Cooley-Tukey FFT che divide la trasformazione dimensioni da radices arbitrarie. Romperà un multidimensionale (MD) trasformata di Fourier discreta (DFT) giù in sempre più piccoli fino DFTS MD, in ultima analisi, DFTS MD solo banali devono essere valutate.

Il più comune multidimensionale FFT algoritmo è l'algoritmo riga-colonna, che significa trasformare la matrice prima in un indice e poi nell'altro, vedere più nel FFT . Poi una radice-2 diretta 2-D FFT è stata sviluppata, e può eliminare il 25% dei moltiplica rispetto all'approccio riga-colonna convenzionale. E questo algoritmo è stato esteso a serie rettangolari e radices arbitrarie, che è l'algoritmo generico vettore-radice.

Algoritmo FFT vettore-Radix può ridurre il numero di moltiplicazioni complesse in modo significativo, rispetto a riga vettore algoritmo. Ad esempio, per una matrice elemento (dimensione M, e la dimensione N di ogni dimensione), il numero di multipli complessi di algoritmo FFT vettore-Radix per Radix-2 è , nel frattempo, per l'algoritmo riga-colonna, è . E generalmente, risparmi ancora più grandi moltiplica si ottengono quando questo algoritmo funziona a radices grandi e su array di dimensione superiore.

Nel complesso, l'algoritmo vettore-Radix riduce significativamente la complessità strutturale della tradizionale DFT avente uno schema di indicizzazione meglio, a scapito di un leggero aumento nelle operazioni aritmetiche. Quindi, questo algoritmo è ampiamente usato per molte applicazioni in ingegneria, scienze e la matematica, per esempio, le implementazioni di elaborazione delle immagini, e il processore FFT ad alta velocità di progettazione.

2-D caso DIT

Come con Cooley-Tukey algoritmo FFT , bidimensionale vettore-radice FFT deriva decomponendo regolare 2-D DFT in somme di minore DFT moltiplicato per "girarsi" fattore.

Una decimazione-in-time ( DIT algoritmo) significa che la decomposizione è basato sul dominio del tempo , vedere di più nel algoritmo di Cooley-Tukey FFT .

Supponiamo il 2-D DFT

dove , e , ed è una matrice, e .

Per semplicità, supponiamo che , e radix- ( sono numeri interi).

Utilizzando il cambiamento di variabili:

  • , dove
  • , dove

dove o , poi i due DFT dimensionale può essere scritta come:

Image
Uno stadio "butterfly" per DIT vettore-Radix 2x2 FFT

L'equazione di cui sopra definisce la struttura di base del 2-D DIT radix- "butterfly". (Vedi 1-D "farfalla" in algoritmo di Cooley-Tukey FFT )

Quando , l'equazione può essere suddiviso in quattro sommatorie: uno sopra quei campioni di x per cui entrambi e sono anche, quello per il quale è pari e dispari, uno dei quali è dispari e è uniforme, e una per cui entrambi e sono dispari , e questo porta a:

dove

2-D caso DIF

Analogamente, una decimazione-in-frequenza ( DIF , chiamato anche l'algoritmo Sande-Tukey) algoritmo s'intende la decomposizione si riferiscono al dominio di frequenza , vedere più nel algoritmo Cooley-Tukey FFT .

Utilizzando il cambiamento di variabili:

  • , dove
  • , dove

dove o , e l'equazione DFT può essere scritta come:

altri approcci

L' algoritmo FFT split-radice è stato dimostrato di essere un metodo utile per 1-D DFT. E questo metodo è stato applicato alla FFT vettoriale Radix ottenere una FFT scissione vettore-radice.

In algoritmo vettore-Radix 2-D convenzionale, scomponiamo gli indici in 4 gruppi:

Dall'algoritmo vettore-Radix spaccato, i primi tre gruppi rimangono invariati, il quarto gruppo dispari-dispari è ulteriormente scomposto in altri quattro sottogruppi, e sette gruppi in totale:

Ciò significa che il quarto termine in 2-D DIT radix- equazione diventa:

dove

Il 2-DN da N DFT viene ottenuta mediante l'uso successivo della decomposizione sopra, fino all'ultima fase.

E 'stato dimostrato che l'algoritmo vettore radice scissione ha salvato circa il 30% delle moltiplicazioni complesse e circa lo stesso numero dei complessi aggiunte per tipica matrice, rispetto l'algoritmo vettore-radice.

Riferimenti