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. > > > As explained above, the difference is in step (6) which for > > cyclic convolution is allowed to wrap around (meaning that > > part of the output ends up where it shouldn't be), while > > in linear convolution this is avoided by limiting the size > > of the inputs. Unless you want the detailed maths I don't > > think I could explain it any more clearly. > > > > I have it on good authority that all linear convolution operations can be > expressed in the transformed domain, and vice versa. There is no > difference except for clarity of presentation and sometimes some specific > implementation issues. 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 > reasoning. We should probably move that discussion to the LAD list though. 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. Ciao, -- FA There are three of them, and Alleline. _______________________________________________ Linux-audio-user mailing list Linux-audio-user@xxxxxxxxxxxxxxxxxxxx http://lists.linuxaudio.org/listinfo/linux-audio-user