Csound Csound-dev Csound-tekno Search About

fft question

Date1998-02-18 11:22
Fromjames@maths.ex.ac.uk
Subjectfft question
>Regarding the use of FFT versus direct convolution,  I have a question
>for the experts.
>
>   It seems to me that the use of an FFT requires that the input signals 
>be periodic over the sample length.  Otherwise, the discontinuity will
>pollute the FFT spectrum with unwanted frequencies.  Of course, one
>could apply a window-function to make the input periodic, but then
>the spectrum associated with the window function itself will be
>included in the convolution.
>
>   It also seems to me that a direct convolution does not add unwanted
>harmonics when the input signals are not periodic ...  although I am
>not 100 percent sure about this, especially if the input signals 
>do not happen to conveniently asymptote to zero at the boundaries of 
>the sample period.
>
>   The question is,  how does one really treat the non-periodicity
>problem in actual practice.  Is it simply neglected?
>
>
>   Thanks,
>
>   Fabio P. Bertolotti
>
>

Date1998-02-18 15:52
FromEli Brandt
SubjectRe: fft question
Fabio P. Bertolotti writes:
>   It seems to me that the use of an FFT requires that the input signals 
>be periodic over the sample length.  Otherwise, the discontinuity will
>pollute the FFT spectrum with unwanted frequencies.

For a single pair of blocks, the FFT will "assume periodicity",
performing a periodic convolution.  To get the aperiodic convolution
you probably want, zero-pad enough so that the result doesn't interfere 
with itself: 00xx00 * 00yy00 = 0zzzz0 (overkill for clarity).

I won't try to explain the techniques for extending this to long
signals, but look up "overlap-add" in a DSP text.  The result really
is the same as direct convolution.  (You do get block-rate crud if you
try to alter the response over time -- side question: is there a way
to do this cleanly that's faster/better than heavy overlapping?)

-- 
     Eli Brandt  |  eli+@cs.cmu.edu  |  http://www.cs.cmu.edu/~eli/