Radix-4 FFT versus Radix-2

10

Apakah implementasi radix-4 lebih cepat dari FFT radix-2 yang dikodekan dengan baik? Dan jika demikian, mengapa lebih cepat?

hotpaw2
sumber

Jawaban:

5

Tergantung. Secara teoritis Anda dapat menyimpan beberapa kelipatan dengan radix-4 karena radix-4 memiliki 1/4 jumlah kupu-kupu dan 3 mpy + 8 menambahkan per kupu (jika terstruktur dengan benar) dan radix 2 memiliki 1 mpy + 2 menambahkan per kupu .

Jadi dalam hal penggandaan, ini sedikit lebih baik, namun ada kompleksitas yang lebih tinggi dalam hal struktur kode, penanganan pengecualian, manajemen koefisien, manajemen register, pengalamatan digit-reverse, dll.

Jadi itu hanya keuntungan jika jumlah mpy adalah faktor pembatas yang untuk sebagian besar perangkat keras saat ini tidak demikian.

Hilmar
sumber
2

di sini ! Anda dapat menemukan penjelasan tentang perbedaan utama antara kedua algoritma untuk FFT. Pada akhir dokumen ada beberapa tabel yang memungkinkan untuk dicatat bahwa, jika ukuran data meningkat, kinerja radix-4 fft lebih baik daripada radix-2.

Leos313
sumber
2

π2sin()cos()

jumlah bersih dari perkalian dan penambahan yang saya pikir sama, tetapi radix-4 butterfly dapat dilakukan di bank register prosesor (saya pikir ada sekitar 16 register floating-point yang berbeda dan Anda perlu 8 untuk bagian-bagian nyata dan imaj dari 4 nilai, 2 register untuk twiddle sin dan cosine, dan mungkin beberapa atau dua register lain untuk awal). ini lebih cepat daripada melakukannya di memori.

robert bristow-johnson
sumber
-2

Dalam radix 2, jumlah sampel dalam hal kekuatan 2 daya tetapi dalam radix 4 jumlah sampel milik adalah kekuatan 4.

pengguna36410
sumber
1
Saya akan menyarankan menjelaskan mengapa itu berpengaruh pada kecepatan algoritma, yang tidak jelas dari nilai eksponen.
MBaz