J'ai un algorithme qui met à zéro une séquence sur 4N, fait une FFT et n'utilise que la fréquence la plus basse N points sur le 4N généré.
Cela semble être beaucoup de travail gaspillé, des idées sur la façon dont cela peut être fait plus rapidement?
Réponses:
Si vous n'avez que quelques bacs, les éléments suivants peuvent être très efficaces pour vous:
1. Faites simplement la DFT à chaque fréquence dont vous avez besoin.
2. Utilisez l'algorithme Goertzel pour chaque fréquence en question.
la source
Le remplissage nul à la longueur 4X, calculant la FFT la plus longue, puis utilisant uniquement les 1/4 / bins inférieurs produit des résultats presque identiques à l'interpolation Sinc fenêtrée de la FFT de longueur d'origine.
Il suffit donc d'utiliser la longueur FFT d'origine et d'interpoler en utilisant un noyau d'interpolation Sinc triphasé avec une largeur de fenêtre appropriée.
la source
Le remplissage nul dans le domaine temporel vous donne une solution de fréquence plus élevée mais pas de nouvelles informations, il fournit donc essentiellement une interpolation dans le domaine de fréquence. Selon la nature de vos signaux et la précision requise, vous pourrez obtenir les points de fréquence supplémentaires avec une FFT régulière de N points et effectuer une interpolation appropriée (linéaire, spline, pchip, sinc, etc.).
la source