Hi, i searched the web for quite some time now and just don't grok how to normalize when doing partitioned frequency domain convolution. Basically for an unnormalized FFT/IFFT pair (i use fftw, so all the FFT/IFFT i use is unnormalized), the necessary normalization factor would be 1/N applied once or 1/sqrt(N) applied twice. But now i have IFF(FFT(signal)*FFT(response)) and i wonder what normalization factor to use. And especially: where :) I tried all kinds of combinations with N and sqrt(N) and even third root(N), but everything is either too loud or too quite or seems to depend on partitionsize (a sign for getting it wrong). What do i miss? Did i simply misinterpret my output? Right now i use 1/(3 * N) normalization at output which seems to work ok. But what is the right number? As i use padded FFT/IFFT actually N is 2*N', where N' is the partitionsize. Flo -- Palimm Palimm! http://tapas.affenbande.org
fast convolution and normalization
Started by ●November 30, 2005
Reply by ●November 30, 20052005-11-30
Florian Schmidt wrote:> Hi, > > i searched the web for quite some time now and just don't grok how to > normalize when doing partitioned frequency domain convolution. > > Basically for an unnormalized FFT/IFFT pair (i use fftw, so all the > FFT/IFFT i use is unnormalized), the necessary normalization factor > would be 1/N applied once or 1/sqrt(N) applied twice. But now i have > IFFT(FFT(signal)*FFT(response)) and i wonder what normalization factor to > use. And especially: where :)shouldn't matter where if you're doing this in floating-point. there should be a 1/N attached to the IFFT if "FFT(response)" is the DFT of the impulse response h[n].> I tried all kinds of combinations with N and sqrt(N) and even third > root(N), but everything is either too loud or too quite or seems to > depend on partitionsize (a sign for getting it wrong). What do i miss?perhaps your impulse response h[n] is large enough to give it that gain to make it too loud.> Did i simply misinterpret my output? > > Right now i use 1/(3 * N) normalization at output which seems to work > ok.sounds like, to me, that all of your h[n] or the FFT of it (H[k]) should be reduced by a factor of 3. r b-j