4 ms·
Breath taking. This technique could be used to visually prove many interesting properties of the continuous fourier transform. For example, you can visually p
by colah3 11y ago
Breath taking.
This technique could be used to visually prove many interesting properties of the continuous fourier transform.
For example, you can visually prove that the fourier transform is its own inverse, up to a constant factor. It's a bit tricky to communicate such a visual proof in text, but here's a sketch: First, consider the fourier transform of the dirac delta function, which this visualization would reveal to be a wave. Apply the transform again, and it's visually clear that the wave destructively interferes and has a transform of 0, except for a single value. This reveals that, applying the Fourier transform twice gives you the original function, up to a constant inverse. (If you work through this carefully, you see the constant is negative.)
What's interesting is that a visual proof like this can make a pretty non-trivial fact visually obvious.
You could take this further. I'm pretty certain that one could get visual proofs that taking the derivative is multiplying by i times the frequency in frequency space. Or get a visual proof of the convolution theorem. If you have a visual proof of the convolution theorem, you can probably get a visual proof of the central limit theorem. [1]
I actually tried to illustrate this visual proof of the Fourier transform's inverse several years ago. I tried to make static diagrams, not an animated version. I failed. I say this to emphasize how impressive Steven's feat is: not only did he make a beautiful visualization of this, not only did he make it a live animation, but he did it in a freaking web browser. It's really incredible.
[1] These ideas come from a conversation between Michael Nielsen and I, after we saw Steven's talk.
- deleted 11y ago[deleted]
- deleted 11y ago[deleted]
- unconed 11y agoIt could work. I just want to emphasize this is really an incomplete DFT. It's missing the upper bands and it's also sparsely sampling the ones it does show (the full DFT would have 512 non-aliased bands). I also think in the general case, what you describe only works for the CFT. Making it work with the DFT means you have to lie a little bit, because your "dirac delta" is really a sinc function sampled at the knots to come out [… 0, 0, 1, 0, 0 …]. In the case of the final visualization, it was produced on short notice, so my bands aren't actually perfectly aligned with the true DFT bands either. On the plus side, taking one frequency band and making the full-size one only took me an hour and that's because it was a lazy copy/paste job: https://gitgud.io/unconed/toolsforthought/blob/master/iframe/fourier.coffee https://gitgud.io/unconed/toolsforthought/blob/master/iframe... It could be made more compact with a for loop too, but I like the pedagogical value of just having the full JS DOM spelled out like that. The entire point of MathBox2 was to be able to produce visualizations like this without breaking my head or taking weeks. People seem to assume it's still a crazy amount of work, it's really not. e.g. The twisting transformation is just an affine skewing matrix in polar/cylindrical coordinates (.polar() + .transform()). The fades and other transitions are composable operators. Figuring out how to shove it into the GPU is now ShaderGraph's job, not mine, and the emitter API ensures the JS VM will inline and optimize it close to native, asm.js style. It all comes built-in and you can keyframe the parameters or specify them with live expressions. The fact that people keep bringing up "beauty" is mystifying to me, it's really not what I'm aiming for. This is just what the math looks like when you remove all the extraneous visual noise and let motion and space do the talking instead. I use the same bog-standard colors, curves and surfaces every time. Why that translates into "beauty", I really don't know, except that maybe beauty is simply what we call it when our brain recognizes symmetries and patterns we don't have conscious words for. https://acko.net/blog/mathbox2 https://acko.net/blog/mathbox2