Hacker News new | past | comments | ask | show | jobs | submit login
An Interactive Introduction to Fourier Transforms (jezzamon.com)
230 points by a1k0n on Jan 11, 2019 | hide | past | favorite | 22 comments

This is great as it doesn't just explain the basics, it also shows how they are used in MP3 and JPEG files.

I always had a very vague "throws away data that's not perceived" idea of how MP3 works. With the background from this I was able to really understand the wikipedia page and found this great Ars[0] article from 2007 to cement my understanding.

[0] https://arstechnica.com/features/2007/10/the-audiofile-under...

This is incredible.

If I wanted to collect things like this to teach my kids, where do I look? How do we gather amazing resources like this in one spot?

I particularly love that it focuses on one topic and nails it.

Something that's become quite popular in recent times are "awesome lists"[0, 1]. This isn't the common use-case for them, but it might be worth looking into.

[0]: https://github.com/sindresorhus/awesome

[1]: https://awesomelists.top/

For interactive explanations check out: https://explorabl.es/

Wow. This is by far, hands down, the best way I have ever seen this explained. Just excellently done.

Exactly my thoughts also. Thank you Jez!

Very impressive end enlightening indeed.

SmarterEveryDay published a video on this topic few weeks back: https://www.youtube.com/watch?v=ds0cmAV-Yek

At the time of writing the Gibbs phenomenon -- the overshoot occurring at discontinuities of a square wave, which does not go away no matter how many harmonics are included (see https://en.wikipedia.org/wiki/Gibbs_phenomenon) -- is not correctly represented in these visualisations, implying that important aspects of the underlying maths are obscured. In my opinion this limits the didactic value of an otherwise impressive presentation.

Yes, apologies I made some approximates in the article!

Interestingly if you're talking about discrete time fourier transforms (which is what we usually deal with in computers with jpegs, mp3s, etc), then you can perfectly represent a signal with say, 1024 samples using exactly 1024 sine waves without worrying about that effect. It's only in the continuous time variant that you have to worry about things like the Gibbs phenomenon (which you do run into once you start translating to real world output)

Right! I did assume a continuous space because that's what it looked like to me. Hence my pedantic comment which was sort of comically at odds with the light-hearted spirit of your article :) Very nice work. Thanks for sharing, and for the clarifying remarks!

What's not correct in the animations?

(arguably the whole point of a tutorial like this is to do it without the maths)

Slightly unrelated, here's a beautiful mathematical approach to the discrete fourier transform with evaluating a polynomial at the nth root of unity in the complex numbers:


Very cool.

One idea that would be cool to see is a repeat of the video where the number of ‘harmonics’ is clipped.

Eg, show the video with only the first 5 circle components. Then the first 10, the first 15, and so on.

Will see the drawing approach the final image, and get the idea the low-freq harmonics do the bulk of the work but high-freq ones give the small details to make the hand a hand.

This is included in the article. Slide the slider below the animations to control how many circles will be used.

This is really cool. I especially like the rotating circles visualization. Another video that helped me finally "get" Fouriers is the 3Blue1Brown video:


Really fantastic work. Best interactive write-up I've seen of a technical topic in a long time.

In the animation at the top, should use a different color for the circles vs. the hand/pen.

That was the most impressive opening demonstration. My eyes popped out of my skull.

Beautiful! How long did it take to make this blog post?

Oh man, it took me a while. I started in August and have been chipping away at it on the side, until now.

Amazing work! Thank you :)

Epic ...thanks

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact