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.