LongCut logo

The Unreasonable Effectiveness of the Fourier Transform @ TEARDOWN 2025

By Joshua Wise

Summary

Topics Covered

  • Mathematics' Unreasonable Effectiveness in Science
  • Fourier Transform: The Unreasonable Effectiveness of Signals
  • Linear Time-Independent Transformations Simplify Frequency Domain Analysis
  • OFDM: Solving Telecommunication Problems Through Frequency Division
  • Cyclic Prefix: OFDM's Elegant Solution to Inter-Symbol Interference

Full Transcript

Joshua, take it away. Thank you. Uh,

thank you, fellow Josh.

Okay, I have a note here that says, "Close and hit record." I'm gonna do it.

I'm a genius. This is This is the smartest thing I've done all day is write a message to myself. Okay.

Um hit record. Three, three, two, one. What the

record. Three, three, two, one. What the

hell is it doing? Okay, I have that.

That's on. Okay. Um, hi Joshua Weiss.

Um, and yes, Josh said that I've been working on X1 Plus expander, which is uh completely orthogonal to that's that's a funny joke. You will get that joke soon.

funny joke. You will get that joke soon.

That's a very funny joke. Uh, which is completely orthogonal to what I'm talking about here. I'm I'm I'm just talking about here uh something that I have this is like a lab report um of

something that I've been working on and that I've learned over a period of time screwing around. Actually, I'll talk

screwing around. Actually, I'll talk about that at the very end. Um, but one of the important things, actually, this is kind of a theme. A bunch of people have come and said, "I'm not an expert on this." And then given an expert level

on this." And then given an expert level talk. Well, I am not an expert on this.

talk. Well, I am not an expert on this.

Uh, I don't You can tell me if it's an expert level talk later. Um, but okay.

Uh, first question. I I have one question to start off with. Um, why is this? I want that. Yeah, there we go.

this? I want that. Yeah, there we go.

Okay. Um, does does anybody know what the title of this talk is? A snow clone of?

Seems familiar, huh?

>> A machine learning paper unreasonable effectiveness.

>> There is a machine learning paper. Okay.

There is almost certainly a machine learning paper. This is a very commonly

learning paper. This is a very commonly snow cloned title. The original one that I am referring to um is that there's a whole bunch of these. This was in 1960.

There's this paper by um this guy Eugene Wner um and um so okay th this the unreasonable effectiveness of mathematics in the natural sciences uh

right 1960 he actually gave this lecture 1959 um if you can it's a right 65y old paper you can go get it online um and if

you think that uh it is wrong that somebody should be holding on to a 65-year-old paper behind a payw wall then you are wrong and you absolutely absolutely should not uh get it on

SciHub. That would be wrong. That would

SciHub. That would be wrong. That would

be unethical. Um so the I I want to read you like the first paragraph of this uh of this paper um in which he says there's a story about two friends who were classmates in high school talking

about their jobs. One of them became a statistician and was working on population trends. He showed a reprint

population trends. He showed a reprint to his former classmate. The reprint

started as usual with the Gaussian distribution and the statistician explained to his former classmate the meaning of the symbols for the actual population uh and so on. His classmate

was a bit incredulous and was not quite uh it was not quite sure whether the statistician was pulling his leg. Uh he

said how can you know that and what is this symbol here? Uh and this oh said the statistician that's pi

and so what is that? Well, it's the the ratio of the uh circumference of the circle to its diameter. Well, now you're pushing your joke too far, said the classmate. Surely the population has

classmate. Surely the population has nothing to do uh with the circumference of the circle.

Um and so we have all of these mathematical approaches, right? And like

they do predict the thesis of this paper goes on to say we have all these mathematical approaches and they they do predict the natural world. But why? They

don't seem like they have to. And so he takes a breath to note that as scientists we are quote inclined to smile about the simplicity of the classmates's approach, but the reaction

of the classmate betrayed only common sense. Right? So Wignner goes on to talk

sense. Right? So Wignner goes on to talk about like why is it the case that math seems to work so damn well? Um and then a and he he spends like the rest of this

discussion in total amazement more than anything else, right? like this madeup concept. He's a he's a uh quantum

concept. He's a he's a uh quantum mechanics guy. Uh this madeup concept of

mechanics guy. Uh this madeup concept of Hilbert spaces seems to describe quantum mechanics and that they're based on complex numbers and there's no such

[ __ ] thing as a complex number. um

right like the square root of negative that that is not right like that we made this up right we we just and so I want to hold on to this amazement that

Wignner comes in here with and and I want to talk about an algorithm and a series of concepts that I find to be shockingly amazing at solving like every

telecommunications problem that we have um this this thing is the forier transform uh not the the furry transform form. I I I'm I'm told that I that

form. I I I'm I'm told that I that that's more different. I'm told that I had to make that joke. Um

um I I presented this at the Mountain View Reverse engineering meetup and said, "Dude, I I don't care like I I do care about your your talk, but you have to make a furry joke." And there you go.

Um um but okay, so you you are not expected to understand this, right? Like

I'm presenting this which what >> uh is that Tumblr key smash? What is

Tumblr?

>> That's right. That's correct. Every time

I've opened up one of these, every time I've opened up a textbook, uh, like especially on error correction codes, right, the first page is like here is exor and the second page is like I

opened up latex from um anyway, so um the what I want you to know about this is that it relates the frequency domain representation of a signal with the time domain

representation of a signal. We'll talk

about that in a minute. Um, but this works for any kind of signal. Hopefully,

we're not going to go into a whole lot of math here. Hopefully this is actually going to be I hope this is going to be the last time you're going to see it today. And the only reason I even

today. And the only reason I even present this uh equation for you is to ask what the [ __ ] is that thing doing up there. Uh we are talking about signals.

there. Uh we are talking about signals.

Where are the or we are talking about signals where are these circles? Um so

anyway here um here here's th this talk is for a very wide set of audiences and um not everything is going to be for like some people are going to go like I

know all of that blah blah blah and some people are going to go um I have I have pushed most people are intended to come away with slightly more knowledge than they started with and then a bunch of ideas to think about in the back of your

brain with. Um, I I'll get to that

brain with. Um, I I'll get to that later, but if there's something that doesn't make sense, don't give up. Don't

feel bad. Do tell me later. Um, but if you get slightly more than you came in with, um, there should be a point at which everyone gets lost eventually.

