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. enter image description here

  • $\begingroup$ I am studying the FFT transform and CZT Transform. It is not clear to me if the CZT transform actually increases the resolution relative to the FFT or just does interpolation. $\endgroup$ Feb 18, 2021 at 15:59
  • $\begingroup$ @AbelGarcía If the FFT is using all the data, then all you can do is interpolation. More resolution requires more data, and no algorithm will generate more data for you. $\endgroup$
    – Peter K.
    Feb 18, 2021 at 18:58

2 Answers 2


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:

  1. Frequency shift by multiplying time domain signal by a complex exponential - baseband around the center frequency.
  2. Low-pass filter and decimate - to reduce the sampling frequency.
  3. 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:

enter image description here

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 f2 and f1 in w.

And, as @johnnymopo says below, the CZT is not limited to the unit circle: any part of the $z$-plane can be examined.

  • 3
    $\begingroup$ And in general, not on the unit circle, although I have never needed to do such a thing $\endgroup$
    – johnnymopo
    Feb 1, 2016 at 3:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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