found out some interesting facts about the chebyshev. been playing
around a little with a chebyshev shaper, feeding it various harmonic
amplitudes and a sine oscillation, taking an FT afterward.
it seems that in order to get a harmonic of amplitude 0.5, you must
not pass 0.5 to chebpc for that harmonic, but sqrt(2)/2. for a
harmonic of amplitude .333333333, pass in sqrt(3)/3, etc. thus, if we
want amplitude 'a' for a given harmonic, the chebpc coefficient is 'a
* sqrt (1/a)' rather than simply 'a'. (negative amplitudes: ?).
the peak value of the chebyshev-shaped output will be the sum of all
coefficients calculated in this manner. the further the incoming sine
is scaled down (from [-1,+1]), the less the harmonic mix will match
the wanted amplitudes.
for the amp code, this would mean we should probably try the
following: compress/expand the incoming signal to fit exactly into
[-1, 1] (normalize). the coefficient tables need some treatment, too
-- we want the output sum to be 1, and the relative strengths of the
harmonics to match.
i'm not up to understanding all implications of the fact that the
incoming signal is not a pure sine; neither do i have a recipe for
preparing the coefficient tables -- if we scale the individual
coefficients by 1/sum their mix will not match what we want.
tim