I am using `scipy.fft` on a signal, with a moving window to plot the amplitudes of frequencies changing with time (here is [an example](http://www.presonus.com/uploads/products/media/images/PreSonus_Smaart_Spectra_in_VSL-copy.jpg), time is on X, frequency on Y, and amplitude is the color).

However, only a few frequencies interest me (~3, 4 frequencies only). With FFTs it seems like I can't select only the frequencies I want (cause apparently the range of frequencies is determined by the algorithm), so I calculate a lot of useless stuff, and my program even crashes with a `MemoryError` if the signal is too long.

What should I do ? Do I have to use a custom Fourier transform - in which case, links of good implementations are welcome - , or is there a `scipy` way ? 

---

**EDIT**

After @jfaller answer, I decided to (try to) implement the Goertzel algorithm. I came up with this : <https://gist.github.com/4128537> but it doesn't work (frequency 440 doesn't appear, nevermind the peaks, I didn't bother to apply a proper window). Any help !? I am bad with DSP.