Hi

Quote:>I recall having read a few years back (when I used to actually

>read such things at bedtime) about zooming FFTs.

I think you might be looking for what I know as a zoom FFT, an algorithm

used in some commercially available FFT based spectrum analyzers. Here

is a (rough) outline of the algorithm :

(1) The (real) input signal, x(n), is multiplied by the complex signal:

y(n) = x(n) * (cos(2*pi*fc/fs*n) - i*sin(2*pi*fc/fs*n)). fs is the

sample frequency and fc is the center frequency of the frequency

band of interest. (The multiplication with exp(-i*2pi*fc/fs)

corresponds to a convolution with a deltafunction located at fc in

the frequency domain and the result is a frequency shift).

(2) The sample rate of the frequency shifted complex signal, y(n), is

reduced by a factor M. Be sure to lowpass filter y(n) appropriately

before decimation in order to avoid aliasing. The real and the

imaginary part of y(n) can be handled as two separate signals.

(3) The decimated complex signal, z(m), is window weighted, complex

FFT'ed (and perhaps averaged). If an FFT of length N is used the

index, n, of a spectrum value (bin) is related to the frequency :

freq(n) = fc + n * fs / (M * N) for n < N/2

fc + (n-N) * fs / (M * N) for N/2 <= n < N

This method effectively focuses the FFT effort in the frequency band

of interest (near fc). The obtained resolution is equivalent to that

of an FFT of length (N*M).

In a follow-up Mark Fowler gave the following reference:

I think you'll find the following paper of interest:

J. W. Cooley and S. Winograd, "A Limited range Discrete Fourier

Transform Algorithm," ICASSP 1980, pp. 213-217.

(which I haven't read)

Best regards

Jens Joergen

*---------------------*---------------------------------------------------*

: Jens Jorgen Nielsen : Ever watched galaxies clash ? :

*---------------------*---------------------------------------------------*