An Interactive Guide To The Fourier Transform

Kalid, this was by far the best article on fourier transform! Your methodology of teaching is marked with brilliance! Thanks a lot for sharing this!

Hey, im studying LTI system’s response to everlasting exponential e^st and trying to get better undestanding why fourier transform of system’s impulse response will appear in the convolution equation of e^st and h(t) ?

y(t)=integral(h(u)x(t-u))du = integral(h(u)e^s(t-u)du) =e^st integral(h(u)e^-su)du =e^st H(s)

where H(s) is system transfer function = fourier transform of impulse response. Why fourier appear in this equation and how to think about it in light of this article.
System output at time t will be …h(0)e^st+h(1du)e^s(t-1du)+h(2du)e^s(t-2du)…so you have to sum current and previous input values effects to get the output at time t. This is done by delaying input (rotating backwards) and multiplied with impulse response value at that time and taking integral of this. This is same as fourier transform of h.

i would need more intuition and insight about the relationship of convolution and fourier transform.

Thanks for your help

I spent four years studying electrical engineering at a decent university and FT’s were never explained this clearly. What a wonderful article!

@Zack: Awesome, glad it helped!

Thanks you so much… thanks a million or maybe more…
I was messed up with fourier transform from last few months, in my mind !! Never understood its physical interpretation or it existence and working… After a lot of and extensive search from online and offline, I bumped into this… and this post answered evrything !!
This is an awesome post !!
Keep the great work up !!

Hi Hunt, I don’t know much about electronics (much less than you), but you can definitely use the Fourier Transform to analyze the incoming waveforms and perhaps do some transformations. (Here’s a software example). Hardware, I’m out of my element! =)

Fantastic material!

Can anyone post all the mistakes Fourier made in his original article when applying Fourier transforms in the heat equation. Stephen Hawking did not comment on the article when he included it in his book “God created the Integers”

Thank you for this explanation.
I would like to run a lab experiment with a three microphones and a speak.

My thought is to align them, microphone, microphone, speaker, microphone.
Analyze the sound from the first two microphones for the sound pattern that matches both, based on the distance between the microphones, and feed the inverse waveform through a carefully located speaker. Then measure the results with the third microphone.

I only know some basic electronics. Any thoughts on how I might set this up?

Your article probably “loses” the average reader (including me) when you introduce “e^1x” in the figure “Two Paths, Same Result”.

All I currently know is that e = 2.718 281 828 … and when you use this number as an exponential “base”, you get the “natural logarithm”. I am unfamiliar with how “e^1x” can be used to represent, as you state, “angle and distance”.

What part of the term “e^1x” is the angle and what part is the distance? I tried to assume that “x” was the distance in “e^1x”, but after punching some #s in my calculator, I got more confused, for example, e^0 = 1 (just like 10^0 = 1), and e^1 = 2.718 281 828 … Anyway, you need a side tutorial to explain how vector polar notation can be expressed as “e^1x”.

On the good side, your interactive graphics showing how to go from circles to sinusoids were fantastic.

Another bad side - You shove the readers off the edge of the cliff when you present the FFT equations for Xk & xn. You can’t go on about smoothies and then assume that the reader knows that the Greek symbol “epsilon” means "sum the stuff on the right from, for example, item “n” = 0 through and including item “N-1"”. Also, you don’t explain at all how these equations deconstruct the smoothie. It would be better for you to confess that you really don’t know how FFT works, but that you (like me), know very precisely what it does, but are clueless regarding the specific math steps required to achieve the results,

For example, all I really know about FFT (and what I knew coming in to this article) is that when you pour a smoothie into it and you get the resulting amplitude-versus-frequency-response spectrum chart (graph), the “bumps” in the spectrum show the amount (amplitude) of the original smoothie ingredients and the frequency associated with the amplitude spike (bump) shows the rate of application of that particular ingredient (to continue with your smoothie example, which was a good example by the way).

Namaste Kalid,
I didn’t get the simulation part. Would you explain me how you related the imaginary plane (real and imaginary as axes ) consisting of that circle with the wave on its right side (Amplitude and time as axes).? And I know that amplitude of an imaginary number is (or size)=sqrt(a^2 + b^2). Now,
1st position( zero degrees):
On circle : a=1,b=0
On the right side : Amplitude=1.

2nd position(90 degrees):
On circle : a=0,b=1
On the right side : Amplitude=0. Question: If Amplitude=sqrt(a^2 + b^2), shouldn’t this be 1…?

And this doesn’t hold good even when you make ‘vertical’ axis as ‘real’. Where am I going wrong…?
I’m not able to move further.
Thanks Kalid

Really very clear, very simple explanation.I feel as you are talking here. Thank You

