From: <xip...@xi...> - 2005-07-06 10:30:54
|
On Tue, Jul 05, 2005 at 07:50:51PM -0400, Mar...@ao... wrote: > The core of the FFT routine uses 'float' when it should be using 'double' > (at least). The build up of errors for longer block lengths is significant and > causes the problems. 'FFT Filter' uses a (hard coded) length of 256, and the > problems are insignificant whereas 'Equalizer' uses a (hard coded) block > length of 16384, which causes significant build up of errors, it would appear. I > have not done analysis to find out which of the variables is most significant > and boldly changed about 11 of them. I am concerned by this analysis. I use the same basic FFT routines in Postfish (FFTW, float precision) and see none of this error accumulation problem to over 140dB of signal depth. My immediate suspicion is that the lapping is being done incorrectly (if you do not properly perform time windowing/padding, you will appear to get 'boundary errors' where 'error' appears to accumulate at the edges of the window. ) Can you point out to me the specific source files involved? I'll have a look tomorrow. This is just a suspicion, mind you... but windowed analysis is tricky to get right and more eyes are always good. Monty |