Apakah implementasi radix-4 lebih cepat dari FFT radix-2 yang dikodekan dengan baik? Dan jika demikian, mengapa lebih cepat?
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.
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.
Dalam radix 2, jumlah sampel dalam hal kekuatan 2 daya tetapi dalam radix 4 jumlah sampel milik adalah kekuatan 4.