View Single Post
  #7   Spotlight this post!  
Unread 25-11-2004, 15:03
eugenebrooks eugenebrooks is offline
Team Role: Engineer
AKA: Dr. Brooks
no team (WRRF)
 
Join Date: Jan 2004
Rookie Year: 2001
Location: Livermore, CA
Posts: 601
eugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond reputeeugenebrooks has a reputation beyond repute
Re: Fourier Transforms

Quote:
Originally Posted by phrontist
I'm really intrigued with Fourier Transforms, and was wondering if someone could clarify a few points for me:

1) Is there only one possible decomposition of any given transform into sine waves?
2) Knowing what a Fourier Transform does, I've concocted the following algorithm (which I'm aware would be useless in real life) and I'm curious if it would work:
  • Input Data Points
  • Execute sinusoidal regression
  • calculate output of resultant sinusoidal function for the x values of given data points
  • Subtract, yeilding new data points
  • Jump back to step 2 using new data points unless data points are more or less linear at this point

(If question number two didn't make any sense to you, the basic idea is to do sinusoidal regression on the data points, "subtract" the resultant function, and repeat, yeilding a bunch of sinusoidal functions comprising the output of the Fourier transform)

3) Can you explain to someone (whose highest level of math education is roughly Calculus AB) how a FFT or DFT works?
If you define a function on the interval [0,2PI] (you can scale and offset to take care of any other interval) and the function is periodic outside of it, you can represent the function as:
A0 + S1 sin(x) + C1 cos(x) + S2 sin(2x) + C2 cos(2x) + ...

A0 is just the average of the function in the interval, evaluated by integrating it. If your "regression" fit delivers the same answer,
you are in.

The other coefficients are obtained by integrating against the appropriate function, sin(x) in order to get S1, for instance, normalizing by dividing by the integral of sin^2(x). This works because the functions are orthogonal on the interval, that is the integral of sin(x) cos(x) is zero, for instance.

The discrete DFT is just a discrete version of all of the integration that is required, and the FFT is a factored form of the DFT matrix that is much more efficient to compute.

Now, back to your idea. If your "regression" fit of a flat line would deliver the same result as the average, A0, subtracting it would not disturb the coefficients of C# and S#. The question, then, is whether the presense of higher order terms in the data would distrub your "regression" fits of cos(x) and sin(x), and so forth. If the regression fit of a lower order term is not disturbed by the presense of a higher order term, your idea would work, but you would not want to do it that way, at least due to the build up of errors due to the subractions.

Your basic subtraction scheme, however, is used in order to produce a set of orthogonal functions from a set that is not orthogonal, and is therefore valid and quite useful in other circumstances.

Last edited by eugenebrooks : 25-11-2004 at 18:27.
Reply With Quote