[PD] help with rfft~
Mathieu Bouchard
matju at artengine.ca
Wed Nov 30 10:27:18 CET 2005
On Tue, 29 Nov 2005, Stefan Turner wrote:
> I think the standard way of convolution - or at least the one I use -
> which gives ok results, is to have one 'carrier' signal, which is
> filtered by the 'modulator' signal. (I think that's what they're
> called.) Basically, first get the magnitude of the modulator:
> sqrt(real^2 + imag^2). Then:
> output real = carrier real * modulator magnitude
> output imag = carrier imag * modulator magnitude
This is not a plain convolution by the modulator signal, though it's
close. It's a convolution by the phase-removed modulator signal, because
all phase information is removed. A general convolution allows for phase
shifts. For example, taking the derivative of a signal using [rzero~]
(where dt = 1 sample duration) you get an approximately 90-degree phase
advance (in addition to getting incredible trebles-boosting). A derivative
performed numerically is a kind of convolution (used extensively in
GridFlow in order to e.g. fake reflections and refractions on water).
A general convolution uses complex multiplications, one of which requires
four real multiplications in cartesian repr, one real multiplication in
polar repr, and no multiplication in log repr.
____________________________________________________________________
Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
Freelance Digital Arts Engineer, Montréal QC Canada
More information about the Pd-list
mailing list