Sí, FFTW tiene un rendimiento [matemático] O (n \ lg n) [/ matemático] para cualquier tamaño de entrada n . El valor de la constante k que está oculta por la notación O grande dependerá del algoritmo específico que utilice (que elige probando muchos algoritmos diferentes, midiendo el tiempo de ejecución real de cada uno y luego eligiendo el más rápido).
El algoritmo de decimación en el tiempo radix-2 (DIT) Cooley-Tukey requiere [matemáticas] \ frac {3} {2} N \ lg N – 5 N + 8 [/ matemáticas] multiplicaciones y [matemáticas] \ frac {7 } {2} N \ lg N – 5 N + 8 [/ matemáticas], para un recuento total de operaciones de [matemáticas] 5 N \ lg N – 10 N + 16 [/ matemáticas], por lo tanto, [matemáticas] k = 5 [/matemáticas]. (Fuente: P. Duhamel y M. Vetterli, “Transformaciones rápidas de Fourier: una revisión tutorial y un estado del arte”, Procesamiento de señales , vol. 19, no. 4, pp. 259-299, abril de 1990. [En línea ]. Disponible: http://dx.doi.org/10.1016/0165-1…)
Para un Cooley-Tukey de decimación en el tiempo radix-4 (DIT), podemos reducir el recuento de operaciones a [matemáticas] \ frac {9} {8} N \ lg N – \ frac {43} {12} N + \ frac {16} {3} [/ matemáticas] multiplicaciones y [matemáticas] \ frac {25} {8} N \ lg N – \ frac {43} {12} N + \ frac {16} {3} [/ matemáticas], para un recuento total de operaciones de [matemáticas] \ frac {17} {4} N \ lg N – \ frac {43} {6} N + \ frac {32} {3} [/ matemáticas], por lo tanto [matemáticas] k = 4.25 [/ matemáticas].
Durante mucho tiempo, el algoritmo split-radix fue el FFT radix-2 más eficiente. Requiere [matemáticas] N \ lg N – 3 N + 4 [/ matemáticas] multiplicaciones y [matemáticas] 3 N \ lg N – 3 N + 4 [/ matemáticas], para un recuento total de operaciones de [matemáticas] 4 N \ lg N – 6 N + 8 [/ matemáticas], por lo tanto, [matemáticas] k = 4 [/ matemáticas].
- ¿Qué sucede cuando se aplica un voltaje mayor que el voltaje nominal a un aparato eléctrico?
- ¿Por qué parpadean las bombillas cuando enciendo electrodomésticos grandes como refrigerador, aire acondicionado, etc.?
- ¿Por qué el voltaje y la frecuencia de corriente alterna (CA) no están estandarizados en todo el mundo?
- ¿Cuál es la diferencia entre el ángulo de torque y el ángulo de carga en una máquina síncrona trifásica?
- ¿Cuál es un mejor enfoque para trabajar con un programa C en verificación de diseño, Verilog PLI o SystemVerilog DPI? Explique en términos de facilidad de uso, esfuerzo de código, esfuerzo de ejecución y más.
Recientemente, se propuso un nuevo algoritmo modificado de radix dividido con un recuento total de operaciones de [matemáticas] \ frac {34} {9} N \ lg N – \ frac {124} {27} N – 2 \ lg N – \ frac {2} {9} (- 1) ^ {\ lg N} \ lg N [/ math]
[matemáticas] + \ frac {16} {27} (- 1) ^ {\ lg N} + 8 [/ matemáticas], es decir, [matemáticas] k = \ frac {34} {9} = 3. \ bar {7 } [/ math] (Fuente: SG Johnson y M. Frigo, “Una FFT Split-Radix modificada con menos operaciones aritméticas”, IEEE Transactions on Signal Processing , vol. 55, no. 1, pp. 111-119, enero. 2007. [En línea]. Disponible: http://dx.doi.org/10.1109/tsp.20…). Se implementa en FFTW, pero parece tener un efecto insignificante en el rendimiento (a excepción de algunas transformaciones discretas de coseno de tamaño pequeño).