That's my hope. It's different for every person. That's the goal. Um, so here's

person. That's the goal. Um, so here's so basically the there are kind of three things that I wanted to talk about, right? I'm going we I said that the 4A

right? I'm going we I said that the 4A transform relates the frequency domain to the time domain. uh and I think we should just do a little bit of an intuitive overview of the frequency domain. Um there's this concept called

domain. Um there's this concept called OFDM. That's actually what I really want

OFDM. That's actually what I really want to tell you about. And I want to tell you about why the frequency domain makes it possible to have the concept of OFDM at all. And then I want to tell you how

at all. And then I want to tell you how OFDM solves every single problem we have ever had. And then you are all going to

ever had. And then you are all going to be experts and it's going to be great.

Um so I I want to start looking at some signals here. Um, this looks like a sine

signals here. Um, this looks like a sine wave, right? This looks like a sine wave

wave, right? This looks like a sine wave because it broadly is. Um, and there's a couple of different ways that we can talk about this, right? This has a

period of 1/4 the sampling window. Wait,

hang on a second. Do I have a You come here. Um, no, I can't hit that with a

here. Um, no, I can't hit that with a laser. Um,

laser. Um, this has a period of 1/4 of the sampling window, right? This is this is the

window, right? This is this is the period from here to here, right? Um,

another way that we can talk about this is that the frequency is four times the sampling window. Right? You're you're I

sampling window. Right? You're you're I didn't say hertz here because nothing in here says seconds, right? Hertz is is one over seconds, right? Um, and

finally, the the last thing that we can say about this is that it has a period of 512 samples, right? Um, and we can look at it. We can use our eyeballs to

look at it and know that there's one sine wave in there. Um and so if it's roughly true that you can decompose any

signal that fits into a given bandwidth uh into a sum of sinosoids. A sinosoid

is a sine wave approximately that has been shifted or scaled or um right. Um

so you can it's roughly true that you can decompose any signal that fits into a given bandwidth into a sum of sinosoids. Sure. And if we look at all

sinosoids. Sure. And if we look at all of the sinosoids that fit into this bandwidth here, right? Here's a here's a list of all of them. Um, we can see that one of them, just one of them has an

amplitude of more than zero. It's hard

to see. Let me zoom in. Um, and if we zoom in on the frequency content, then we can see that this is in fact a frequency for sine wave. Um, and just as

a reminder, so let's so that makes sense, right? Um, and so let me just go

sense, right? Um, and so let me just go through a quick reminder of some of the other properties of the frequency domain. when we add two signals together

domain. when we add two signals together in time, right? Um here are two two very different signals. Um here they're both

different signals. Um here they're both sinosoids and they both have one frequency component there, right? Um if

we add these two signals together in the time domain, then it's the same as adding their uh components together in the frequency domain. That make sense?

Um and right, I I just want to Oh, right.

Here's the other this is the other really important thing about uh time domain frequency domain. Um uh this is actually really really important. Uh one

more idea is I'm just going to show you with one sine wave here. But if you take a signal and you add together a couple of copies of that signal that are only

shifted in time or scaled, right? So

these these are the same frequency.

They're just shifted forward and backwards in time or they're bigger or smaller. um and you add them together,

smaller. um and you add them together, then you get a copy of that signal that has been um shifted a copy of the original signal, right? That has been

shifted in time and scaled but has no new spectral information.

Okay? Um there's there's no other frequencies that have magically appeared. Um and this is the case for

appeared. Um and this is the case for any repeating signal that you can come up with. uh the e the exact way that any

up with. uh the e the exact way that any given frequency gets pushed around is different for any frequency and so so if

I shift a whole signal by time and add it together each frequency in there will get changed slightly differently um but no new frequency gets added right so

here here's another version right I've taken this uh and again two different signals and they have the same spectral content the if you look at the phase of

the little guy with respect to the big guy uh the the larger wave that phase has shifted a little bit but there are still two and only two sine waves in the

in the output right um and also this is knowable I should note we're not going to say what I'm not going to say here what it is that makes it knowable um but

for any given combination of a delay and shift of signals that you're adding together uh and any given frequency we can know what the effect will be on any given frequency in the signal. Okay,

that make sense? This property, we're going to come back to this property. Um,

this is a this is a really powerful concept and the the idea is that um we can right we give a name to any transformation of a signal that looks

like this. Um, if we add up a bunch of

like this. Um, if we add up a bunch of shifts and adds or and and delays to a signal, that's a linear timeindependent transformation. Um, linear. Why is it

transformation. Um, linear. Why is it linear? Because uh adding is so if it it

linear? Because uh adding is so if it it happens um >> multiplying is adding multiple things together, right? That's linear. There's

together, right? That's linear. There's

there's no square root. There's no

there's no component there that depends on the amplitude of the signal. It's

always the same. Time independent. Why

is it time independent? Because if I do it now, if I do it in two hours from now, the same thing happens no matter what. And importantly, if I do it now,

what. And importantly, if I do it now, if I do it in a thousand samples from now, the same transformation happens, right? Um, and if you're a nerd, then

right? Um, and if you're a nerd, then this this thing can also be represented with a thing called a convolution. And

if you don't know what that is, that's fine. Um, oh yeah, uh, as and speaking

fine. Um, oh yeah, uh, as and speaking of of nerds who are going to well actually at me here. Um the you're noticing you're uh if you are such a

nerd you are probably noticing that I'm talking about real numbers here and not uh imaginary numbers whatever those are that are made up um and that I'm talking only about amplitudes here but there is

actually a phase component here um and so the reason why I'm doing this is because it is easier to visualize this with the time that we have right to to visualize only amplitude but all of these transformations that I'm going to

talk about that apply to amplitude they they apply to phase is also so if you're going to stop me and tell me about this anytime you can just take a breath anytime I say multiply the amplitude imagine that I said rotate the phase um and if you hadn't known this was a

simplification I was making it's a sound simplification approximately don't worry too much about it um and oh yeah there's a transformation between time and

frequency domains right okay so right so this is this is what we just talked about there's a time transformation between time and frequency domains um when we make certain transformations they have other predictable transformations in the frequency domain.

We talked about that. Um and oh yes uh that transformation between time and frequency domains is uh sometimes can be really fast and efficient. Um if you

