-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
"Devon McCormick" <[EMAIL PROTECTED]> writes:
> this is an interesting idea but it's complete overkill for the problem
> I'm working on - this is for a system based in Excel.
Hmm. Doing FFTs in Excel -- I hope I never have to think of doing that!
It would probably make {. 'FFT' meaningless.
> So, I'm looking into it anyway because it's an interesting approach
> even though it will probably make the people I work with afraid to
> talk to me.
Well, I came out of a company that made, among other things, FFT-based
signal analyzers, so this sort of thinking seems pretty straightforward
(if you want to see what can be done today with such stuff, you might
start with http://cp.literature.agilent.com/litweb/pdf/5989-1121EN.pdf).
Actually it appears to be pretty easy in J, which is partly the reason I
mentioned it. The fft library is a great start. Windowing is
multiplying the input data by a rank 1 array that tails off at each end
to make the resulting data periodic. (The FFT assumes it's periodic,
anyway; if it isn't really periodic, you'll get funny artifacts.)
Google - fft windowing - for promising articles on the subject. Unless
you feel inventive, it's probably not worth creating your own window.
Folks have cataloged windows and their properties (accuracy, leakage,
etc.) -- just pick the tradeoffs you like. See, for example, page 4 of
http://preview.tinyurl.com/ytxg9f or, more quantitatively, page 4 of
http://www.bores.com/courses/advanced/windows/files/windows.pdf .
You'll have to ensure the input doesn't contain significant energy above
the Nyquist frequency (which may require a filtering step before the
FFT). If the signal does contain higher-frequency components, that
energy above the sampling frequency will be "folded" back across that
and appear in lower frequency bins. It's easy to see that in an
electronic setup: pump a square wave into an FFT analyzer and watch the
harmonics. Those that increase in frequency as you increase the signal
frequency are real; those that decrease as you increase the frequency
are aliases (folded-back signals).
FWIW, you'll likely never achieve zero energy above the Nyquist
frequency; your job is merely to suppress it sufficiently so it doesn't
interfere with your desired accuracy.
Bill
- --
Bill Harris http://facilitatedsystems.com/weblog/
Facilitated Systems Everett, WA 98208 USA
http://facilitatedsystems.com/ phone: +1 425 337-5541
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: For more information, see http://www.gnupg.org
iD8DBQFGrPBH3J3HaQTDvd8RAptCAJ9zE71yHheRD7TuniCckxhwyfTClwCeMjaD
4XqO34oXg5ksHfdgsg/6r+s=
=eQmZ
-----END PGP SIGNATURE-----
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm