[Numpy-discussion] zoom FFT with numpy?

Charles R Harris charlesr.harris@gmail....
Wed Mar 14 23:59:17 CDT 2007


On 3/14/07, Ray Schumacher <subscriber100@rjs.org> wrote:
>
> 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)


That's usually fine. You might want to zero fill to get more samples through
the band. It would help if you gave the sample frequency in Hz too. Anyway,
unless time is important, I would just zero fill by a factor of 4-8 and
transform. You can get the same effect with a chirp-z transform, but again
this is depends on how much programming work you want to do. If you just
have a couple of lines in the band that you want to locate you could also
try maximum entropy methods.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://projects.scipy.org/pipermail/numpy-discussion/attachments/20070314/abb27bf0/attachment.html 


More information about the Numpy-discussion mailing list