I found some explanation alongwith the Matlab Code here, but I can't figure out, without a good example, why would this result in spectral zooming? (or develop some time intuition like viewing it as time resolution vs. frequency resolution thing). Any help (hopefully with an example) will be appreciated.
The CZT allows for a fairly general evaluation of the Z transform - the more general evaluation path looks like a spiral, so it has a radial component step size as well an angular step size.For spectral zooming, you're only using a subset of this. You're evaluating around the unit circle and only for a small set of frequencies.
The Zoom FFT can be implement in a more traditional manner:
- Frequency shift by multiplying time domain signal by a complex exponential - baseband around the center frequency.
- Low-pass filter and decimate - to reduce the sampling frequency.
- Apply a (shorter) FFT
Note that the FFT in step 3 is shorter because of the reduced sampling rate. To get a frequency resolution of $\nabla f$ you need a time series of length $T=1/\nabla f$ and at a lower sampling frequency you can get that time length signal in fewer samples. This series of steps applies a series of operations to the signal.
Now another way of looking at those series of steps is to apply them to the filter rather than the signal. Now you're shifting a low-pass filter in frequency so it becomes a complex band-pass filter and the decimation step causes duplicates of your band-pass signal to appear around 0 Hz (and throughout the entire frequency spectrum). At this point you can apply a shorter FFT. To make the two series of steps exactly equivalent there are some restrictions on the sampling frequency - If you shift the filter to a center frequency of $f_c$ then you have to be careful of the decimation factor if you want the frequency content at $f_c$ to be mapped exactly to 0 Hz.
The CZT for Zoom FFT is essentially doing these same steps. If you examine the CZT from this point of view you can work the mathematical equivalence.
This part of that paper suggests the answer:
The issue being that the standard FFT just does linearly-spaced spectral samples from $-f_s/2$ to $f_s/2$ where $f_s$ is the sampling frequency. The CZT allows for
arbitrary selection of the sampled points by selection of
And, as @johnnymopo says below, the CZT is not limited to the unit circle: any part of the $z$-plane can be examined.