looked at that uh that 4A transform that I showed you before uh and saw that big sigma in the middle you're like huh that's an O of N squ. Well there's an O of N login algorithm. Um so there is a

there's a way to do this really efficiently. Um that's out of scope for

efficiently. Um that's out of scope for today. Anyway, let me show you um some

today. Anyway, let me show you um some more interesting signals and like how we transmit data and what that looks like in the frequency domain. And so this is

uh depending on who you're asking, this is either an NRZ code or a BPSK code. Um

and I'll call it non-return to zero. Uh

we are just transmitting bits one bit at a time, either negative 1 or positive one depending on the bit that we are trying to transmit. um and we are transmitting it well below the frequency

limit of what we are capable of seeing right um the there's many samples per one single bit right and as a result we see this repeating pattern in the frequency space we are we are only using

this much of our frequency space to actually transmit data does that make sense um so the and so more concretely we

would say the baud rate of this is below the sampling Um, and to make this a little bit easier, uh, we're going to we're going to look at amplitudes for the rest of this time. We're going to look at

this time. We're going to look at amplitudes logarithmically. Um, since

amplitudes logarithmically. Um, since rather than adding or subtracting most of the time, we're going to be multiplying, right? Um, we are going to

multiplying, right? Um, we are going to be scaling things in in linear time independent trans uh uh transformations.

And so that all is multiplicative. And

so it's easier to visualize that logarithmically.

Um so um I want to just kind of show how various transformations impact a signal.

Um are we familiar with what an eye diagram is? I diagram shows us uh how we

diagram is? I diagram shows us uh how we can distinguish between whether we are whether we receiving what we were transmitting um whether there's space between being able to tell the difference between a one and a zero. And

so this eye looks really good, right?

There's a big difference between one and zero. Um, and so the the the eye here is

zero. Um, and so the the the eye here is wide open. There's a dot dot dot in the

wide open. There's a dot dot dot in the middle, right? Um, and so what happens

middle, right? Um, and so what happens if we introduce a channel that performs a little less well at high frequency?

Um, here here's this here's this impairment that I've added on this channel. Uh, the channel rolls off like

channel. Uh, the channel rolls off like that. Um, and in this case, the eye

that. Um, and in this case, the eye still looks just fine, right? We have no issues telling the difference between a one and a zero. Definitely happening

there, right? Um, let's introduce a channel that performs even less well at high frequency.

Um, that's the eye is still open, right?

You we can still see like if I sample right here, I can tell the difference between one and zero, right? Um, and if I have a channel that looks even less

good than that, that's not looking great, right? Um,

this is this is a transformation that we cannot fit a simple equalizer to, right?

I I can't just go put I just I can't just go pre-emphasize this and put my high frequencies back. And you're going to say, Joshua, that is not what real channels look like. And I will say, yes,

they will. Um, antennas, this is this is

they will. Um, antennas, this is this is like completely reasonable for something that happens uh in an antenna or

elsewhere in a system. Um so but one thing that's worth thinking about here is that again if we're just looking at

the frequency domain here right um these are all linear time independent transformations right we we decided on that and so

therefore these linear time independent transformations also happen these signals are the same right these are these are two ways of viewing the same thing right so if a linear time

independent transformation happens here, it happens here. Um, and if these linear time independent transformations happen to happen, like if these happen to be

how we model the real world, um, and if it's easier to reason about transformations in the frequency space

than in the time space, um then why don't we take our data and put it in the frequency domain rather than in the

time domain.

And in some senses the data is everywhere, right? It it is in both domains at all

right? It it is in both domains at all times, right? That it is it is two

times, right? That it is it is two representations of the same thing. But

if we start uh thinking about our data as being in the frequency domain, what what would that look like? Um I had 256 bits earlier, right? And now I've put

the data into the first 256 frequency components.

Okay. um the rest of the frequency components are zero. And so, by the way, you remember that we had this kind of like lumpy structure where we're using all that spectral space. Um and we weren't really doing anything with it

previously, right? Um we'll come back to

previously, right? Um we'll come back to that later, but I'm I'm just going to zoom in on this so that we can see exactly what's what's going on, right?

Um I'm using this this coding here. Um

and you can see, okay, so here's 001 0, right? Um I I can see where I've stored

right? Um I I can see where I've stored my data there. and the inverse forier transform. I'm looking at this. If I if

transform. I'm looking at this. If I if I plug into an oscilloscope into this, I'm no longer seeing zeros and ones. An

eye diagram does not exist for this anymore, right? Well, it in some senses,

anymore, right? Well, it in some senses, right? The the eye diagram in the time

right? The the eye diagram in the time domain is nonsensical and that's fine. The data are still there because we can see them in the

frequency domain, right? Um, and if I receive this signal, right? Let's say

I'm I'm adding I don't know 02 peakto peak of noise. That's what I I think that's what I added here. 02 of peakto peak of noise there. Um and so that's

like 8 minus 8 dB worth of noise or so.

Uh and if I convert that time data back to frequency domain data and so I'm just going to put this simple threshold here.

Right? So one you can see that I've added some noise in the higher frequencies where I was transmitting nothing. But where I'm transmitting

nothing. But where I'm transmitting data, uh, I can still threshold it and I can still receive recover all of the data that I've transmitted, right? Um,

and so this is a super duper powerful idea and it is so powerful of an idea um, that they gave it a name. It's

called OFDM. And this is what I wanted to talk about today and it's the foundation of a huge number of modern telecommunication air interfaces.

Um, okay. Um,

LTE, right? Cell modems, that's reasonable. We That's That's definitely

reasonable. We That's That's definitely a an OFDM air interface. Um, Wi-Fi 6.

Okay. So, they they got around to OFDM recently. 5G, that's an evolution of

recently. 5G, that's an evolution of LTE. We're good. DVBT. Uh, who knows

LTE. We're good. DVBT. Uh, who knows what DVBT is?

Yes, that's European digital TV, right?

Um, and they decided they're going to use OFTM. Americans, we have decided

use OFTM. Americans, we have decided that we are going to transmit using 8VS, which is this weird halfway thing where you do amplitude shift. Oh.

Oh, no, no, no, no. In the most recent version of the spec, we changed to OFDM also. Um, uh, let's see. Docsis and we,

also. Um, uh, let's see. Docsis and we, what's DOCIS?

>> Cable modems. What's, uh, what's that?

Anybody know what that is?

