The Chirp z-Transform (CZT) is a pretty useful tool in signal processing for increasing the resolution of a signal's frequency spectrum within a certain frequency band, without having to increase the sampling frequency/number of samples of the continuous time signal. The CZT calculates the DFT (discrete fourier transform) of a time series by converting the DFT equation into a convolution sum of two series, which can easily be calculated using the convolution property of fourier transforms. More importantly, the CZT algorithm can map a DFT onto circles, spirals, and arcs in the complex z-plane. By mapping the transform to a full circle with radius 1, we get the usual DFT. By mapping it onto circular arcs, we get narrow band DFTs, and by increasing the number of frequency samples within those arcs, we can obtain a higher resolution frequency response. I'm not sure what use it would be to map a DFT onto a spiral or spiral arc, but in any case, it requires extremely an high floating point precision capability for computation.
To implement the CZT, you could use the readily available czt() function in Matlab's Signal Processing Toolbox, or the chirpz() function in MathCAD's Signal Processing Extension Pack. But if you don't have access to these toolboxes, or just want to learn and play around with the CZT like I did, it isn't hard to implement on any programming language. An excellent reference, in case you do want to implement your own CZT or learn about it, is the following 1969 paper by Rabiner, Schafer, and Rader:
The Chirp z-Transform Algorithm
A useful concept that is used in the implementation, is to be able to calculate a regular/linear convolution using a DFT/FFT. To do this you first have to zero-pad both series to a specific length, and then perform a circular convolution by calculating the individual DFTs of both series and the inverse DFT of their product. Also, to calculate a DFT of a time series with the efficient standard FFT algorithm, the zero-padded series has to be of radix-2 length.
The video at the bottom shows the CZT at work for a narrow band spectrum of a time series.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment