[Numpy-discussion] zoom FFT with numpy?

Ray Schumacher subscriber100@rjs....
Thu Mar 15 00:24:25 CDT 2007

On 3/14/07, "Charles R Harris" wrote:

 > Sounds like you want to save cpu cycles.
 > How much you can save will depend
 > on the ratio of the bandwidth to the nyquist.

The desired band is rather narrow, as the goal is to determine the f of a 
peak that always occurs in a narrow band of about 1kHz around 7kHz

 >2) frequency shift, {low pass}, and downsample

 > Much depends on the length of the data run and what the signal to noise is.

data is stable for 2-4k samps, and s/n is low, ~5-10

 > Google indicates that the zoom fft is 2 without the low pass, which is fine
if you don't need optimum s/n in the result.

What I had been doing is a 2048 N full real_FFT with a Hann window, and 
further analyzing the side lobe/bin energy (via linear interp) to try to 
more precisely determine the f within the peak's bin. (How legitimately 
valuable that is I'm not sure... IANAM)

It's awfully hard to beat the FFTPACK library's full FFT by hand-rolling 
anything else, I'd guess. I was hoping for some all-numpy procedure that I 
could use weave with; that might stand a chance of being faster.


More information about the Numpy-discussion mailing list