That's a DSL modem. DSL modems are one of the very first uses of um of OFDM in consumer products I as far as I understand. Um and it makes sense,

understand. Um and it makes sense, right? Because the whole problem with

right? Because the whole problem with the DSL modem is that you have an absolutely garbage tier channel, right?

You have just an absolute trash channel that is uneven between you and the central office and you want to cram as many bits over it as you can and the impairment is somewhere in frequency and so you want to figure out what that

impairment is and then cram as many bits over it as you can. Um, and so what does OFDM stand for? OFDM stands for orthogonal frequency division multiplexing.

Um, well what >> did we get your joke?

>> Yes, that's right. Good. That's right. I

am very very funny. Right. Um, so um what's frequency division? Multiplexing.

This this makes some sense, right? We

are going to take a bunch of bits and we are going to multiplex our data by frequency. Um and uh multiplex divide it

frequency. Um and uh multiplex divide it up by frequency frequency division multip uh multiplexing orthogonal um does everybody know what orthogonality

is like I have these two axes x and y and if I move along x then the ycoordinate does not change right x and y are orthogonal to each other if I for

some godforsaken reason define my axes like this x and y um a change in x results also in a change in y. If I move something along the x axis, it moves it

necessarily changes along y. X and Y are not orthogonal, right? Um, so when we choose frequencies to divide on, we choose frequencies that are somehow

orthogonal to each other. If I put some if I put some content on this frequency, it doesn't change anything else. Um, and

this is um this this is a little bit um like in in some senses this looks intuitive, right? Um but in some senses

intuitive, right? Um but in some senses the careful choosing of these frequencies really matters. Uh in this example, I discretize all of these frequencies, right? I I say that the

frequencies, right? I I say that the frequencies are allowed are 1 2 3 4 5 6 7 8 9 10, right? Um but in reality, we know that we can have a there's there's

no reason why we can't have a 2.5 herz signal, right? That's like that's legal,

signal, right? That's like that's legal, right? Um and um and so the the answer

right? Um and um and so the the answer is that those like the frequency space is contiguous but some of those frequencies if we go and sample them and

and look at them like this they will cause things to show up especially over a a finite window. Um they will cause things to show up on other frequencies.

Right? We are looking at this only over a finite window. So um that so depending on how you look at it anyway that the

frequency space um the orthogonal frequency space is discretetized. Um and

so how do we choose which frequencies that we are allowed to transmit on?

There's one particular transformation that makes it easy to separate out these frequencies. What is this

frequencies. What is this transformation?

It's the 4A transform.

Um, and so the, by the way, when was this idea like we had this explosion of technology starting with like DSL modems? Um, so you would think like we

modems? Um, so you would think like we came up with this in the 80s, right? Um,

no. Hell no. Um, we we filed uh for those of you who are squeamish when you see a patent, which you should be, um, your your your party line should be, I I don't read patents. Um, if you've never

heard of the words treble damages, you should go look them up. Um, but in this case, I can tell you this patent is is is solidly expired. Um, so so you're

good. Uh, um, and oh yeah, what what's

good. Uh, um, and oh yeah, what what's the one other interesting thing here?

This is assigned to Bell Labs.

Everything good came out of Bell Labs.

Um, so and okay, I have right here's one more aside for nerds. Um, and so I I mentioned also that I am truncating

complex numbers and just looking at their real components or just looking at amplitudes and like doing some aggressive lying about the the contents of things here. And um you may be

looking at me and you're going Joshua this is a very bad representation um for like this is a bad way to encode a signal on an OFDM frequency. I'm not

actually doing onoff keying or or anything in particular. I'm choosing

this weird amplitude shift keying that is hard to really tell the difference between. And I will say the way that

between. And I will say the way that I've chosen to encode things on each frequency is not good. You should not do this.

But it does work, right? And and more to the point, it is easier to see. I can

put a nice line for a threshold there on screen. Okay. So there when when the

screen. Okay. So there when when the reality again for for those of you who want to go deeper into this later um like you might choose to use PAM 4, you might choose to use PAM 8, you might

choose to use a constant power level for BPSK. This is not a constant power level

BPSK. This is not a constant power level across a spectrum. So you're wasting some transmitter power blah blah blah blah blah. Anyway, um just all this is

blah blah. Anyway, um just all this is to say this is not really how you do, but it's a good way to demonstrate it.

Um okay, so what have we talked about?

Uh I promised you we were going to talk about the frequency domain. I promised

you that we were going to talk about how we were going to use it with OFDM and now we are on to the fun part. Um so the what did we come to? What's the insight

that we came to earlier?

The things that happen in the real world are mostly linear time independent transformations, right? Linear time

transformations, right? Linear time independent is add shift multiplies, right? Um and those are a lot easier to

right? Um and those are a lot easier to pick apart in frequency space than in the time domain. And so let me give you a couple of examples of the sort of problem that OFDM solves.

Um so let's come back to this example we saw earlier where we de modulated a signal that we received. This is

fantastic in the ideal case, right? I'm

I'm a happy camper if everything goes well here. Um but if the signal has like

well here. Um but if the signal has like some kind of weird channel fading, let me show you. Let's bring in that channel fading that I saw before.

um this threshold no longer gives readable data. Right? If I choose this

readable data. Right? If I choose this threshold, I'm going to see a little bit of a bit error rate on these channels.

And here I'm getting it totally wrong the entire time, right? Um and um right, I I yeah, so again, I said like it's not

obvious that actual channels have loss that looks like this. Um or and it might not even be obvious that the channel loss is relatively smooth. That is to

say that it's not scattered differently on each one. Um, trust me that it is and it's out of scope to say why only to say that shockingly it has to do with the 4A

transform.

Um, so I want to compensate for uneven channel fading. And the way I want to

channel fading. And the way I want to compensate compensate for this is I want to somehow measure the channel to see how it's behaving, right? Like I want to know what the shape of the fading in the

channel is and what I need to compensate for. And so the way that a bunch of OFDM

for. And so the way that a bunch of OFDM implement implementations do this um is by inserting uh specific subcarriers.

That does everybody understand what I mean by a subcarrier? One of those channels is a subcarrier. Um and they're going to insert specific subcarriers that have what they call pilot tones. I

raised these pilot tones here to make them a little bit more obvious. um that

have uh specific pilot tones that are and we know both on the transmit and the receive side which uh subcarriers have pilot tones, right? Um and so since we

