I am attempting to use the chirp z-transform for an application that requires arbitrary FFT output sizes less than or equal to the length of the input signal.
However, I've encountered an issue where the total output energy of the CZT for output lengths different from the input length varies considerably from the input energy. Initially I tested this by windowing (using flattop) the input data prior to performing the transform. The returned amplitude values where not consistent depending upon the frequency of the input tone.
I removed the window and repeated the experiment to find the total energy values were correct if the input tone was aligned on the bin center of the first FFT in the CZT transform, but wildly incorrect otherwise.
My best guess is the scalloping loss in the first FFT of the algorithm is somehow causing energy to not be preserved elsewhere.
It would seem to indicate that the CZT algorithm violates Parseval's theorem for output sizes different from the input size.
Does anyone have any suggestions as to what is wrong here?