Why are fourier transforms so powerful?

K.I.L.E.R

Retarded moron
Veteran
Just been doing some reading but can't figure out for the life of me why is it so powerful.
Anyone tell me why?
 
Ok, *very roughly* in classical mechanics there is a theorem that goes something like this.

For every physical system that admits a saddle point, small departures from equilibrium (or stability) to first order admits a harmonic oscillator solution. So (intuitively) if you nudge a ball at the bottom of a parabolic well very gently, its going to want to oscillate back and forth.

Thus the natural langauge of physics is fourier analysis. Say you have some complicated system, it suffices in large part to perturb your system away from its equilibrium point, expand it out in a fourier series and identify the components to first order. All the complicated and presumably nonanalytic physics away from its saddle point, then can be analyzed in terms of simple functiosn (sins and cosines) to second, third.... infinite order away with controlable errors.

This line of reasoning goes through in quantum mechanics, and quantum field theory. Not to mention other nice properties, including the existance of the inverse fourier transform and various powerful algorithms for numerical work (eg the fft)

The mathematical reasons are so vast its really hard to do justice to it. Ultimately fourier analysis is a consequence of group theory (little known fact). However, in analysis the main thing is that given some periodic function with a set of nice properties (eg the derivatives are continous) the fourier integral is guarenteed to exist and will have various uniform convergence properties.
 
To add a bit to the above, in electronics its difinitely vital. You'll do a FT and/or Laplace to determine the stability of your system, the amount and sort of noise which you will have to filter out/compensate, the development of signal properties over different frequency ranges etc, etc...
 
Yeah, Fourier transforms are used all the time in physics. The basic idea is that if the system you're working with can be described with a linear differential equation (basically, the differential equation doesn't depend on the squares of the function you're attempting to solve for or any of its derivatives), and your differential equation is second-order (most are: this means they include no more than second derivatives), then you can solve the differential equation for a single sin/cosine function.

Then, once you've solved the equation for this one function, you can just add up a bunch of sin/cosine functions to get a completely general solution. In essence, this allows you to break up the problem into much smaller pieces.
 
So basically if I was making a game and I decided to add water particle physics in my shader(graphical stuff obviously) I can simulate water particles realistically by solving their relationship to the world by fourier transforms?
 
K.I.L.E.R said:
So basically if I was making a game and I decided to add water particle physics in my shader(graphical stuff obviously) I can simulate water particles realistically by solving their relationship to the world by fourier transforms?

While I'm not familiar with writing shaders, I doubt that FT in a shader would make sense. I guess you'd use some very simplified form of calculation for that stuff to speed it up a bit.

Or you just use Ageia's PhysX stuff once it's available ;)
 
_xxx_ said:
To add a bit to the above, in electronics its difinitely vital. You'll do a FT and/or Laplace to determine the stability of your system, the amount and sort of noise which you will have to filter out/compensate, the development of signal properties over different frequency ranges etc, etc...


Just to add a little more... ;) :p

In digital communications, you're pretty much dealing with bandwidth in the channel and the signal itself. Looking at the frequency response (FT of the time-domain signal) can tell you just how much you can filter out without destroying the message one intended. You can also find out how power is spread out among the different frequencies in the power spectral density. blah blah blah, there are other things to look at too with random processes and noise.

oh the joy of being in EE...
 
K.I.L.E.R said:
So basically if I was making a game and I decided to add water particle physics in my shader(graphical stuff obviously) I can simulate water particles realistically by solving their relationship to the world by fourier transforms?
Well, if you were willing to spend the processing power required to do the fourier transform to convert from frequency-space to real-space, then yes, it would allow for very realistic water. But the real problem is that the fourier transform is in itself a fairly expensive operation, so you'd probably just want to try to solve the differential equation iteratively instead.
 
The transient real world is far better reproduced with wavelets than Fourier transforms...
 
It completely depends on the physical situation. Wavelets have some advantages over fourier transforms, and vice versa. Actually most of the famous kernels all have their place in one setting or another.
 
Fred said:
It completely depends on the physical situation. Wavelets have some advantages over fourier transforms, and vice versa. Actually most of the famous kernels all have their place in one setting or another.

It just comes down to the repeatability of the reality. Fourier is very efficient for repeating forms and horrendously inefficient for discreet or transient forms.
 
It depends upon what you mean by discrete. When you're talking about particles, in Fourier space, one waveform is a specific momentum. So, if you're describing particles with definite momentum, the Fourier representation is exact.

And for another example where Fourier transforms are excellent, take the early universe. The early universe can be well-described by linear theory, which makes it amenable to Fourier analysis. When one does the analysis based upon some particular theory, one obtains a specific statistical distribution of overdensities and underdensities in the universe, which can be best-measured by observing the hot/cold spots on the cosmic microwave background.

Another, more down to Earth, example comes about from looking at AC circuits: when you're dealing with alternating current driven by a sinusoidal waveform, it becomes extremely convenient to use Fourier analysis.
 
I have seen FFT used in engines to simulate water.
I don't remember what simplifications/speed-up tweaks they had, but it has definetly been done.
 
Ingenu said:
I have seen FFT used in engines to simulate water.
I don't remember what simplifications/speed-up tweaks they had, but it has definetly been done.
Well, I doubt they had any....FFT is pretty damned efficient as it is.

But my primary concern with using FFT's with water simulation would be in dealing with disturbances. I mean, it'd be nice and easy to take a specific starting point and evolve it forward in time in Fourier space. But it could be pretty challenging to deal with adding disturbances to the water.
 
Yeah, you won't get proper dispersion with a formula like that, though. That is the nice thing about going to Fourier space: simulating the proper dispersion relation becomes trivial. You need to do a little bit more work to get it correct in real space, and may need a finer mesh as well.
 
Back
Top