know on the transmit side and we know on the receive side, we can measure the pilot tones on the receive side and compensate inside the receiver. So, I'm

just going to linearly interpolate um my threshold between these. Um and uh and I moved the threshold here, by the way.

Previously, I had it right in the square in the middle logarithmically, excuse me, to make it easier to see. Um I moved it to be um equidistant linearly because

of the way that because that's how it should be. Um but um but right so and

should be. Um but um but right so and and you can see now that I've changed this threshold to interpolate based on where the pilot tones that I've detected are, I'm actually recovering

basically all my bits. My bit my error margin there is not fantastic. Um so

maybe this isn't quite enough pilot tones for um the for the fading that I'm seeing in this signal, but that's pretty good. Um

good. Um and so I want to talk about like another impairment then. Um, let's say that I

impairment then. Um, let's say that I add some burst noise in time, right? Um,

how did this happen, by the way?

>> Huh?

>> Lightning strike. Yes, lightning strike here is totally a good option. I was

thinking another good option was like an airplane flew over um between me and the satellite just uh in that short period of time. Uh, for whatever reason, um,

of time. Uh, for whatever reason, um, the amplitude was reduced by half during those couple of samples during that during that orange period only. And so,

okay. um because the entire thing goes into everything, right? Is the whole symbol corrupt? Well, the it's it's this

symbol corrupt? Well, the it's it's this by the way is not an error that is linear and time independent. This is not time independent because it depends on

time, right? So, OFDM is not designed to

time, right? So, OFDM is not designed to compensate for this. Um but it turns out that this actually um this is actually

very recoverable, right? the the noise is distributed across all the symbols.

And in fact, if I was looking only in the time domain on here, if I was doing if these samples were corrupted uh in a onoffkeying pattern or something like that, right? Then I would have lost

that, right? Then I would have lost those samples entirely. So in this case, I've actually my bit error rate is a little high there, but other than that,

uh I'm doing pretty good. Um, oh, and so when I said, by the way, when I said earlier that like this is a bad modulation, right? Um, the like you

modulation, right? Um, the like you would not actually want to do this in reality, uh, this is why because the lower ampl or the lower amplitude the zeros are corrupted more than the ones

are, right? And so I would really

are, right? And so I would really ideally have a constant amplitude modulation. Um, and again, so if you're

modulation. Um, and again, so if you're thinking about that kind of thing and like, huh, why would I choose BPSK over over onoff keying or something like that. Um, and and you know what those

that. Um, and and you know what those things are, then that is why you might choose that. Um, okay, I want to move on

choose that. Um, okay, I want to move on to another impairment that could happen in reality.

Um, it's, uh, it's all good when a signal goes from one place to another place, right? Uh, we send it, we receive it.

right? Uh, we send it, we receive it.

The real world is a little more complex.

Um and we have uh multipass reception.

No uh multiath reception. Um so okay in the real world signals can bounce off and reflect right. Um the was that joke

funny? Yeah. Okay. Good. Good. Uh I I I

funny? Yeah. Okay. Good. Good. Uh I I I thrive on your acceptance. Um um so multiple copies of the signal show up.

Uh I I even made the the green arrow a little bit smaller. Right. multiple

copies of the signal show up at different times and with different amplitudes, right? Um, and if we look at

amplitudes, right? Um, and if we look at these three signals that are being received together, they they sort of look like this. And we could sum these together, by the way, to represent what

we receive, right? And if we sum these together, these are summations of adds and shifts. What do we call that?

and shifts. What do we call that?

>> Linear time independent.

>> Linear time independent transformation.

That's right. Um, which we already proved is possible. and easy to fix with the magical power of the Forier transform, right? We just did that a

transform, right? We just did that a minute ago. So there is at least a

minute ago. So there is at least a little bit of a problem and that is that these signals don't exist in a vacuum, right? Um each of these things that we

right? Um each of these things that we did uh an inverse so we in order to generate this signal we did an inverse forier transform. That's how we got

forier transform. That's how we got that. um each of those block of samples

that. um each of those block of samples that we call a symbol or a symbol comes one after another, right? So like in reality this this thing happens here,

right? And this this these red regions

right? And this this these red regions are a different block of symbols than the one that we're talking about. So

this is not actually a repeating symbol in time, right? If this were a repeating symbol in time, we would be good. Um but

there's but this is is something completely different.

Um and so the right we start delaying the symbol the old symbol overlaps into the new one. Uh we always have to sample exactly the same number of samples each time right we're always going to sample

2048 samples. Um so no matter where we

2048 samples. Um so no matter where we choose to sample we are going to get um one symbol blurring into another one.

Oddly we call this inter symbol interference.

Um, so the elegant OFDM, right? Okay. Um,

right. Okay. The elegant OFDM solution to this comes from something that we saw before. And we know that these signals

before. And we know that these signals are supposed to be in order to get um to recover from inter symbol interference.

We know that these symbols are supposed to be repeating in time, right? it any shift that is repeating in

right? it any shift that is repeating in time we can recover from right.

Um and so since they can be shifted forwards and backwards they can get shifted in a loop.

So if we want to add something to either side of the uh symbol to space it out effectively we know what we need to add

right? We take the end of the symbol and

right? We take the end of the symbol and just add it back to the beginning.

Right. Does this make sense as to why we can extend a symbol in that way? Yeah.

Uh you are losing efficiency. You are

correct. Um so this is that is 100% the case that you are losing efficiency and indeed you are losing efficiency by adding pilot tones. Um and so what do you get for your losing efficiency? You

get the ability to recover from multipath, right? Um so okay but so

multipath, right? Um so okay but so indeed and you can choose by the way you can choose how much multipath you're willing to recover from um in in OFDM

parlance this is called a cyclic prefix uh we take a chunk from the end and we add it to the beginning of each symbol um and you can choose the size of your cyclic prefix and in fact this is

encoded in like when you in DVBT for instance they have um some pilot header or they some pilot channels that they encode all of that information on

anyway. Um so um right so when we

anyway. Um so um right so when we receive we still receive the same region each time or the uh the same length each

time sorry and we choose to receive the region in between the red lines right um and that region only has information from this symbol from some position in

the symbol in it. So there's no inter symbol interference.

Um, by the way, how do you know where to receive when there's one symbol after the next, right? When you're not actually just repeating endlessly in time. Like, how do you choose where

