[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