Hi Kalid,

This is absolutely fantastic, as always. Thank you so much for this article!

I had a question about how the Fourier Transform works when there are several different time spikes of different amplitudes, e.g. (0 6 0 2 8 0). I noticed that if you plug something like that into your Fourier program (which is awesome, by the way!), the “recipe” that it outputs is a bit more complicated - each simple wave has a slightly different amplitude, so it seems like you’re not using the “tentative recipe” anymore. How do you work out what these individual amplitudes are?

Thanks, and sorry if I misunderstood anything!

Hi Ming, glad you enjoyed it!

So, the recipe for each time spike has to be scaled by the size of the spike. Let’s say we just want (1 0 0 0) as a time spike. This would be equal strengths from each possible frequency, or

[1/4 1/4 1/4 1/4] 

In this case, there’s no phase offset needed. Now, let’s say we have the spike of (0 2 0 0). We still need equal strengths, except this time it’s double, since we want to sum to 2.0 and not 1.0:

[1/2 1/2 1/2 1/2]

Whoops! We need to add in the phase offsets. It should be:

[1/2 1/2:-90 1/2:-180 1/2:-270]

since each Hz component needs to line up at t=1, not t=0. If we were to combine the signals (1 2 0 0) we would have:

[1/4 1/4 1/4 1/4] + [1/2 1/2:-90 1/2:-180 1/2:-270] = ?

The first term [0Hz component] can combine easily, to get 3/4. But the other terms have to be added like they are vectors:

1/4 pointing at 0 degrees + 1/2 pointing at -90 degrees is, with some trig:

Amplitude: sqrt[ (1/4)^2 + (1/2)^2 ] = .559
Angle: atan( -(1/2) / (1/4)) = -63.43 degrees

If you plug in (1 2 0 0) into the simulator, you get

[0.75 0.56:-63.4 0.25:180 0.56:63.4]

which are the first two terms. The others can be computed similarly. Of course, it’s a pain to do all this trig – we typically keep the components (amplitude + angle) as complex numbers (a + bi) so we can simply add them up to combine them. The simulator shows the phase offset as an actual angle to help visualize them. But the Fourier Transform formula only deals with complex numbers.

Phew – hope that helps!

Brilliant and easy-to-understand description of what the Fourier Transform does. Thanks.

Good description thanks. Miniscule criticism: SI units please! :slight_smile:

Thanks a lot. Many sites simply gives us the formula and explain in a very abstract way. I had understood that Fourier transform has a lot of application, but, couldn’t understand what exactly it is trying to do.

But, you have made it very clear now, by giving enough analogies and visualization.

Thanks a lot!!!

Thanks, it helped me a lot! Great job with the article.

Thanks for this article - especially the leadups expaining the mathematics of complex numbers, euler’s identity, etc., those were really helpful. The rotation analogy makes it all much more intuitive. I was excited to read the Fourier article here, feeling like there was a pot of gold at the end that would finally tell me how the smoothie filters worked, but I must admit I left it a little confused still. I’ve long understood WHAT the Fourier transform does and what it’s useful for, and thanks to your explanations I can do the equations now and understand roughly how the different parts work in a complex-rotational context. But I’m still totally baffled as to WHY this works. Why is it that integer-frequency’d sinusoids happen to be able to add up in such a way that they magically cancel each other out at the right places and can represent any possible sampled time-domain function? Maybe I just need to meditate on the math more? I’ll probably check out Stephen’s “AC Signal Processing” link above, sounds like he gets into the why a little more. But if you get time to dig into the why a little more at some point I’d love to read it, your explanation style is really clear and fun to read.

Hi Luke, great question. (Btw, this confused mathematicians in Fourier’s time as well.)

Why it works is a deep question, What is an intuitive way of explaining how the Fourier transform works? - Quora has more details (see the first answer). I also like this analogy (“a fly in the room”):

Here’s my 2 cents:

Projection (the dot product) is how we find how much of “x is in y”, essentially giving a readout. If we pick a point in the x/y plane, we might say its coordinates are (1,1). It means that the coordinate is 1 when projected onto the x-axis, and 1 when projected onto the y-axis.

Our choice of axes can change: if we use the “NorthEast, SouthWest” axes, then that same point is (1.414, 0). [sqrt(2) at a 45-degree angle].

The Fourier Transform basically says “Every possible sinusoid is the set of axes that you can project your function onto. You’ll get a listing of how much of each sinusoid is present in your signal.”

The reason why these sinusoids are enough is fairly intricate, but in short: we have an infinity of distinct sinusoids to use. It’s a pretty big lego box, and likely that some combination adds up to our signal. (And we can see it happening in small portions if we handle one instant at a time.)