time. Like, how do you choose where those red lines are? Um, the cyclic prefix helps you align to that, right?

Because you know that these data ought look like those data, right? And so if you this um the the advanced version of this, right, is that you're doing you do

an autocorrelation in time and you want to figure out when you saw something that you saw approximately the right time ago and if you see the same data twice, then you know you're aligned. Uh

two birds with one stone, right? You

solve both. Yes.

>> Yes. Multi wouldn't multipath possibly make that correlation impossible? So

your cyclic prefix had better be a little bit extra long then. Um

and um it by the way being able to do this gives you two things at once like not or three birds with one stone I suppose.

There's this cool paper um I this algorithm that I really don't understand that not only helps you um detect the correct position in time in a symbol but

if you have a frequency offset like maybe due to Doppler shift or something you're receiving on the wrong frequency.

This algorithm can estimate both.

Oh, that's maximum likelihood, not machine learning. You goober. Um,

machine learning. You goober. Um,

anyway, um, I don't understand this algorithm at all. You can go read this algorithm. If you understand this

algorithm. If you understand this algorithm, you should definitely let me know because I solidly do not. Um, so

anyway, uh, now having done this, oh, I'll I'll have, by the way, feel free to take pictures. No problem. Um, there

take pictures. No problem. Um, there

will be a QR code at the end with resources for all of this. Um, and so, um, what do I get if I go recover this

multipath signal? Um, I chose pretty I

multipath signal? Um, I chose pretty I chose shockingly high amplitude on my multipath to make this visible. One of

those echoes is minus 3dB of the original signal. That's huge. That's

original signal. That's huge. That's

Huh.

Yes. Right. That's half the strength.

That's half the strength of the original signal. And so even still so there's

signal. And so even still so there's corruption with there's a repeat with half the um strength of the original signal and OFDM still recovers from this with a small number of sub channels

corrupted. Okay so this is more than

corrupted. Okay so this is more than good enough for again coming to the question of do we want to trade off efficiency to get um do we want to somehow trade off efficiency in order to get more recoverable data. If we layer

an error correction coding scheme on top of this, then we will trade off some efficiency, but we can now recover those small number of sub channels. Um, or if I wanted to be more resilient against

this, I could add more pilot tones also, right? Um, and so the other good thing

right? Um, and so the other good thing to note about this is that um, if your error correction scheme is a soft input or soft decode scheme where it's not

just one or zero, but you know that oh, I'm confident about this bit. that I'm

not confident about that bit and you can factor that in. Um these are like we know which of these we don't know about, right? We know we know that we're

right? We know we know that we're basically right here and we know that we're not so certain there. So this is this is the kind of thing that we're we're making it pretty easy for an error

control scheme to recover from. Um I

could go on for like hours and hours and hours. I'm going to give you one more of

hours. I'm going to give you one more of a interesting concept and this is the thing that is really most mind-blowing for me.

um for about OFFDM. And so earlier um earlier I showed you this right I showed you this slide and one challenge in radio technology is that we want to

occupy exactly as much RF bandwidth as we need right um we we don't want to transmit more we don't want to like if we're occupying all of this spectral

space right we don't actually need that that's space that could be used to transmit something else that somebody else could use um and so that square wave requires a lot bandwidth with all

the spectral replicas and um I I'd like to filter it, right? But it doesn't really exist like you can't you can't make a brick wall fil the thing that I

would want here like allows this and then everything else below that is negative infinity. Brick wall filters

negative infinity. Brick wall filters don't exist. Um and so in reality you

don't exist. Um and so in reality you end up not filtering out enough of the stuff that you want to get rid of.

Right? Like if I apply a filter that looks like this and I allow myself, you know, okay, up to um 30 dB, um then I'm

still using nearly four times as much spectrum as I need to. Um and or I could filter more aggressively and I end up affecting the stuff that I do care

about. Right? Um that would that would

about. Right? Um that would that would be bad. Right? Now I'm now I'm losing

be bad. Right? Now I'm now I'm losing this and and we saw what happened in that eye diagram earlier. Or the reality is actually that we'd end up doing both, right? We filter out the stuff that we

right? We filter out the stuff that we care like if I try and filter that, I'm going to filter out the stuff that I care about and I end up not filtering out enough and I still end up using a

whole bunch of spectral um occupancy.

So the cool thing about this is that OFDM solves this in a sense. I can make my my uh Forier transform as long as I

want. This is solved by construction

want. This is solved by construction because I am only occupying this much bandwidth, right? And somebody is going

bandwidth, right? And somebody is going to tell me, you would be correct to tell me, by the way, that if I put this through a an or digital to analog converter, I am going to get spectral

replicas way out there, right? Um, but I need a filter with a much lower Q in order to do this, right? I can filter

all the way along here um without worrying about affecting the parts of the channel that I care about and I might be able to deal with any of those effects on the parts of the channel that

I care about. Right. Um yes, right there's there's spectral or spectral band replicas way out there. Okay, fine.

But uh oh, I already said this.

Fantastic. Well, there you go. That

that's a graphical representation, right? I can set up I can set up a

right? I can set up I can set up a filter like that. Um, and I can choose my FFT to be or my 4A transform to be as wide as I want and use as many sub channels as I want to provide the guard

bands that I care about. Um, and use less spectrum.

And so this is really cool. And here is the thing that I um that brought me to really uh give

this talk which is let's say the the other side of this is also true.

Okay, let's say that I am a ultra low power cellular modem and I only care about a couple of channels at a time.

I'm a LTECADM modem. I only care about a couple of these sub channels in the OFDM signal and I know like this the cell tower told me in advance I'm only I only

care about like that channel in there and or like seven or eight um sub channels.

Um, I can apply a filter that picks those bands out and now I have fewer sub channels to work with and I have an even

smaller forier transform. I don't have to do a size uh 20 48 Foriera transform on this. If I filter those frequencies

on this. If I filter those frequencies out, I can do a 4A transform centered on these frequencies and I can use a whole

lot less energy to receive only the data that I care about. And I can do this without compromising the ability for the

cell tower to transmit a wide a wide forier transform to everybody's cell phone.

I'm seeing quizzical looking faces.

Where is the free lunch? Well, you have to make that filter really carefully shaped. You have to be really good at

shaped. You have to be really good at making that filter. Um, but the but in and indeed also you have to schedule you have to choose which sub channels you

