Radix-4 FFT versus Radix-2

10

Uma implementação radix-4 é mais rápida que uma FFT radix-2 equivalente e bem codificada? E se sim, por que seria mais rápido?

hotpaw2
fonte

Respostas:

5

Depende. Teoricamente, você pode salvar algumas multiplicações com um radix-4, pois o radix-4 tem 1/4 do número de borboletas e 3 mpy + 8 adições por borboleta (se estruturado corretamente) e o radix 2 tem 1 mpy + 2 adições por borboleta .

Portanto, em termos de multiplicação, é um pouco melhor, no entanto, existe uma complexidade maior em termos de estrutura de código, tratamento de exceções, gerenciamento de coeficientes, gerenciamento de registros, endereçamento de dígitos reversos, etc.

Portanto, é apenas uma vantagem se o número de mpy for o fator limitante que, para a maioria dos hardwares atualmente, não é o caso.

Hilmar
fonte
2

aqui ! você pode encontrar uma explicação das principais diferenças entre os dois algoritmos para a FFT. No final do documento, existem algumas tabelas nas quais é possível observar que, se o tamanho dos dados aumentar, o desempenho do radix-4 fft será melhor que o radix-2.

Leos313
fonte
2

uma maneira simples de olhar para uma FFT radix-4 é pensar em uma borboleta radix-4 como contendo 4 borboletas radix-2; 2 borboletas em uma passagem e 2 borboletas na passagem seguinte. e os fatores twiddle são os mesmos, exceto que o complexo fator twiddle para as borboletas está desligado por uma diferença de fase de . mas tudo isso significa trocar por e trocar alguns sinais de mais e menos. portanto, o seu radix-4 FFT alg só precisa ler os 4 valores complexos uma vez, carregar no complexo uma vez, fazer um monte de aritmética e armazenar os 4 resultados uma vez. você faz uma passagem radix-4 e realiza a mesma tarefa que duas passagens radix-2. sen()cos()π2sin()cos()

o número líquido de multiplicações e adições que acho iguais, mas a borboleta radix-4 pode ser feita no banco de registros do processador (acho que existem cerca de 16 registros diferentes de ponto flutuante e você precisa de 8 para as partes real e imag dos 4 valores, 2 registros para as manobras de pecado e cosseno e talvez algum outro registro ou dois para raspar). isso é mais rápido do que fazê-lo na memória.

Robert Bristow-Johnson
fonte
-2

Na raiz 2, o número de amostras é em termos de potência de 2, mas na raiz 4, o número de amostras pertencentes é uma potência de 4.

user36410
fonte
11
Eu sugeriria explicar por que isso afeta a velocidade do algoritmo, o que não é óbvio a partir do valor do expoente.
MBaz