Jez Swanson, a developer, makes interactive web explainers, most notably an introduction to Fourier transforms.
Commenters repeatedly recommend his Fourier transform page, saying it made Fourier analysis and lossy compression like JPEG finally click.
Having a decent intuitive notion of Fourier transforms is an incredibly useful tool in your toolbox, even if you can't derive a Fourier transform by hand or write a fast Fourier transform (FFT) algorithm.
The basic idea is this: (almost) any (useful) signal can be represented as a sum of sine waves with different frequencies and phases. For example, an electrical signal or a sound wave is a one-dimensional signal where the x-axis is time. This might look like a really complex squiggly line that's hard to work with. Using a Fourier transform, you can separate the individual frequencies of that time-based signal. Then, you can modify the specific frequencies however you want. For example, if you have a lot of random, spiky noise in the signal, that will show up as high frequencies. To clean it up, just do a Fourier transform, throw out any data with a frequency above a certain threshold, and then run an inverse Fourier transform on the remaining data to get back a smoother version of the original signal. This is called a low-pass filter, and it's more or less equivalent to taking a moving average of the original signal.
Where it gets really fun is that you can extend this, in a pretty straightforward way, to higher dimensions. A two-dimensional signal, where both the x- and y-axes are space, is just an image. JPEG compression is based on this concept: it removes the high-frequency signal in the image in order to store the data in a more compact form, at the expense of losing…
Since we're sharing links, here's my collection of interactive pages too:
Interactive visual explanations of math and algorithms, with motivating examples from computer games.
https://www.redblobgames.com/
The world's first linear algebra book with fully interactive figures.
http://immersivemath.com/ila/index.html
The Textbook of the Future. Interactive. Personalised. Free.
https://mathigon.org/
Structure and Interpretation of Computer Programs. Interactive Version
https://xuanji.appspot.com/isicp/
An Interactive Introduction to Fourier Transforms
http://www.jezzamon.com/fourier/index.html
Clear, intuitive lessons about imaginary numbers, exponents, and more.
https://betterexplained.com/
An Interactive Introduction To Quantum Computing
http://davidbkemp.github.io/QuantumComputingArticle/
The website of Martin O'Leary artist, designer, teacher, researcher.
http://mewo2.com/
A Visual and Interactive Guide to the Basics of Neural Networks
https://jalammar.github.io/visual-interactive-guide-basics-neural-networks/
Interactive demos on network theory, game theory, trust etc.
https://ncase.me/
An interactive explanation of curves and surfaces
https://ciechanow.ski/curves-and-surfaces/
Introduction to geometric algebra — an invertible vector product and the implication of having one.
https://mattferraro.dev/posts/geometric-algebra
Interactive visualizations for different topics from physics and mathematics. Includes trigonometry, polynomial regression, and Bézier…
> tends to get mirrored onto many frequencies for some reason I'm not familiar with.
Play with this for a few minutes: http://www.jezzamon.com/fourier/index.html
And watch any of these: https://www.youtube.com/results?search_query=vibrating+reed+frequency+meter
Okay, so think of a radio receiver as being sensitive to a particular frequency, because it has a filter in front of it. A vibrating reed of a specific length, if you will. (This is almost exactly true for certain types of crystal and SAW filters, actually.)
But when you flip a digital output from 0 to 1 or vice-versa, it changes state very quickly -- the output is essentially a square wave. (Physical limits mean it does have a finite slew rate...) Which means it contains components of every frequency. Think of coming up to one of those vibrating-reed meters and smacking it -- a single impulse excites ALL the reeds.
Smack it regularly (change the pin state at a specific frequency) and the reeds that're way off frequency will just sort of bounce around but not be particularly excited. You're creating noise, but it's just noise. But the reeds that're odd multiples of the smacking frequency will vibrate too -- these are the harmonics. They'll get really excited, almost as excited as the fundamental. (The evens essentially cancel out.)
Here's what it looks like on the radio spectrum: https://www.youtube.com/watch?v=eC36AqL5mw8
Incidentally, this is why so many chips now boast "slew-rate limited" outputs: to…
That's cool, but it doesn't really explain _why_ the sound becomes more interesting. It has to do with how the sound is played back, in short, there are no "square" waves. Everything is a combination of sine waves. The more you have it's as if there are more instruments playing on top of each other, in music they're called "harmonics". A "squared" wave is a wave with many many additional sine waves in different frequencies that overlap with each other, if you were to plot it it wouldn't look square, rather it would be wavy. This article shows visually how this effect takes place, if you are interested: http://www.jezzamon.com/fourier/
I don't think this exactly what you want, but you might like it anyway. You draw and it breaks it down into the 2D fourier series, and you can control the number of fourier terms which essentially acts like a crude high pass filter:
http://www.jezzamon.com/fourier/
I loved this explanation of FFT, full with interactive examples and it makes it also easy to understand how the JPEG compression utilizes FFT https://www.jezzamon.com/fourier/ AKA how can you represent an image with Fourier transformations