Re: Inverse chirp z



On Mar 25, 9:11 am, Pawel <prulikow...@xxxxxxxxx> wrote:
Just a quick question - would anyone know how to perform inverse chirp
z in Matlab. I know that this type of algorithm is used in commercial
equipment that performs calculation of impulse response form frequency
domain data. It looks like chirp z and especially inverse transform is
some sort of mystery. I found a couple posts over the net but majority
of them never got any replies, what's wrong with chirp z people?

First of all, you have to separate the algorithm from the
transformation.

The chirp z-transform algorithm is an algorithm by Rabiner et al., a
variant of Bluestein's 1968 FFT algorithm, to compute sampled Z
transforms. Choose a particular sampling, and that defines the
sampled transform; if the sampling is regularly spaced in a particular
way, you can then use the CZT algorithm to compute it efficiently.

Regarding the inverse, you first have to ask whether the operation you
want to perform is even invertible. (It is perfectly possible to
perform the chirp z-transform algorithm to compute a sampled z-
transform with fewer outputs than inputs, in which case the transform
is certainly not invertible.) However, let me suppose you are
computing equal numbers of inputs and outputs.

It is not correct, as another poster suggested, to simply perform the
same transform with conjugated coefficients, because the sampled Z
transform in general is not a unitary operation (unlike the discrete
Fourier transform, a *very* special case of the sampled Z transform),
even for the case where you are sampling with z on the unit circle.
What you want to do, in principle, is to simply invert each step of
the chirp z-transform algorithm.

For z on the unit circle, the chirp z-transform algorithm consists of
three steps: multiply the input signal by a chirp, convolve with a
chirp (i.e. FFT and multiply by the FFT of the chirp and then inverse
FFT), and then multiply by a conjugated chirp, as described e.g. in
the Wikipedia article on Bluestein's algorithm. To invert these
steps, you would divide by the conjugated chirp (i.e. multiply by the
chirp), deconvolve with the chirp (i.e. FFT and divide by the FFT of
the chirp and then inverse FFT), and then divide by the chirp (i.e.
multiply by the conjugated chirp). For z not on the circle, the
process is similar but it doesn't involve a chirp on the unit circle.

The numerical stability of this process will likely depend very
strongly on the particular sampling of the Z transform that you use.
e.g. if you have a broad-bandwidth signal but your sampling of the Z
transform is on a small segment of the unit circle (i.e., within a
small bandwidth), I would expect inherent numerical instabilities even
if you use the same number of input and output points. (I haven't
tried it; this is just my best guess.) As another example, problems
involving purely real z (i.e. where your Z transform is a sum of
decaying exponentials) are well known to be numerically unstable to
invert in general.

In other words, beware that the problem you are trying to solve (like
many inverse problems and inverse-scattering problems, which have
whole journals devoted to them) may be intrinsically ill-posed, and
you may need some kind of additional regularization assumption to
obtain a sensible answer.

Regards,
Steven G. Johnson
.



Relevant Pages

  • Re: FFT vs DCT
    ... FFT is a historical accident that caused infinite confusion. ... Starting from the Fourier transform of a complex signal, ... FFTW implements some of these special cases, ... In all cases it produces an algorithm that is as good as (or ...
    (comp.dsp)
  • Re: Resampling
    ... >> I prefer not to do it in the temporal domain, ... >> not IFFT to transform the signal to time domain. ... > the magic of the FFT. ... > Chirp doesn't do the trick, ...
    (comp.dsp)
  • Re: How to fft huge data arrays?
    ... For my little project i need to fft large data arrays, ... applying some sort of filter to a sound file. ... The Fast Fourier Transform, FFT, is a fast way to implement the ... algorithm, and it will be way simpler to implement. ...
    (comp.dsp)
  • Re: How to fft huge data arrays?
    ... > For my little project i need to fft large data arrays, ... applying some sort of filter to a sound file. ... The Fast Fourier Transform, FFT, is a fast way to implement the ... algorithm (for very small filters the time-domain methof may ...
    (comp.dsp)
  • Re: Discrete Deconvolution
    ... transform of a signal that happens to be of finite extent, the FFT thinks that it's taking the transform of a signal that repeats, that is that s= sfor an N-point FFT. ... Usually this is a whopping big discontinuity, which makes the algorithm report lots of really high-frequency content which simply isn't there in the real signal. ... This big problem is solved by windowing, as a way to get the algorithm to cough up an approximate Fourier transform that has some hope of being close. ...
    (comp.dsp)