Florian Schmidt
Guest
|
Posted:
Wed Nov 30, 2005 5:16 pm Post subject:
fast convolution and normalization |
|
|
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 |
|
robert bristow-johnson
Guest
|
Posted:
Thu Dec 01, 2005 1:17 am Post subject:
Re: fast convolution and normalization |
|
|
Florian Schmidt wrote:
| Quote: | 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].
| Quote: | 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.
| Quote: | 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 |
|