On Mon, Sep 27, 2010 at 04:34:22AM -0700, Patrick Shirkey wrote:
> Moved to LAD as this is getting outside the normal discussion on LAU.
This is absolutely correct. I don't see any contradiction with
what I wrote...
> So it might be a worthwhile exercise to present the math behind your
The difference between cyclic and linear convolution you'll find
explained in one the first chapters of any textbook dealing with
FFT-based DSP. It's really basic background knowledge and I'm not
going to repeat it here.
But it's easy to understand what happens even without maths.
I'm sure you are familiar with aliasing when using sampled
signals. In particular, if you multiply two signals in the
T domain, you can get aliasing in the F domain. In other
words the product could generate frequencies that can't be
represented (above FS/2) and that will alias to lower ones.
Now there is a strong duality between T and F domains when
dealing with Fourier transorms. You can always swap the two
domains and all rules and maths remain valid. This is because
the Fourier transform and its inverse are quasi the same thing.
That means that multiplication in the F domain can generate
aliasing in the T domain. In this case, since the result of
the inverse FFT is too long, the samples that don't fit will
'alias' to positions in the 0...N-1 range.
The solution is to limit the inputs to length N/2, just as
in the case of the T domain multiplication you can avoid
aliasing by lowpassing the inputs to half FS/2.
There are three of them, and Alleline.
Linux-audio-user mailing list