I'm working on an application where I want to grab high-resolution pieces of the spectrum, but I don't need the whole spectrum-- just a few bands. I've looked into using the Goertzel algorithm (too slow; with the number of points we want the regular FFT is faster), pruned FFTs (doesn't look like much of an improvement in performance), and polyphase filter banks (PFBs) (the problem being that it requires an FFT of the same size that I would have otherwise already computed, defeating the point).

The books that I've looked at so far ("Digital Signal Processing, 4th ed" by Proakis/Manolakis and "Signal Analysis: Wavelets, Filter Banks, Time-Frequency Transforms and Applications" by Mertins) both focus on either "critically sampled", where the decimation rate $D$ equals the number of subbands $N$ or "oversampled" where $N > D$.

Is there a way to produce a computationally efficient PFB such that $D > N$? In my application the loss of information is unimportant because I only need a few subbands of small bandwidth.

  • 1
    $\begingroup$ You might be interested in the zoom FFT. $\endgroup$ – Jason R Jun 12 '15 at 18:40

To analyze a slice of the spectrum:

  1. Use an IQ mixer to translate the centre of the slice, $F_c$, to 0 Hz. This is done by multiplying the signal with $e^{-j2\pi F_c/F_s}$, where $F_s$ is the sample frequency.
  2. Use a decimation low-pass FIR filter to remove the signal components outside the slice. The pass band of the filter is half the slice width. Output from this process is the down-converted slice sampled at a low sampling rate (just meeting the Nyquist criteria).
  3. Apply your favourite window function and FFT to the time signal.

This process is repeated for each of the wanted slices.

  • $\begingroup$ This was what I was looking at, but might be too computationally intensive if I have to look at several bands. Good to know I'm on the right track though. $\endgroup$ – roberto Jun 16 '15 at 11:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.