for your info: ch. 11 mbe: fast fourier transforms



Robert Dodier wrote:

> Well, I dunno. The computed results match the stated definition --
> I've verified that directly. We could pick a different definition, I guess,
> if it could make the results more useful or comprehensible.

Yes perhaps this is the thing to do. I think the point is to help the 
users of the fft routine when doing something relatively standard, such 
as fft transforming a real function, and trying to manipulate the 
individual frequencies. The manual's description of sin/cos terms shows 
how to eliminate the redundancy that you get when you start with a real 
array and do a complete complex transform. But if you want to do 
something to the frequency components and then inverse transform it is 
not helpful to work with the sin or cos coefficients as described in the 
maxima manual, since there is no inverse sin/cos transform function.

perhaps an alternative would be to provide a "rfft" and "irfft" that 
handles purely real data in a "nice" way for the user?

If you start with a real array and fourier transform it with the 
existing fft function, the frequencies greater than %pi radians per 
sample can be interpreted as frequencies starting at -%pi radians per 
sample and moving toward 0 radians per sample (the whole thing is a 
circle from either 0 to 2pi or 0 to pi followed by -pi to 0)

The interpretation of the frequencies as [0..pi],[-pi..0] (with the 
appropriate handling of the corner cases, as for example there is only 1 
coefficient corresponding to 0 frequency and one corresponding to pi) 
allows for the user to interpret what is going on in such a way as to 
get the right calculation of the derivative and the integral of a set of 
real samples. It also makes it more clear how to say filter out all the 
high frequencies (the high frequencies are in the "center" of the array, 
not all out at the "end", the "end" of the array is low, negative 
frequencies)

I confess to being a bit baffled about how to describe what I mean here. 
  Is this helpful at all?

Dan