Re: Fast Fourier Transforms

*To*: mathgroup at smc.vnet.net*Subject*: [mg21692] Re: Fast Fourier Transforms*From*: John Doty <jpd at w-d.org>*Date*: Sat, 22 Jan 2000 02:52:53 -0500 (EST)*References*: <85p7u3$6je@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Burton wrote: > > Hello, > I am doing some analysis of acoustic data obtained from a pickup located > on a machine. The data is in the form of ordered pairs i.e. Time and > voltage. As far as I know fft in Mathematica only operates on a list of > single numbers. I have imported the voltage data (since the time is simply > incremental) and performed an fft on that successfully. My problem lays in > interpreting this data. I don't understand how to scale the x-axis of the > fft plot to represent frequency. If you have n samples with a sample to sample interval dt, the frequency steps are 1/(n*dt). Remember that for the DFT, the frequency and time axes are modular, so you may add or subtract multiples of 1/dt from the frequency and still be mathematically correct. If your anti-alias filter is a low pass filter, it is often most comprehensible to consider the later coefficients as representing *negative* frequencies (rather than positive frequencies above the Nyquist frequency). The following yields a list of frequencies using that convention: wrap[x_] := If[x <= 0.5, x, x - 1.] fourierFreqs[n_, dt_] := Table[wrap[i/n]/dt, {i, 0, n - 1}] Of course for a real input, the negative frequency coefficients are redundant: they are just the conjugates of the corresponding positive frequency coefficients. -- John Doty "You can't confuse me, that's my job." Home: jpd at w-d.org Work: jpd at space.mit.edu