Sampling rate F_s = 1000 Hz, N = 256 samples, CZT output M = 256 bins. Input signal: x[n] = sin(2 pi f_1 n / F_s) + sin(2 pi f_2 n / F_s).
Top: DFT |X[k]| (blue), 0..F_s/2 in N bins. Bottom: CZT |X[k]| (red), [f_start, f_end] in M bins. Yellow lines mark f_1, f_2.
The Chirp-Z transform (CZT) is a generalised DFT that samples the Z-plane along a logarithmic spiral at M points:
$$X[k] = \sum_{n=0}^{N-1} x[n]\,A^{-n}\,W^{nk}, \qquad k = 0,1,\dots,M-1$$with $A = A_0 e^{j\theta_0}$ and $W = W_0 e^{-j\phi_0}$. For a Zoom-DFT we choose:
$$A = e^{j\,2\pi f_\text{start}/F_s}, \qquad W = e^{-j\,2\pi (f_\text{end}-f_\text{start})/(M\,F_s)}$$which places M evenly spaced bins across $[f_\text{start}, f_\text{end}]$. The plain DFT splits $0..F_s/2$ into N bins, so the resolutions are:
$$\Delta f_\text{DFT} = \frac{F_s}{N}, \qquad \Delta f_\text{CZT} = \frac{f_\text{end}-f_\text{start}}{M}$$With the defaults (F_s=1000, N=M=256, f_start=90, f_end=120) the DFT has 3.91 Hz/bin while the CZT has 0.117 Hz/bin — about 33x finer.