Implementando un filtro FIR de paso bajo, ¿cuándo se debe usar FFT e IFFT en lugar de convolución de dominio de tiempo?Filtro de paso bajo usando FFT en lugar de implementación de convolución
El objetivo es lograr el menor tiempo de CPU requerido para los cálculos en tiempo real. Como sé, FFT tiene una complejidad de O (n log n), pero la convolución en el dominio del tiempo es de complejidad O (n²). Para implementar un filtro de paso bajo en el dominio de frecuencia, uno debe usar FFT, luego multiplicar cada valor con coeficientes de filtrado (que se traducen en dominio de frecuencia), luego hacer IFFT.
Entonces, la pregunta es cuándo se justifica utilizar filtros basados en frecuencia (FFT + IFFT) en lugar de usar un filtro FIR basado en convolución directa. Digamos, si uno tiene 32 coeficientes de punto fijo, ¿se debería usar FFT + IFFT o no? ¿Qué hay de 128 coeficientes? Y así sucesivamente ...
Tratando de optimizar un código fuente existente (filtro FIR basado en la convolución), estoy totalmente confundido, o debo usar FFT o simplemente optimizarlo para usar SSE o no.