want to schedule on in order to make this happen, etc., etc., etc. It it's not totally a free lunch, but like this is the kind of thing where like this

happens to fall out of this algorithm.

This falls out of this this basic concept. That is why this is so exciting

concept. That is why this is so exciting to me. I could go on for hours about

to me. I could go on for hours about this. Um there's so many cool things I

this. Um there's so many cool things I don't have time to talk to talk about.

I'm going to seed you with a couple of few a couple of ideas for things that you can go look up later.

um you can or just think about them in the back of your mind. Um so what happens if your local oscillator shifts, right? Um if your local oscillator is

right? Um if your local oscillator is drifting a little bit, then you can use the I we we ignored phase so far, right?

But you could you that has a phase transformation on all of your pilots, right? And you could use the phase data

right? And you could use the phase data from your pilots to shift your local oscillator back to where it is supposed to be. Hm. Um or if you have Doppler

to be. Hm. Um or if you have Doppler shift, which means that your sample rate is effectively inaccurate. Um it's local oscillator shift shift except all of the

pilots move slightly differently. And

you can compensate for that with um with again by servoing all of your control loops that way. Um let's say that you have a uh diversity of receivers that

have different decode capabilities.

um and you want to be able to transmit data um on the same chunk of spectrum for um both high power cell phones and low power cell phones, right? You can

devote different sub channels to different modulations. This is not a

different modulations. This is not a thing that I can do if I was just transmitting symbol after symbol after symbol after symbol. there there are not really receivers out there um that like oh I'll look at every third symbol and

try and do clock data recovery on every third symbol with BPSK or what right like and and determine if it's QAM or not you can't do that unless you have

many sub channels um and similarly um if you actually want to go the other direction let's say you have a room full of cell phones and you want them all to

transmit back to the tower at the same time. You can give them all sub channels

time. You can give them all sub channels on the you can give them all uh assign them each their own sub channels to transmit back to the tower,

right? And then you can equalize each of

right? And then you can equalize each of those independently. And so everybody

those independently. And so everybody can transmit at the same time without having as long as they've been assigned sub channels in advance, everybody can transmit at the same time.

Um, again, this all the the these are if if this doesn't make sense now, think about it for the next 10 years or so.

That's that's what it took me. Um, but

um, and it and I should say OFDM does fix almost everything. I'm I'm running low on time, so I'm not really going to say much about this, but like um, if OFDM doesn't solve all of your problems,

um, you can consider various cross- interled uh, error correction codes. Um

and in fact this is what people do in reality is if you want to spread data over many different symbols for instance and if you want to use the you know the

problem with read Solomon BCH codes again is that you can't um that you basically have to do hard recovery and okay let's say that you have information

about like oh I think I got it I think I didn't get it right um if you have that information you can pass that to a convolutional code um So here is what we talked about. Um you are all experts on

talked about. Um you are all experts on thinking about things in the frequency domain. Now you're all experts

domain. Now you're all experts conceptually on OFDM. That's that's all really good news. And you actually have enough information to go implement it yourself.

Um and so I said in advance I I said previously that I'm not an expert and this has been 16 this talk is 16 years

in the making. Um, in 2005, this French madman, um, the people who laughed, this is because this, they recognize the name Fabric

Bard, who is the guy who wrote, uh, FFmpeg and QMU. Um, right. Yes. The same

guy did both of those, right? And he

also happened to just release this this file. So you display it on on your uh

file. So you display it on on your uh you display it on your screen and you connect an antenna to the green pin of your VGA digital to analog converter. Um

and then you wire that to your television and the spectral replicas from that happen to show up on the right frequency for television and form a

valid DVBT signal.

Um and it works. Um and I saw this and I went, "What the fuck?" Um, and I went, this is in 2009, I had just taken a intro to signals and systems course in

undergrad. Um, and I went, I obviously

undergrad. Um, and I went, I obviously now have enough knowledge to decode this. Um, and um, and you know, so this

this. Um, and um, and you know, so this was in 2009. I I started writing some visualizers and that's that's not really what a QAM constellation looks like. I

was seeing approximately noise. Um, and

you can tell by the change in Mac OS, um, that a decade later, um, I I finally

I was on an airplane home, um, back to to Boston late 20ou or late 2020, um, when I finally managed to lock the

synchronization of of what he had he had posted on the internet however many years prior. um and decode this. So this

years prior. um and decode this. So this

has been this has been 16 years of of of working on this and learning about it the hard way. You don't have to be an expert either in order to learn these kinds of things.

I want to come back to kind of the namesake for this talk. Just to close with Wignner's concern at the end of his um

at the end of his paper was that like we might not always be this good. uh he

said the the level of knowledge and ingenuity is a continuous variable and like you know to the extent that we might have gotten lucky so far right like skill problem well skill solution

um in the future it might be skill problem right and our suddenly he his concern is that our suddenly consistent world like starts to break down and he has this concern about how lucky we've

gotten with all of this and I'm not sure that we got lucky with the concept of the forier transform like in some senses that is really by construction I guess it is lucky that sine waves are

like I we sure as [ __ ] got lucky that the fast for transform is in O of N login um rather than O of N squ right um I in the resources for this there's this YouTube video that you should watch if

you have 25 minutes and you want to think about this uh that explains how to construct the fast for transform I watch it like once a year and I understand a little more each year um but um anyway

Anyway, Whitner concludes to say, "Let me end on a more cheerful note. The

miracle of the appropriateness of the language of mathematics for the formulation of the laws of physics is a wonderful gift which we neither understand nor deserve. We should be grateful for it and hope that it will

remain valid in future research and that will it will extend for better or for worse to our pleasure even though perhaps to our bafflement to wide branches of learning.

There's a lot of fields like that out there. There's there's one out there

there. There's there's one out there that's getting all of the press that we don't really understand. Um that seems to be talking about using bizarre complicated mathematics to make

consciousness or make a godhead out of or whatever it is, right? Um but

all of this has been there all along.

And even for like the sparkies amongst us who want nothing to do with this AI [ __ ] we have plenty of opportunities to express wonder at the kinds of research

and development that have been done like since Bell Labs did this in 1960, right?

Applying big math to our work and getting these I don't know like I think these are kind of beautiful results.

Like these are this is an almost intuitive result. If you look hard

intuitive result. If you look hard enough, it's intuitive, right? Um, and

