Scipy: transformacja Fouriera kilku wybranych częstotliwości

ja używamscipy.fft na sygnał, z ruchomym oknem, aby wykreślić amplitudy częstotliwości zmieniających się w czasie (tutajprzykład, czas jest na X, częstotliwość na Y, a amplituda to kolor).

Jednak interesuje mnie tylko kilka częstotliwości (tylko 3, 4 częstotliwości). Z FFT wydaje się, że nie mogę wybrać tylko tych częstotliwości, które chcę (ponieważ najwyraźniej zakres częstotliwości jest określony przez algorytm), więc obliczam wiele bezużytecznych rzeczy, a mój program nawet zawiesza sięMemoryError jeśli sygnał jest za długi.

Co powinienem zrobić ? Czy muszę użyć niestandardowej transformacji Fouriera - w takim przypadku linki dobrych implementacji są mile widziane - lub czy istniejescipy droga ?

EDYTOWAĆ

Po odpowiedzi @jfaller postanowiłem (spróbuj) zaimplementować algorytm Goertzela. Wymyśliłem to:https://gist.github.com/4128537 ale nie działa (częstotliwość 440 nie pojawia się, nigdy nie widzę szczytów, nie zawracałem sobie głowy odpowiednim oknem). Jakaś pomoc !? Jestem zły z DSP.

questionAnswers(2)

yourAnswerToTheQuestion