A couple days before Christmas, after meeting up with a friend, I found myself feeling like I had a lot of pieces of information in my head that I knew were very connected, but hadn’t managed to glue together. This is going to be technical.

We’d been talking about radio and electronics and signal processing. This is stuff that I felt I mostly understood from the perspective of audio analysis, but I’d not really wrapped my head around the big picture of signal processing. I’ve known about fourier analysis, and DCT, and speech formants, and so forth for a very long time, but I was always hopelessly confused when trying to read datasheets for analog-to-digital converters, and not really conceptualizing some things that really seemed like they should be very simple to understand.

It’s funny how gaps in knowledge work. In retrospect, associations are perfectly obvious. I’ll present some of what I already knew, and then what I figured out.

A wifi adapter for a computer is somehow able to deal with a really, really high frequency wave - in the 2.4 GHz range. That’s really fast. I mean, that’s faster than the CPUs in my laptop. Two issues have come to mind that I’d never really gotten around to asking anyone: how can a wifi adapter sample 2.4 billion times a second, and somehow keep up with decoding everything in a reasonable amount of time? That’s a lot of data. Also, how could the actual data rates of wifi be so low, in comparison? It’s not like I can transfer 2.4 billion bits in a second, or even a small fraction of that, over wifi.

It’s not really carrying that much data, of course. It’s not one wave, it’s a wave layered on top of a wave - ripples on the side of an ocean swell. That part made sense, as did the idea that you need to be sampling an analog source at least twice as fast as the fastest wave or you can’t tell the fastest wave is there (nyquist frequency).

It wasn’t until I turned the question around, and thinking from the perspective of generating waves that things started to fall into place. Here’s a metaphor I’ve come up with: if you’re driving 65 miles an hour down the highway, it’s pretty easy to tell when someone else is driving 67, or 60, because the difference from your current speed isn’t all that much. If you’re standing still looking at the highway, it’s a little harder to tell much besides the fact that everyone’s going really fast.

Generate a wave at one frequency, and then compare. Somehow, I already knew that from fourier analysis, but that fact hadn’t really sunk in and connected with the idea of 'carrier wave'. Strangely enough, it had already connected in my mind with the idea of a voice’s fundamental frequency.

I was given a little book for Christmas on using 555 timers, among other things. I’d only vaguely heard of a 555 timer before, maybe in the lab for a digital logic class I once took. In that class, pretty much every lesson started with, "Over here is your clock signal, and here’s your input lines…​" without ever explaining anything about the clock signal to begin with.

Shortly after Christmas, I was given the chance to breadboard a circuit that used a 555 timer to produce a square wave at 1 kHz into a little speaker. It worked, and it made a noise, and then I made a noise. Yes, it’s exciting when something works.

Way back when I was working at a little ISP copying floppy disks so people could install Netscape and use the internet, I remember people older and wiser than me trying to explain to me how the marketing around modems was deceptive by saying, "Remember, the baud rate isn’t the same as bit rate." Beyond that, all explanation went completely over my head - I hadn’t even learned what a sine wave was at the time.

I started thinking about clocks and comparators in the same idea, and then once one more concept was added, feedback, a lot more began to make sense. If the output of something is looped back around and combined with the input going back into it, you get compounding effects. Which then promptly made an association with recurrence relations, which I’d learned in the context of software - recursive functions - but hadn’t really realized the relationship to feedback.

It feels like lots of little bits of information I’ve known for a long time are finally beginning to fit together into a coherent model. And now, I think I understand signal processing a lot better than I did a few weeks ago.

To an electrical engineer, I’m sure this sounds a little like figuring out that if a + b = c, then c - a = b. But I’m just learning this stuff because I’m curious about it, and I expect I’ll probably use this more in the context of working with audio than other media. I’m having fun with it, anyway.

This morning, though, I put together another few pieces of information I already knew, and made sense of it. I’d already decided that I’d like to be writing at least one thing of this sort (I hesitate to use the word 'blog', though) each week in the new year.

Writing about things always has a way of helping me understand them better.

To analyze, generate.