FFT de 256 puntos, pero solo necesita de 5 a 6 frecuencias, ¿hay alguna forma mejor?

4

Debido a las restricciones de mi sistema, tengo una FFT de 256 puntos. Sin embargo, solo me importa la energía en 5 o 6 de los 256 contenedores. La FFT de 256 pts sigue siendo más rápida que 5 o 6 DFT específicas, pero parece inútil calcular 256 frecuencias para solo 5 o 6. ¿Hay una mejor manera? ¿Sería el submuestreo lo que querría hacer aquí? Si reduzco de 256 a 64 frecuencias, obtendría un factor de mejora 5x en el no. de operaciones, pero no estoy seguro de entender el concepto en su totalidad (incluso después de leer el libro de procesamiento de señales de Tiempo Discreto de Oppenheim), es decir, esta sería una aplicación adecuada de este concepto.

Cualquier sugerencia sobre qué mirar o leer más sería apreciada grandemente, y algunos ejemplos del mundo real me ayudarían a entender que es mejor. Gracias.

    
pregunta jrive

1 respuesta

5

Si quisiera 1 o 2 frecuencias, el algoritmo de Goertzel sería un claro ganador.

Si quisiera varias docenas, entonces la FFT sería un claro ganador, incluso después de desechar la mayoría de las muestras resultantes, debido a la alta eficiencia que le proporciona la factorización del proceso.

Con 5 o 6 frecuencias requeridas, estás en la región cruzada. Dependerá de qué tan bien se implemente cada algoritmo. Obtenga o escriba código para ambos y tómelos en tiempo.

Si entiende la FFT lo suficientemente bien como para recodificar partes de ella, entonces existe una técnica llamada 'poda', en la que no calcula ninguna de las respuestas que no necesita. Es posible que esto no ahorre muchos ciclos de cálculo, ya que a) la factorización significa que todos los resultados deberán calcularse para las primeras rondas de todos modos y b) el cálculo condicional puede ser menos eficiente que simplemente ejecutar los bucles y hacerlos todos. ¿Desea elaborar un algoritmo cada vez que cambie las frecuencias que desea que envíen?

    
respondido por el Neil_UK

Lea otras preguntas en las etiquetas