Scipy: transformada de Fourier de unas pocas frecuencias seleccionadas

estoy usandoscipy.fft en una señal, con una ventana móvil para trazar las amplitudes de las frecuencias que cambian con el tiempo (aquí estáun ejemplo, el tiempo está en X, la frecuencia en Y, y la amplitud es el color).

Sin embargo, solo unas pocas frecuencias me interesan (~ 3, 4 frecuencias solamente). Con las FFT parece que no puedo seleccionar solo las frecuencias que quiero (porque aparentemente el rango de frecuencias está determinado por el algoritmo), por lo que calculo muchas cosas inútiles y mi programa incluso se bloquea con unaMemoryError si la señal es demasiado larga

Qué tengo que hacer ? ¿Debo utilizar una transformada de Fourier personalizada? En este caso, los enlaces de buenas implementaciones son bienvenidos.scipy camino ?

EDITAR

Después de la respuesta de @jfaller, decidí (intentar) implementar el algoritmo de Goertzel. Se me ocurrió esto:https://gist.github.com/4128537 pero no funciona (la frecuencia 440 no aparece, no importa los picos, no me molesté en aplicar una ventana adecuada). Alguna ayuda !? Estoy mal con DSP.

Respuestas a la pregunta(2)

Su respuesta a la pregunta