Scaling output for cross-synthesis

Started by July 23, 2009

I'm experimenting with cross-synthesis, and I was wondering how to scale my
data after multiplication of the signals. I've been using unscaled fft, but
I scale my ifft by 1/N, which seems to work. It seems that I need some other
scaling factor for cross-synthesis, or possibly I need to do the scaling in
a different place - the result of the ifft takes the combined signal way
over 1 in most cases. So I was wondering what factor to use, and where to
put it. Google hasn't turned up much that is very enlightening, but I've
come across a factor of 1/sqrtN here and there.

This is how I'm doing the cross-synthesis, by the way (adapted from the
Max/MSP manual). Apparently this bypasses the need to convert to polar. 0 is
the first signal, 1 is the second, and out is the output array:

out[j-1] = real-0 * real-1 - imag-0 * imag-1
out[j] = imag-0 * real-1 + real-0 * imag-1