so I think my my claim also is that like it's probably worth taking a moment to revel in it a little bit.

Anyway, um, thank you all.

I think we have like three minutes that I can take a couple of questions. Um,

here that there is a resource there is a resource set there. I hope these slides will show up eventually. I mean the slides are there and I will post these

to my to my internet. Um

yeah. Does anybody have any questions or want to correct me? Yeah. Yeah. Yeah.

Yeah.

[Music] Why did it take so long for us to come up or to actually use OFDM if belt labs came up with this in the 60s? Um, and I

think part of this is how wide of a 4A transform we can efficiently implement now. Um, and also we've gotten better at

now. Um, and also we've gotten better at implementing. So one is we have more

implementing. So one is we have more compute power to do wide 4A transforms. Um we've gotten better at implementing

4A transforms. Um like the faster 4A transforms have gotten a lot faster. Um

the like if you think about the IE E paper that I posted uh a link to that uh explains how to do offset and carrier

recovery. That's a relatively new thing.

recovery. That's a relatively new thing.

Um but also this was the early foundation of DSL right so it's it is somewhat old in that regard and you could see the evolution of this then uh

if you think about the old if you think about dialup modems doing the right the training sequence um then when they would make wideband spectral noise and

then try and measure it on each side um then that was uh in the DV in the DSL times That is what they did is they did

pre-training to bring up the link and after they brought up the link then they would not continue to have pilots or anything like that. um they they would just assume that the link was constant

the whole time. And so that what that is in some senses is an evolution that happened and the subsequent evolution of DVBT being low enough power being able

to do a 4A transform in low enough power that you could do it with mobility and that you could do constant measurement of the channel that came as we were able

to do 4A transforms in lower power. So

it did take a while but yes yes yes >> so I wanted to ask you what are the limits in a sense we still miss packets and we still miss the you know the

communication fails in between you know at some point we are not able to recover the signal from this uh right at what

point we cannot recover the lost signal >> what point can we not recover a lost signal or what is what are the limits of what we can recover um that's a great question. And so if I come all the way

question. And so if I come all the way back, I'm not going to be able to find the slide. Um, but if I come back to

the slide. Um, but if I come back to that slide with the threshold there, right? Um, and being able to tell how

right? Um, and being able to tell how much noise we can add, uh, that fundamental question is called link budget or link margin, right? How much

noise are we able to add before we can't recover anything at all? And so the two questions about that are one, when do we lose the control integrity of the

signal? Um that is to say like if we if

signal? Um that is to say like if we if we can't recover where these symbols start and end it's definitely all over.

We are not seeing [ __ ] right. Um

and on the other hand, if we manage to align to symbols and we cannot recover sub channels,

um then um then now we have a noise margin per per sub channel, right? And

so to the to the thing that I had mentioned previously of having multiple different modulations in a single OFDM carrier. Um

actually DVBT is a great example of this because they have uh on their pilot frequenc or on their pilot sub channels they phase shift back and forth um to

transmit a very very low data rate control signal. They say like hello I am

control signal. They say like hello I am a DVBT signal. you should expect my pilots here. I am at we are at location

pilots here. I am at we are at location X in the sequence of scattered pilots etc etc. Um and that is designed to be

recoverable roughly you know no matter how bad the signal is you know that there is something there uh even if I can't recover an MEGTS data

stream out of it. So you can have multiple modulations to increase the receivability of a signal. Does that

make sense?

Yes, you mentioned the problem of spectral reflection and not being filter. Can we do that if we stay in the

filter. Can we do that if we stay in the frequency domain and just multiply the zero?

>> Um, can we Yes. Can we do a frequency domain um spectral filter?

Yes. Um, but it starts to be now you've lost all of the benefits of transmitting in the time domain. The whole benefit of transmitting the time domain is that you don't have to do a 4A transform.

>> His objective is to maximize bandwidth, but that's not solving the problem. It's

like close process, >> right? Um, yes, you could have a very

>> right? Um, yes, you could have a very good filter and it could be a very expensive filter. But if you already

expensive filter. But if you already have to shift into a digital representation of frequency domain data, but yes, yes, you can do that.

>> Yes.

>> Yes. If we assume the channel is not changing characteristics too quickly, could we have a pilot tone be here then next time here and here so I'm not wasting space for all those sub channel?

>> Yes. Uh can you if you assume that the channel is not changing quickly um can you move the pilots around? Yes, that

thing that is called scattered pilots.

Uh and that is what DVBT does. The idea

is that there are some constant pilots and then they have subfra they know what offset into you know it's symbol one through six in a super frame right and

you know that at symbol one you get this set of scattered pilots at symbol two you get this set of scattered pilots and so you get effectively

uh more fine grained channel measure or characterization um while using fewer pilot tones for Yes, that's yes, that is a good insight.

Uh and and indeed I mentioned the concept of using um BP they transmit on their pilot tones with BPSK. They flip

the phase around. Uh and since you know the phase is either zero or 180 degrees and you know what the magnitude is supposed to be, you can use that kind of as a pilot tone, right? Um you can use

that as a as a fine grained pilot tone.

>> Yes.

Yes.

>> You ever get into like Hilbert transformations or anything like that?

>> I have no idea what a Hilbert whatever transformation is.

>> Um this is the part where where like you where real radio experts go, "Oh yes, I know what that is." And I go, I spent uh many many years slowly accreing these

data in my brain from Wikipedia.

Um you can do it too, but you will not know what a Hilbert Fine transformation is at the end. Yes.

resources on the website >> other resources.

Um, the DVBT spec I was going to say is surprisingly readable, but it isn't really. Um but it is written

really. Um but it is written um like it it's better it okay it's better than a 3GPP spec um which is not

saying much like it's better than a a cell radio spec um and it gives an example of a real system by which they

do this and it suffers from a good amount of like latte right on on the page. Um, but it does ex

like that is a paper that exists. Um, so

I don't know the I would maybe say like go look at GNU Radio Code, but I'm not sure.

My my my best guess I'm getting nods of no in the audience, which so I I don't really know. If you find if you find

really know. If you find if you find great resources, tell you what, send me an email and I'll add them to that page.

Okay, I think I'm I'm going to declare since um I with or without um the alternative Josh here, uh I am declaring that we have hit the hour and two minute

mark and so we are done. But you are free to find me later. Thank you.

Loading...

Loading video analysis...