Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!cs.utexas.edu!uunet!zephyr.ens.tek.com!tekcrl!tekfdi!videovax!bart From: bart@videovax.tv.tek.com (Bart Massey) Newsgroups: comp.dsp Subject: Re: FFTs of Low Frequency Signals Message-ID: <5619@videovax.tv.tek.com> Date: 9 Nov 89 22:57:07 GMT References: <10208@cadnetix.COM> <2586@irit.oakhill.UUCP> Reply-To: bart@videovax.tv.tek.com (Bart Massey) Distribution: usa Organization: Tektronix TV Measurement Systems, Beaverton OR Lines: 46 In article <2586@irit.oakhill.UUCP> diaz@irit.UUCP (Rafael Diaz) writes: > In article <10208@cadnetix.COM> jensen@cadnetix.COM () writes: > >What I am wondering about is the behavior of the transform when the > >signals being examined have significant energies in the lower frequency > >ranges. > > From all spectral estimation techniques the FFT/DFT based has the LARGEST > variance, therefore, using it for low frequency high resolution detection > is the worst. > > What you need is a good ARMA based technique, namely BURG and and LS. I don't think your choice of estimation technique really has very much to with the frequency band of interest. It's true that AR and ARMA models are much better estimators of the characteristics of a single sinusoid than the DFT, but that's sort of independent of frequency. As other posters have pointed out, the problem with really low frequency signals is that the corresponding record lengths are very large, and most algorithms for signal estimation have costs which grow as the square of the record length or so. The typical technique for coping the problem is, I believe, to "make the signals higher-frequency", through the magic of decimation. Assume that all the signals of interest are in the range 0-1KHz, and you're sampling at 16KHz (32000 samples/sec). If necessary, run a low-pass filter over the input, to remove signals in the range 1-16KHz. Note that the record length of this filter will itself be very large, but at least it's a linear process, so *relatively* cheap. Now, just take every 16th sample! What've you just done? You've mapped the sample frequency domain 0-1KHz onto the range 0-16KHz! Now, if you do e.g. a 16-point FFT on your new record, your bin centers will be at 500Hz, 1500Hz, .. , 15500Hz in the new range, which corresponds to (500/16)Hz .. (15500/16)Hz, i.e. 31.25Hz .. 968.75Hz in the original domain. Note that even with the FFT cost of O(N) = N lg N, you have saved quite a bit over doing the FFT directly on the original data. In particular, for the FFT on the original data, the cost was roughly 256 * 8 = 2048 units, whereas the low-pass filter plus the short FFT costs roughly 256 + 16 * 4 = 320 units -- a significant savings, even though you get the same amount of info about the band in question either way! Note that using ARMA techniques on the decimated data provides an even bigger efficiency win, since these techniques are typically O(N) >= N^2 ! In short (no pun intended :-), decimate your data -- IMHO you'll be glad you did! Bart Massey ..tektronix!videovax.tv.tek.com!bart ..tektronix!reed.bitnet!bart