1 00:00:00,000 --> 00:00:04,900 If you know what's good for you, now's the time you be quiet, because this man is literally 2 00:00:04,900 --> 00:00:09,120 invited just so that I can watch him, and he's awesome, so we will throw you out. 3 00:00:15,100 --> 00:00:19,940 All right, ladies and gentlemen, I would like to present Quadling, who normally yells. 4 00:00:20,120 --> 00:00:22,840 No, I would like to present Bonlint Sieber. 5 00:00:23,160 --> 00:00:27,660 He is literally invited every year so that all of us running the contest can stare in 6 00:00:27,660 --> 00:00:31,160 his direction with our mouths open, wondering what the hell just happened. 7 00:00:31,760 --> 00:00:36,480 His bio is kind of lame, software engineer by training, Bonlint is a perpetual hacker, 8 00:00:36,920 --> 00:00:41,840 director of vulnerability research at Bastille Networks, and the guy behind Spench.net. 9 00:00:42,120 --> 00:00:46,820 What you should really know is while most of you were discussing burner phones on Twitter, 10 00:00:47,100 --> 00:00:51,880 this man came into our village, I think it was three years ago, three years ago, and 11 00:00:51,880 --> 00:00:55,240 he said, I need to redirect a space probe real quick. 12 00:00:55,340 --> 00:00:57,280 Can anybody loan me a cell card? 13 00:00:57,660 --> 00:01:02,680 And he borrowed a cell card from a random stranger and beamed commands to something 14 00:01:02,680 --> 00:01:05,580 flying in space to try to redirect it around the planet. 15 00:01:06,700 --> 00:01:13,100 So, yeah, if you all are scared of DEF CON and he's like redirecting space, seriously, 16 00:01:13,440 --> 00:01:15,660 sit down, have a good old time. 17 00:01:15,840 --> 00:01:21,660 I would like to, with the proudest feeling in my chest, introduce Bonlint Sieber and 18 00:01:21,660 --> 00:01:26,380 hacking some more of the wireless world, an extension of his rant of hacking the wireless 19 00:01:26,380 --> 00:01:27,280 world last year. 20 00:01:27,660 --> 00:01:31,760 This will be cut off when he damn well feels like it, or sometime late after lunch. 21 00:01:31,980 --> 00:01:36,540 So, sit down and make yourselves at home, meet your neighbors, and thank you, Bonlint. 22 00:01:42,820 --> 00:01:45,160 Thank you for that very kind introduction, Zero. 23 00:01:45,900 --> 00:01:51,760 And thank you all for coming to the wireless village over some of the other excellent talks 24 00:01:51,760 --> 00:01:53,340 that are going on at the moment at DEF CON. 25 00:01:54,960 --> 00:01:57,640 We just heard an interesting story from two DEF CONs. 26 00:01:57,660 --> 00:01:59,160 Is my voice level all right? 27 00:01:59,220 --> 00:01:59,720 Can you hear me okay? 28 00:01:59,820 --> 00:02:00,580 Up the back? 29 00:02:00,640 --> 00:02:00,940 Yeah? 30 00:02:01,020 --> 00:02:01,440 Thumbs up? 31 00:02:01,520 --> 00:02:01,820 Great. 32 00:02:02,700 --> 00:02:03,440 Where's Anders? 33 00:02:03,820 --> 00:02:04,600 Anders, where are you sitting? 34 00:02:04,820 --> 00:02:09,720 Anders is the man that let me tether to his phone so that I could get on the internet 35 00:02:09,720 --> 00:02:15,600 and talk to the computer at Arecibo, at the Arecibo telescope, to beam commands to IC3. 36 00:02:15,800 --> 00:02:20,740 So, thank you very much, Anders, once again, for trusting me with your internet connection. 37 00:02:23,000 --> 00:02:25,400 So, my name's Bonlint, and I'm... 38 00:02:26,900 --> 00:02:27,300 I'm... 39 00:02:27,300 --> 00:02:33,720 I work with the vulnerability research team at Bastille, and I'm going to talk to you today about three things. 40 00:02:33,920 --> 00:02:39,620 Some of them I started introducing last year, and I'd like to show you some of the additional work that I've done on them since then. 41 00:02:40,100 --> 00:02:41,740 One of them briefly will be Inmarsat. 42 00:02:42,940 --> 00:02:47,060 Another one is implementing something that we saw at Cyber Spectrum. 43 00:02:47,260 --> 00:02:53,260 Previously, Cyber Spectrum is a meetup that we run for people interested in sharing projects on software-defined radio, 44 00:02:53,440 --> 00:02:54,940 in the Bay Area in particular. 45 00:02:55,240 --> 00:02:57,160 And then also some new work that I've done. 46 00:02:57,300 --> 00:03:06,220 So, I'm going to show you some of the things that I've done with Radar, and hopefully, my aim today is that everybody understands a little bit more about how Radar processing actually works. 47 00:03:06,500 --> 00:03:09,820 And so, if you have any questions at any point, please feel free to ask. 48 00:03:10,280 --> 00:03:15,280 I will leave you satisfied if I see nodding heads and smiles, as opposed to quizzical looks. 49 00:03:15,360 --> 00:03:17,300 So, let me know how that goes. 50 00:03:18,140 --> 00:03:24,100 And again, most of this time with GNU Radio, and I'll show you some flow graphs and the general concepts behind them. 51 00:03:24,900 --> 00:03:27,120 So, the first item is going to be Inmarsat. 52 00:03:27,300 --> 00:03:31,900 And later on, I'll also be encouraging audience participation. 53 00:03:32,520 --> 00:03:34,120 I've got some live demos here. 54 00:03:34,980 --> 00:03:38,620 So, that hopefully will go well with the gods willing. 55 00:03:38,840 --> 00:03:39,980 So, just a very quick recap. 56 00:03:40,740 --> 00:03:45,520 If you're interested in more of the details, you can visit the last year's talk. 57 00:03:45,840 --> 00:03:47,900 The Inmarsat is a constellation of birds. 58 00:03:48,100 --> 00:03:57,220 And they offer a number of services, one of which is Inmarsat Aero, which is used by airplanes that travel, you know, elsewhere. 59 00:03:57,300 --> 00:04:03,800 Not over terrestrial coverage of normal VHF ground networks, but if they're particularly going over the ocean. 60 00:04:04,840 --> 00:04:07,320 And Inmarsat is a bent pipe design. 61 00:04:07,910 --> 00:04:12,820 So, transmissions will be sent from aircraft to ground stations and back. 62 00:04:13,380 --> 00:04:19,240 It's actually pretty easy to listen to this over these, on the C-band downlink. 63 00:04:19,800 --> 00:04:24,900 You can just get a dish, make your own feed, use an LNA and a bandpass filter. 64 00:04:25,100 --> 00:04:27,280 And then you're able to decode at least one of these. 65 00:04:27,300 --> 00:04:33,820 The P-channel, which is what I looked at to begin with, to decode basically ACAR's star messages going over this link. 66 00:04:34,240 --> 00:04:37,020 And I have to give credit here to my friend Ian Buckley. 67 00:04:37,160 --> 00:04:40,440 This is a setup that he made so that we could receive these signals. 68 00:04:41,640 --> 00:04:43,360 So, again, I won't go through the detail. 69 00:04:43,480 --> 00:04:44,260 I covered it last time. 70 00:04:44,460 --> 00:04:46,200 But you can start demodulating it. 71 00:04:46,260 --> 00:04:48,440 It's a simple GMSK signal. 72 00:04:48,700 --> 00:04:55,740 And then you can work through the process to actually turn what appears to be noise into intelligible data. 73 00:04:55,940 --> 00:04:57,280 So, the first step would be... 74 00:04:57,300 --> 00:05:02,400 And now, I want you to remember the idea of an interleaver or deinterleaver. 75 00:05:02,500 --> 00:05:05,200 So, the idea is that you read data into the rows. 76 00:05:05,520 --> 00:05:10,040 And then once the memory cell is full, then you read it out from the columns. 77 00:05:10,300 --> 00:05:16,140 And the purpose of this for the transmitter is to redistribute the information bits over time. 78 00:05:16,360 --> 00:05:22,940 So, if you have a burst noise source, then it won't knock out all the bits in a single packet. 79 00:05:23,180 --> 00:05:26,540 Those missed bits will be distributed over time through many packets. 80 00:05:26,540 --> 00:05:35,500 And then you can use convolutional decoding or forward error correction to fix those individual erroneous bits over time. 81 00:05:35,640 --> 00:05:38,480 And therefore, you get a much better chance of recovering any corrupted data. 82 00:05:38,760 --> 00:05:44,780 Once you do the forward error correction, some descrambling, and then things look much more structured. 83 00:05:45,100 --> 00:05:48,580 And then on the P channel here, this was a coordination channel. 84 00:05:48,800 --> 00:05:54,580 And some of the messages are actually user messages that contain text information. 85 00:05:54,980 --> 00:05:56,180 And if you're a... 86 00:05:56,540 --> 00:06:02,660 If you're a plane spotter and you like to listen to ACARS, this is essentially the equivalent, but coming down from a geostationary satellite. 87 00:06:03,360 --> 00:06:11,640 And it's interesting because there's a slightly different flavor to them in terms of navigating and sending directions to planes which are, you know, anywhere above the Pacific, for example. 88 00:06:12,020 --> 00:06:18,000 So, just some examples to give you a feel, you know, random human-readable text messages to the crew. 89 00:06:18,200 --> 00:06:22,920 You've got weather reports in standard notation there. 90 00:06:23,840 --> 00:06:26,520 A different form of weather report, commonly used. 91 00:06:26,540 --> 00:06:27,080 They're used in aviation. 92 00:06:27,760 --> 00:06:44,040 You've got AFN, ADSC, CPDLC, which are different sorts of encodings for, you know, messages that pertain to routing and traffic flow and various other sorts of things. 93 00:06:44,900 --> 00:06:47,180 And then this is a good one that I saw. 94 00:06:47,380 --> 00:06:48,740 Remember the Galaxy Note 7? 95 00:06:50,240 --> 00:06:54,700 They would remind everybody over the Inmarsat error P channel as well. 96 00:06:54,700 --> 00:07:01,280 And then a lot of these messages are also printed out on the cockpit printer or sent to the captain. 97 00:07:02,680 --> 00:07:06,920 So, you know, informing them about preferred routes for their flight plan. 98 00:07:07,680 --> 00:07:12,380 This one is a custom message saying that there's really bad weather somewhere. 99 00:07:13,140 --> 00:07:22,160 And this one is interesting because it's actually a step-by-step to, I think, reset one of the displays or subsystems on the aircraft or in the cockpit. 100 00:07:23,080 --> 00:07:24,160 This one actually... 101 00:07:24,700 --> 00:07:26,220 It would be a message that you print out. 102 00:07:26,440 --> 00:07:31,700 And so just before they close the doors, you know, they print out the manifest and then the pilot, the captain signs it. 103 00:07:31,920 --> 00:07:38,240 And so they would, I'm guessing, print this out there and then the captain would sign it on the line there. 104 00:07:39,240 --> 00:07:40,820 Here you'll recognize these numbers. 105 00:07:40,860 --> 00:07:43,460 Who has a guess as to what these codes are? 106 00:07:47,420 --> 00:07:47,820 AKE91536QF. 107 00:07:48,180 --> 00:07:48,800 Any guesses? 108 00:07:50,540 --> 00:07:51,960 I don't think they're TAL numbers. 109 00:07:52,040 --> 00:07:52,800 I think they're something else. 110 00:07:54,880 --> 00:07:55,760 VOR waypoints? 111 00:07:55,900 --> 00:07:57,200 No, not VOR waypoints. 112 00:07:57,340 --> 00:08:03,640 And I might be wrong here, but I think that they're the codes for the luggage cargo containers. 113 00:08:03,940 --> 00:08:05,700 Because if you look on the side, they're all uniquely coded. 114 00:08:05,940 --> 00:08:10,700 So I think these are some of the containers that they have in the belly of the plane. 115 00:08:12,260 --> 00:08:13,240 Here there's an alert. 116 00:08:13,320 --> 00:08:16,620 The gross takeoff weight exceeds some threshold. 117 00:08:18,020 --> 00:08:20,980 You know, again, routing information, reduce the delay. 118 00:08:21,820 --> 00:08:22,800 And this is interesting. 119 00:08:22,960 --> 00:08:24,620 I called Gateway and had them bring the fuel up. 120 00:08:24,700 --> 00:08:28,720 And they brought it up to some value to take into consideration the point through fuel burn increase. 121 00:08:28,880 --> 00:08:31,520 So they're modeling different aspects of the flight. 122 00:08:33,640 --> 00:08:37,960 This is actually data regarding all sorts of different subsystems. 123 00:08:37,960 --> 00:08:45,140 So the auto brake and, you know, various other telemetry that's sent back to airline operations and manufacturers so they can keep track of the equipment. 124 00:08:45,320 --> 00:08:49,720 Because a lot of the stuff there, like the engines too, are all fly by the hour. 125 00:08:49,880 --> 00:08:54,040 So that's all sent back to Rolls Royce or other manufacturers. 126 00:08:54,700 --> 00:09:00,540 And then, you know, various things that are left to the discretion of the captain as to, you know, takeoff or what have you. 127 00:09:01,120 --> 00:09:02,340 So that's all well and good. 128 00:09:02,880 --> 00:09:07,340 And I also spoke previously about decoding all eight channels at the same time. 129 00:09:07,880 --> 00:09:12,680 And once you do that, then you can actually amass quite a lot of information. 130 00:09:12,940 --> 00:09:14,900 And you might not want to read all that stuff. 131 00:09:15,140 --> 00:09:23,320 But maybe you want to actually have a look at some other stuff, which is what was just pointed out here, the waypoints that are part of the flight plans. 132 00:09:23,480 --> 00:09:24,620 Because if you look at this. 133 00:09:24,620 --> 00:09:26,040 You actually see there. 134 00:09:26,100 --> 00:09:28,760 There are north and west coordinates, latitude, longitude. 135 00:09:29,020 --> 00:09:33,580 And then there are these five letter character combinations. 136 00:09:34,100 --> 00:09:37,200 Anybody have any ideas what these five character codes are? 137 00:09:42,000 --> 00:09:42,780 That's right. 138 00:09:42,900 --> 00:09:50,260 They are navigational waypoints on aviation navigation charts that are established around the world. 139 00:09:50,440 --> 00:09:54,460 So they often don't actually send the raw latitude, longitude coordinates. 140 00:09:54,460 --> 00:09:58,280 They just summarize it with these five letter codes because that's well defined. 141 00:09:58,600 --> 00:10:02,780 And so what you can do there is parse that and plot that. 142 00:10:03,040 --> 00:10:08,960 So at any point when the blue arrow appears, I'm going to show you something outside the presentation. 143 00:10:09,420 --> 00:10:16,560 If for some reason I get caught up and forget about the blue arrow and it's there and I haven't shown you whatever I intended to, yell at me and I'll switch. 144 00:10:18,540 --> 00:10:21,580 So you can amass all that data and then parse it. 145 00:10:21,580 --> 00:10:25,000 And then get something like this. 146 00:10:27,080 --> 00:10:32,240 So I parse all that information and then you can convert it into KML for displaying Google Earth. 147 00:10:33,180 --> 00:10:38,940 And the satellite that I was listening to is actually servicing the Pacific Ocean area. 148 00:10:39,200 --> 00:10:45,440 And so you would expect that most of the information flowing through will be regarding planes flying over the Pacific. 149 00:10:45,700 --> 00:10:49,460 And so if you zoom out, you can kind of almost get a feel for the satellite footprint. 150 00:10:49,860 --> 00:10:51,560 And these are all the flight plans. 151 00:10:51,580 --> 00:10:58,620 These are all the flight plans that have been sent to all of the aircraft flying through. 152 00:10:58,740 --> 00:11:00,860 So it's particularly busy over Japan, say. 153 00:11:01,000 --> 00:11:06,940 And if you zoom in a little bit more, then you get all the five character codes coming up. 154 00:11:07,100 --> 00:11:13,720 And you can see by here, I guess this is the registration number for the aircraft. 155 00:11:14,180 --> 00:11:19,900 And so you can see what flight plan that was actually taking. 156 00:11:19,900 --> 00:11:25,900 I think the red dots are the dots that are actually sent with the raw latitude and longitude coordinates. 157 00:11:26,780 --> 00:11:28,040 And you can parse that out. 158 00:11:28,100 --> 00:11:30,280 So just to show you what that looks like in the raw. 159 00:11:37,680 --> 00:11:44,200 The output of the GNU Radio Decoder, it just dumps all this raw information. 160 00:11:44,880 --> 00:11:47,860 And then you have the frequency here because there are eight channels. 161 00:11:47,860 --> 00:11:55,180 And so if you just parse that a little bit, you can get those sorts of excerpts that I showed you before. 162 00:11:55,460 --> 00:11:58,720 And what I did was I just Googled these five letter codes. 163 00:11:59,140 --> 00:12:04,960 And then through various matches online, you find various listings for these for different areas. 164 00:12:05,200 --> 00:12:10,260 So for Russian airspace, there was this kind of text listing. 165 00:12:10,440 --> 00:12:12,320 So I just throw that in a Python file. 166 00:12:13,180 --> 00:12:16,540 And then at the bottom, I just have it go through and parse that. 167 00:12:16,620 --> 00:12:17,840 And it builds up a list of things. 168 00:12:17,840 --> 00:12:18,320 It's a list of waypoints. 169 00:12:18,440 --> 00:12:19,440 Same for Hong Kong, Japan. 170 00:12:20,240 --> 00:12:23,360 Taiwan actually had a JavaScript listing. 171 00:12:23,700 --> 00:12:27,680 So I did a find and replace to make it parsable in Python. 172 00:12:27,880 --> 00:12:32,960 And then build sort of a self-reflexive object to parse all that. 173 00:12:33,280 --> 00:12:37,200 And then the waypoints file just includes all the points. 174 00:12:37,420 --> 00:12:46,600 And then the parser takes the output of this file and then looks for all those coordinates in five-digit, five-character waypoints. 175 00:12:46,600 --> 00:12:47,980 And then just spits out the KML. 176 00:12:48,500 --> 00:12:53,240 So it's kind of interesting to see the system actually working and visualized that way. 177 00:12:54,260 --> 00:12:56,480 So that was the update on InMars. 178 00:12:56,500 --> 00:13:00,240 So any questions about that before I move on to the next thing? 179 00:13:01,140 --> 00:13:01,660 No? 180 00:13:03,360 --> 00:13:03,880 Okay. 181 00:13:07,680 --> 00:13:13,240 So the next thing is actually also aviation related. 182 00:13:14,800 --> 00:13:15,600 It's an implementation. 183 00:13:15,600 --> 00:13:20,280 Implementation of what's been termed as an unselective AM receiver. 184 00:13:20,720 --> 00:13:28,000 And I have to give full credit to Kevin Reed who at Cyberspectrum number 15 demonstrated this with his shiny SDR platform. 185 00:13:28,720 --> 00:13:39,920 Which is a really neat web-based SDR receiver so that you can use it remotely from the actual hardware. 186 00:13:40,460 --> 00:13:44,400 And what he did and he's documented this on his blog there which I encourage you to have a look at. 187 00:13:44,400 --> 00:13:51,800 Is do a really nifty sort of reversal of the common AM demodulator concept. 188 00:13:52,620 --> 00:13:54,680 So switchborg on Twitter. 189 00:13:55,600 --> 00:14:00,340 So with a normal AM demodulator if you want to listen to aircraft. 190 00:14:00,560 --> 00:14:04,300 Listen to interactions between pilots and the tower. 191 00:14:06,320 --> 00:14:08,700 You know for takeoff or approach taxiing. 192 00:14:08,700 --> 00:14:10,000 If you're a bit of a plane spotter. 193 00:14:10,100 --> 00:14:11,640 Then usually you have a receiver. 194 00:14:12,100 --> 00:14:13,620 So a software defined radio. 195 00:14:13,620 --> 00:14:18,240 And with that thick arrow there that's receiving a very large chunk of the spectrum. 196 00:14:18,420 --> 00:14:21,620 So say you might be receiving I don't know 10 megahertz worth. 197 00:14:21,820 --> 00:14:25,840 So you can get a nice big chunk of the arrow spectrum and see all the little transmissions there. 198 00:14:26,440 --> 00:14:29,060 And then you select a channel to listen to. 199 00:14:29,620 --> 00:14:32,600 And so that gets down sampled and filtered. 200 00:14:34,440 --> 00:14:36,940 And then you go complex to mag. 201 00:14:38,160 --> 00:14:40,120 Actually that should be a thin arrow there. 202 00:14:40,180 --> 00:14:40,860 I didn't fix that. 203 00:14:42,140 --> 00:14:43,500 And then what happens is. 204 00:14:43,620 --> 00:14:45,500 Once you do the AMD mod. 205 00:14:45,620 --> 00:14:49,700 Which is really this step here of complex to magnitude. 206 00:14:50,680 --> 00:14:52,640 Then you output that to your speaker. 207 00:14:52,700 --> 00:14:53,660 And you hear the audio. 208 00:14:54,100 --> 00:14:55,340 And what Kevin Reed did. 209 00:14:55,640 --> 00:14:57,740 Was that he swapped these two here. 210 00:14:58,160 --> 00:15:06,320 So what he did was he swapped the Dan sampling and filtering. 211 00:15:06,720 --> 00:15:08,140 With the complex to mag. 212 00:15:08,980 --> 00:15:10,480 And so what that means is. 213 00:15:10,620 --> 00:15:12,600 You essentially take the magnitude. 214 00:15:12,600 --> 00:15:15,320 Of your entire AM spectrum that you're receiving. 215 00:15:15,420 --> 00:15:16,400 Like 10 megahertz worth. 216 00:15:16,900 --> 00:15:21,340 And then you down sample and filter the entire thing. 217 00:15:21,520 --> 00:15:25,340 So you never actually select a channel to down sample to. 218 00:15:25,380 --> 00:15:26,980 You demodulate the entire band. 219 00:15:27,320 --> 00:15:28,580 But because it's AM. 220 00:15:28,920 --> 00:15:30,380 The side effect is. 221 00:15:30,520 --> 00:15:34,520 You end up hearing the strongest transmitter in the band. 222 00:15:34,780 --> 00:15:35,720 Which is really neat. 223 00:15:37,700 --> 00:15:38,620 Thanks for that. 224 00:15:39,720 --> 00:15:40,320 . 225 00:15:41,800 --> 00:15:42,400 . 226 00:15:42,400 --> 00:15:42,580 . 227 00:15:42,580 --> 00:15:43,300 . 228 00:15:44,120 --> 00:15:44,560 . 229 00:15:44,560 --> 00:15:44,800 Thanks, Ryan. 230 00:15:45,280 --> 00:15:45,880 There we go. 231 00:15:46,440 --> 00:15:48,420 So the idea here is that. 232 00:15:49,400 --> 00:15:51,360 You end up hearing the strongest transmission. 233 00:15:51,560 --> 00:15:52,120 And this works. 234 00:15:52,380 --> 00:15:53,560 Because it's AM, right? 235 00:15:53,680 --> 00:15:54,620 You're demodulating AM. 236 00:15:54,740 --> 00:15:57,360 Because you're simply looking at the power level of your carrier wave. 237 00:15:57,620 --> 00:16:00,320 And if you treat the entire spectrum as your carrier wave. 238 00:16:00,680 --> 00:16:04,120 Then the strongest signal there will cause the largest ripples. 239 00:16:04,240 --> 00:16:05,420 And that's what you'll end up hearing. 240 00:16:07,540 --> 00:16:09,180 So he swapped them like this. 241 00:16:09,360 --> 00:16:11,580 And this is actually really easy to implement. 242 00:16:11,580 --> 00:16:19,660 to implement he did something that was really clever which was take the receive output the 243 00:16:19,660 --> 00:16:27,320 raw complex base band and then apply a slope filter to the spectrum so one path you take out 244 00:16:27,320 --> 00:16:33,700 and you say i want to have the left hand side of the spectrum louder than the right and the other 245 00:16:33,700 --> 00:16:38,900 one you want the right side of the spectrum to be louder than the left and then once you've shaped 246 00:16:38,900 --> 00:16:44,820 your spectrum like that you do the same process so you you do complex to mag or amd modulate the 247 00:16:44,820 --> 00:16:53,920 entire entire spectrum down sample and then you play that into the left speaker and the right 248 00:16:53,920 --> 00:16:59,220 speaker respectively so what ends up happening is stuff that's on the left hand side of the 249 00:16:59,220 --> 00:17:03,140 spectrum you end up hearing out of the left speaker and stuff that's on the right side of 250 00:17:03,140 --> 00:17:07,460 the spectrum you hear out of the rights because so it spatializes the entire am spectrum for you 251 00:17:08,080 --> 00:17:08,560 and 252 00:17:08,900 --> 00:17:13,600 if you're wearing headphones it sounds really cool i've got some speakers here so in a moment i might 253 00:17:13,600 --> 00:17:17,340 might ask for absolute quiet because they're not very loud and they need to be stereo 254 00:17:18,020 --> 00:17:22,400 but i'm going to show you a video here and then i'll show you it interactively 255 00:17:23,080 --> 00:17:24,640 now just before i show you the video 256 00:17:26,980 --> 00:17:31,000 i'll just explain what's going on here so this is the flow graph and this is the whole spectrum 257 00:17:31,680 --> 00:17:36,180 and this is a representation of the frequency response of those 258 00:17:37,080 --> 00:17:38,820 of those shaping filters so 259 00:17:38,900 --> 00:17:43,820 this is not this is the raw baseband that's coming in and this is this is that that shaping and so 260 00:17:43,820 --> 00:17:48,880 there's a blue one and a right and a green one that's the left and the right channel now the 261 00:17:48,880 --> 00:17:54,100 reason why it has these notches in there and you see those notches reflected on the baseband 262 00:17:54,100 --> 00:17:59,960 is because often you you've got birdies and or spurs which are either internal to the receiver 263 00:17:59,960 --> 00:18:04,580 or from from you know man-made noise or from vors which are always transmitting something 264 00:18:05,360 --> 00:18:08,760 or just you know other things that you don't want to listen to and 265 00:18:08,900 --> 00:18:13,100 sometimes they can be powerful and they will drown out legitimate transmissions that you want to listen to 266 00:18:13,100 --> 00:18:19,260 and so i thought it would be cool if you could interactively notch out those frequencies that you didn't want to listen to 267 00:18:19,260 --> 00:18:25,540 and so what this does is and i'll show you you can click on the baseband spectrum on the things that you want to notch out 268 00:18:25,540 --> 00:18:32,020 it'll recompute the filter with those notches included and then apply that to the left and right slopes 269 00:18:32,680 --> 00:18:38,280 and it does it globally so you can change the frequency of your sdr and then it'll actually 270 00:18:38,900 --> 00:18:43,260 compute everything that's in your passband and always keep the stuff out that you don't want to listen to 271 00:18:43,260 --> 00:18:51,100 so if if i could if i have as quiet as you can i'll turn the volume up here so you can hopefully hear it 272 00:18:53,220 --> 00:18:55,040 and so i'm just gonna oh there you go 273 00:18:59,680 --> 00:19:01,980 so notice i clicked on that and the tone went away 274 00:19:07,380 --> 00:19:08,880 i don't know if you can get the sound out of it 275 00:19:08,900 --> 00:19:10,000 i don't know if you can get the stereo effect hopefully you can 276 00:19:12,760 --> 00:19:15,560 so see i clicked there it applied the notch and then 277 00:19:18,080 --> 00:19:25,900 recomputed that and i'm changing the baseband frequency and so it's it's shifting all the notches along to keep them on on the right frequency 278 00:19:30,920 --> 00:19:35,980 and so i moved to to where there's eight cars and it's very loud and powerful you don't want to listen to it so i notch that out 279 00:19:36,520 --> 00:19:37,500 notch that out too 280 00:19:50,320 --> 00:19:54,320 so it's cool right because i'm not actually clicking on the channel that i want to listen to 281 00:19:54,320 --> 00:19:57,380 it just all comes in and you hear the the most powerful thing 282 00:20:02,040 --> 00:20:05,700 and then what's nice is that you can click on remove if you want to remove the notch 283 00:20:05,700 --> 00:20:08,800 and then click on the the the bass bands 284 00:20:08,900 --> 00:20:14,720 and then it'll actually remove that notch recompute the filter and then you get you know in this case the unwanted tone back 285 00:20:16,540 --> 00:20:23,080 so so that's that now the thing is i mentioned that that slope filter and it wasn't immediately 286 00:20:23,080 --> 00:20:28,880 obvious to me how you you generate that and it turns out it's actually really really easy 287 00:20:28,880 --> 00:20:34,700 this is done in a single line of python in a grc block that i'll show you basically you use numpy 288 00:20:35,280 --> 00:20:38,720 and use linspace to create a ramp between zero and one 289 00:20:38,900 --> 00:21:07,280 over the number of uh taps that you want you shift the do an fft shift so it basically rearranges you know one half and the other half back to back you do an inverse for your transform and then you shift it back so what you've done is essentially you say i want this frequency response and then you take the inverse fft and then it gives you the time domain taps that you can apply in a normal fir filter and that that's all it is it's it's really basic 290 00:21:08,900 --> 00:21:12,600 so i've got a blue arrow which means show you the actual thing 291 00:21:14,040 --> 00:21:19,900 now any any questions so far who actually listens to the aero band and listens to 292 00:21:20,440 --> 00:21:25,000 cockpit and tower and all that kind of stuff a few of you all right was there a question over there 293 00:21:29,200 --> 00:21:32,600 just curious with the interactive notch you could do equalization 294 00:21:32,600 --> 00:21:38,140 to null out tones that are continuous but is that too computationally intensive across that 295 00:21:38,900 --> 00:21:45,080 light spectrum so um that's a very good question so i don't have to repeat the question because 296 00:21:45,080 --> 00:21:54,180 he's spoken in the mic usually um yeah so if you remember on that line when it was using a linspace 297 00:21:54,180 --> 00:22:00,660 and have the taps count um you can decrease the number of taps if you're using a higher bandwidth 298 00:22:00,660 --> 00:22:05,200 because naturally yeah the larger bandwidth the like this thing works really hard i think i do 6.25 299 00:22:05,700 --> 00:22:08,280 megahertz off of usurp um 300 00:22:08,900 --> 00:22:13,660 and it it makes it work pretty hard and i i chose a higher tap count so that it would look really 301 00:22:13,660 --> 00:22:18,620 good in the frequency response plot but if you if you make that much smaller it looks far more ugly 302 00:22:18,620 --> 00:22:25,380 the response is obviously rippled but it works okay so you can manage it that way uh so let me 303 00:22:25,380 --> 00:22:31,680 find the flow graph here i'm gonna have a resolution problem so let me just transfer this 304 00:22:34,220 --> 00:22:36,220 make the uh thing fit 305 00:22:41,760 --> 00:22:45,720 all right so i'm looking for am unselected and 306 00:22:46,280 --> 00:22:52,200 turn it off so i'm i'm going to just do a live demo or not i've pre-recorded 307 00:22:52,200 --> 00:23:07,820 so that's it's that and it's that so at the moment i've got a single notch in there 308 00:23:08,900 --> 00:23:10,560 and if i take it out 309 00:23:15,900 --> 00:23:19,520 you can you can hear the tone right you don't want that so let's 310 00:23:20,020 --> 00:23:25,000 and if you're watching the console there um i've got this notches.json that contains the 311 00:23:25,000 --> 00:23:34,440 list so if i click this then it'll load the load the notches calculate the a complex um 312 00:23:36,100 --> 00:23:37,160 uh what did i do 313 00:23:37,160 --> 00:23:41,740 uh a complex filter and then rotate it up to the frequency the baseband frequency that i 314 00:23:41,740 --> 00:23:48,800 selected and then apply that here and what's nice is that you can also change the number of taps 315 00:23:49,520 --> 00:23:55,700 so if i made it 13 instead of 512 then obviously it changes the 316 00:23:57,780 --> 00:24:04,940 the look of your frequency response and one other thing um ian my friend ian buckley observed this 317 00:24:04,940 --> 00:24:07,020 that if you actually add a delay 318 00:24:07,160 --> 00:24:11,180 between the left and the right channel especially if you're on headphones that it makes it 319 00:24:11,180 --> 00:24:16,240 it emphasizes the stereo effect even more i don't know whether we'll necessarily be able to tell here 320 00:24:16,760 --> 00:24:18,380 but if we make i think this was like 321 00:24:22,440 --> 00:24:27,720 yeah you'll need to play with this yourself but you can add a delay to emphasize that 322 00:24:27,720 --> 00:24:32,240 and you can you know mute the left with the right and if you look at the um 323 00:24:33,900 --> 00:24:35,280 the actual response 324 00:24:36,500 --> 00:24:43,480 of um each the output of each filter you can see the baseband uh plus the filter showing that 325 00:24:43,480 --> 00:24:48,720 characteristic you know roll off to one side and the other one and the green lines that are appearing 326 00:24:48,720 --> 00:24:53,700 are just basically selecting the the signal the fft bin that has the strongest energy unit so that 327 00:24:53,700 --> 00:24:58,620 that that's most likely the the audio that you're hearing in that frequency which is being updated at 328 00:24:58,620 --> 00:25:05,260 the bottom there max frequency right then left so again this is just the implementation as well as the 329 00:25:05,260 --> 00:25:10,600 The original idea was Kevin's, but it's, you know, I thought it might be fun to implement 330 00:25:10,600 --> 00:25:11,200 in Gudu Radio. 331 00:25:12,260 --> 00:25:14,440 I can take you through the flow graph very quickly. 332 00:25:15,780 --> 00:25:22,180 I've got a file source here, and then you get your complex baseband output, and as I 333 00:25:22,180 --> 00:25:30,620 mentioned, you, oops, you take one line up to one filter that contains the right channel 334 00:25:30,620 --> 00:25:35,360 taps, and then you take the baseband to the other filter that has the left channel taps, 335 00:25:35,560 --> 00:25:41,500 and what's nice, actually, is that to compute the, you only need to compute one set of taps 336 00:25:41,500 --> 00:25:48,100 because the other channel is just the same taps, but in reverse, which is handy. 337 00:25:49,100 --> 00:25:54,240 And then once you have done the filtering, you immediately do the complex to mag, which 338 00:25:54,240 --> 00:25:59,900 is the AMD mod step, and then you resample it to match the sample. 339 00:26:00,620 --> 00:26:01,660 The sample rate of your sound card. 340 00:26:02,020 --> 00:26:06,500 I've got a DC block in there as well to remove any DC from the AMD modulated signal. 341 00:26:06,720 --> 00:26:11,880 I've got an AGC so that the audio level that comes up the speaker is always more or less 342 00:26:12,660 --> 00:26:13,060 normalized. 343 00:26:13,860 --> 00:26:19,820 A low pass filter so that you, you know, AM is quite narrow band here, so just to focus 344 00:26:19,820 --> 00:26:26,580 on that one channel at the audio pass band, and then it just goes into one channel of 345 00:26:26,580 --> 00:26:28,280 the audio sync, and that's all there is to it. 346 00:26:30,620 --> 00:26:33,340 Additional complexity happens more with that, the interactive thing. 347 00:26:35,680 --> 00:26:40,480 So, the graph there is brought about by, what have we got here? 348 00:26:42,540 --> 00:26:46,920 There's this sort of real-time graph in that plot lib wrapper I made, and so using an 349 00:26:46,920 --> 00:26:51,440 any code block, you just implement the graph like that, and it will cause it to display. 350 00:26:52,260 --> 00:26:59,920 And then every time, every time here, the variable dependencies, 351 00:27:00,620 --> 00:27:01,960 taps left or taps right changes. 352 00:27:02,080 --> 00:27:05,900 This line means create a callback for if those variables change. 353 00:27:06,160 --> 00:27:13,500 Then it does this Python, actually this is multiple lines, but separated by semicolons. 354 00:27:13,700 --> 00:27:21,260 So the first part of it is use SciPy to calculate the frequency response of the left taps, and 355 00:27:21,260 --> 00:27:26,360 then calculate the frequency response of the right taps, and then set the data on the real-time 356 00:27:26,360 --> 00:27:29,520 graph with the FFT shifted. 357 00:27:30,620 --> 00:27:35,760 Log 10 magnitude of the frequency response. 358 00:27:36,220 --> 00:27:39,700 And so, that line, whenever the taps change, will update the graph. 359 00:27:40,300 --> 00:27:48,100 And then in terms of actually clicking on stuff, there's a callback mechanism here. 360 00:27:48,920 --> 00:27:57,660 You know, with these FFT GUI syncs, you can specify a variable to take the frequency that 361 00:27:57,660 --> 00:27:58,180 you clicked on. 362 00:27:59,220 --> 00:28:00,600 So, when that variable changes. 363 00:28:00,600 --> 00:28:08,120 When it changes over here, then I have a little bit of Python that, it's a class, and it has 364 00:28:08,120 --> 00:28:11,140 this add notch function in it, and so it takes the click frequency. 365 00:28:11,480 --> 00:28:15,880 And if remove is disabled, then it adds the notch. 366 00:28:16,080 --> 00:28:19,600 And if remove is enabled, then it removes the notch at that frequency. 367 00:28:20,060 --> 00:28:24,520 And so, there's just a little bit of Python that manages the global database of values. 368 00:28:25,140 --> 00:28:30,580 And once that happens, I think it's, it's done. 369 00:28:30,580 --> 00:28:30,840 It's here. 370 00:28:31,060 --> 00:28:39,280 So, the tap generator class is initialized here, and it basically takes the initial 371 00:28:39,880 --> 00:28:45,820 set of taps, which is just that initial, you know, left and right slope. 372 00:28:46,080 --> 00:28:54,180 And then self.taps is, I think, a reference to the actual taps that the generator will 373 00:28:54,180 --> 00:28:54,740 update. 374 00:28:54,920 --> 00:28:59,240 So, the generator will generate new taps and then call a callback registered within GRC 375 00:28:59,240 --> 00:29:00,060 to update the taps. 376 00:29:00,580 --> 00:29:03,360 And then it, you know, will update in the MFT filter and update on the graph. 377 00:29:04,600 --> 00:29:05,680 And that's it, really. 378 00:29:10,180 --> 00:29:13,460 So, conceptually at least, not, you know, it's pretty elegant. 379 00:29:13,680 --> 00:29:18,280 And again, that's, props to Kevin for figuring that out. 380 00:29:18,480 --> 00:29:21,340 Any questions on any of that so far? 381 00:29:22,340 --> 00:29:23,640 Does it, okay. 382 00:29:29,660 --> 00:29:30,220 All right. 383 00:29:30,580 --> 00:29:37,620 So, next on the agenda, and this is the third and final part, is radar, and particularly 384 00:29:37,620 --> 00:29:38,540 FMCW radar. 385 00:29:38,840 --> 00:29:43,380 I spoke about, a little bit about this last year, but I'd like to show you some more and 386 00:29:43,380 --> 00:29:45,000 explain some more concepts to you as well. 387 00:29:46,240 --> 00:29:50,940 And to do a bit of a recap, who's seen these primary surveillance radars at airports when 388 00:29:50,940 --> 00:29:51,240 you fly? 389 00:29:51,400 --> 00:29:52,480 You know, you see them rotating there? 390 00:29:52,900 --> 00:29:56,480 This is a basic kind of CW radar. 391 00:29:57,460 --> 00:30:00,560 And if you watch here, as it rotates, I'm, I'm going to show you this. 392 00:30:00,580 --> 00:30:02,900 I'm sitting on a hill with a usurp on the frequency. 393 00:30:03,360 --> 00:30:07,720 And on the left-hand side, it's plotting the magnitude of the signal received. 394 00:30:08,020 --> 00:30:16,000 And you can see that it's triggering, play it again, it's triggering on the initial transmission 395 00:30:16,000 --> 00:30:16,700 from the radar. 396 00:30:16,820 --> 00:30:20,580 And the radar then switches to receive mode to listen to any echoes that are coming back 397 00:30:20,580 --> 00:30:22,460 from, in this case, airplanes. 398 00:30:23,960 --> 00:30:29,940 And you can see there that there's also some responses coming back very close in time. 399 00:30:30,580 --> 00:30:35,920 So, I'm picking up both the initial burst of the radar and what turns out to be ground 400 00:30:35,920 --> 00:30:37,100 clutter, mainly nearby. 401 00:30:38,340 --> 00:30:41,760 And so, what is a radar return and how does that work? 402 00:30:41,940 --> 00:30:45,040 So, this is an example return down the bottom. 403 00:30:45,420 --> 00:30:49,720 Just complex IQ that's been, again, turned to AM, essentially, the magnitude. 404 00:30:52,060 --> 00:30:55,940 And the way it works is that the radar sends out what's called a bang, which is that initial 405 00:30:55,940 --> 00:30:56,920 short pulse. 406 00:30:57,280 --> 00:30:58,660 And in this case, it's CW. 407 00:30:58,660 --> 00:31:00,560 So, it's just a continuous pulse. 408 00:31:00,560 --> 00:31:02,080 It's a continuous wave at a single frequency. 409 00:31:02,420 --> 00:31:08,600 And then the radar switches to receive very quickly and then it waits for these echoes 410 00:31:08,600 --> 00:31:13,780 to come back because the radio energy will reflect off, for example, aircraft fuselages. 411 00:31:13,940 --> 00:31:18,740 And some of that energy, just a small portion, will come back and be collected by that massive 412 00:31:18,740 --> 00:31:21,020 dish that's rotating on the radar. 413 00:31:21,160 --> 00:31:24,120 And it's so massive because the signals are so weak and so you want a lot of gain at the 414 00:31:24,120 --> 00:31:24,380 antenna. 415 00:31:25,840 --> 00:31:26,360 And... 416 00:31:27,020 --> 00:31:27,380 Nope. 417 00:31:29,720 --> 00:31:30,540 And then... 418 00:31:30,540 --> 00:31:35,180 And then once that period has elapsed, which is the pulse repetition period, then a new 419 00:31:35,180 --> 00:31:36,040 pulse is sent out. 420 00:31:36,200 --> 00:31:38,220 And then the process just continues. 421 00:31:38,500 --> 00:31:41,820 And this can happen hundreds or thousands of times per second. 422 00:31:46,280 --> 00:31:50,420 And there is some radar concepts which are important to get a hold of. 423 00:31:50,460 --> 00:31:52,720 One is that pulse repetition interval of frequency. 424 00:31:52,920 --> 00:31:57,260 So, that's the amount of time or how many times per second that pulse is sent out. 425 00:31:57,340 --> 00:31:58,740 And then the wait period. 426 00:31:59,460 --> 00:32:00,520 I'm going to call it period. 427 00:32:00,540 --> 00:32:02,800 PRF, which is the number of times it happens per second. 428 00:32:05,140 --> 00:32:08,460 And the width of the actual transmitted pulse. 429 00:32:08,640 --> 00:32:10,960 So for how long the radar is actually transmitting. 430 00:32:11,740 --> 00:32:13,800 That's also important. 431 00:32:15,240 --> 00:32:21,180 So the way you actually figure out how far an object is away from you is by looking at 432 00:32:21,180 --> 00:32:26,160 the delay between when the signal went out and then when you had the signal come back. 433 00:32:26,580 --> 00:32:28,200 And this is called the round trip time. 434 00:32:29,380 --> 00:32:30,520 I'll explain that a little bit later. 435 00:32:30,520 --> 00:32:31,800 I'll explain that in a little bit more detail in a moment. 436 00:32:32,060 --> 00:32:38,020 But if you consider these two diagrams here from RF Cafe, these thick black lines here 437 00:32:38,020 --> 00:32:39,840 are when the transmitted pulse was sent out. 438 00:32:40,640 --> 00:32:42,920 And then you have this return here that comes back. 439 00:32:43,320 --> 00:32:47,620 And there's this notion of unambiguous and ambiguous returns in radar. 440 00:32:47,880 --> 00:32:56,240 So in this diagram, the A diagram, you have a return that occurs before the next transmitted 441 00:32:56,240 --> 00:32:56,500 pulse. 442 00:32:57,120 --> 00:33:00,500 And you can then say that this is an unambiguous return. 443 00:33:00,520 --> 00:33:03,320 Because it happens before the next pulse. 444 00:33:04,300 --> 00:33:10,020 In the B diagram, the real range actually occurs after the second pulse. 445 00:33:10,160 --> 00:33:13,380 So that's in excess of that interval there. 446 00:33:13,820 --> 00:33:18,240 And so if you didn't know any better, you would assume that this target is actually 447 00:33:18,240 --> 00:33:19,520 really close to your radar. 448 00:33:19,700 --> 00:33:22,120 Where in actual fact it's even further away. 449 00:33:22,340 --> 00:33:24,220 And so you get that sort of false return. 450 00:33:24,520 --> 00:33:26,740 And this is ambiguous range. 451 00:33:27,100 --> 00:33:30,440 And so what's important to note is that the way you design the parameters. 452 00:33:30,440 --> 00:33:36,000 The parameters of your radar will constrain you and will set the unambiguous range that 453 00:33:36,000 --> 00:33:36,640 you can compute. 454 00:33:37,380 --> 00:33:41,180 And so the easy way to think about it is that the round trip time times the speed of 455 00:33:41,180 --> 00:33:43,600 light divided by two is your virtual range. 456 00:33:43,840 --> 00:33:44,660 It's not the real range. 457 00:33:44,800 --> 00:33:45,680 It's the virtual range. 458 00:33:47,780 --> 00:33:49,660 So just keep that in mind. 459 00:33:50,160 --> 00:33:54,880 Now with that radar that you saw spinning, the primary spin radar, I did a recording 460 00:33:54,880 --> 00:33:58,180 and then each of these scan lines is triggered. 461 00:33:58,320 --> 00:34:00,340 There's this red part on the left-hand side. 462 00:34:00,340 --> 00:34:06,020 When it hears a really loud burst, which is attributed to the radar doing its transmission. 463 00:34:06,500 --> 00:34:10,480 And then it keeps listening for a fixed period of time for the return. 464 00:34:10,740 --> 00:34:15,440 So this is all, you know, me sitting on the hillside with my little USOP with just a width 465 00:34:15,440 --> 00:34:15,660 antenna. 466 00:34:15,880 --> 00:34:16,980 Not a big radar dish. 467 00:34:17,840 --> 00:34:22,600 And then it captures a fixed number of samples and then it waits for the next radar transmission 468 00:34:22,600 --> 00:34:23,220 as it rotates. 469 00:34:23,740 --> 00:34:27,780 And what amazed me is that you can actually still pick up with a little width antenna 470 00:34:27,780 --> 00:34:30,320 all of these structures that are a little bit smaller. 471 00:34:30,320 --> 00:34:33,900 They're a little bit further out from the ground clutter, which is causing these immediate 472 00:34:33,900 --> 00:34:35,140 returns on the left-hand side. 473 00:34:36,240 --> 00:34:43,120 And so this is just each scan line and then I just recorded it for a number of rotations. 474 00:34:43,320 --> 00:34:44,760 I think this is actually just a single rotation. 475 00:34:45,240 --> 00:34:48,300 This is 50 mega samples per second capture into RAM disk. 476 00:34:49,200 --> 00:34:56,120 And what's nice is that taking that linear plot and if you unwrap it into polar space 477 00:34:56,540 --> 00:34:59,400 and place it on the radar position itself. 478 00:34:59,480 --> 00:35:00,280 This is the Bay Area. 479 00:35:00,320 --> 00:35:05,940 You can see that the ground clutter actually lines up quite neatly with, you know, the 480 00:35:05,940 --> 00:35:06,940 ground and not in the bay. 481 00:35:07,120 --> 00:35:14,000 What blew my mind is that you actually get returns from the power pylons that cross 482 00:35:14,000 --> 00:35:15,820 the bay there and also from the bridge. 483 00:35:15,980 --> 00:35:20,580 So these large structures return enough energy to be received by just a width antenna on 484 00:35:20,580 --> 00:35:21,020 the USOP. 485 00:35:21,420 --> 00:35:25,440 So, you know, that's the simple concept of CW radar returns. 486 00:35:26,600 --> 00:35:30,080 And a bit of theory here from Wikipedia. 487 00:35:30,100 --> 00:35:30,300 So, you know, I've got a couple of things here. 488 00:35:30,320 --> 00:35:36,140 This is to illustrate why CW radar is not the best kind of radar. 489 00:35:36,340 --> 00:35:37,200 There are better forms. 490 00:35:37,500 --> 00:35:45,180 So, again, this is the plot where you have time and the red CW tone here, brief one is 491 00:35:45,180 --> 00:35:46,320 what's transmitted by the radar. 492 00:35:46,620 --> 00:35:50,420 And these blue patches here are the echoes that come back. 493 00:35:50,780 --> 00:35:58,280 And so if you take a match filter, which is in this case just a filter for the frequency 494 00:35:58,660 --> 00:35:59,860 that was sent out. 495 00:36:01,880 --> 00:36:04,100 Then that means you can ignore everything else. 496 00:36:04,380 --> 00:36:09,200 And if you apply the filter, then you get this plot on the right. 497 00:36:09,380 --> 00:36:10,740 So you ignore the transmitted pulse. 498 00:36:11,200 --> 00:36:16,220 And then the peak of the response here is at the time where that target was. 499 00:36:16,520 --> 00:36:18,160 And then this other target is further out. 500 00:36:18,240 --> 00:36:22,400 And so you get a lower amplitude response, but, again, you get the peak there. 501 00:36:22,580 --> 00:36:24,180 And this is not the best, right? 502 00:36:24,220 --> 00:36:26,440 Because you have this ramp up and ramp down. 503 00:36:26,720 --> 00:36:30,240 And you like to have a much more accurate definition in time. 504 00:36:30,240 --> 00:36:35,820 and the time domain of where that target response actually is. And the bigger issue is that 505 00:36:35,820 --> 00:36:41,260 if you have two targets that are close together like this, so those two targets are now not 506 00:36:41,260 --> 00:36:46,280 separated by as much distance and therefore time, then the response, the echo actually 507 00:36:46,280 --> 00:36:51,140 blows together. And so now it looks like there's only a single target if you were applying 508 00:36:51,140 --> 00:36:55,860 a naive detection strategy. So that's why CW has these drawbacks. 509 00:36:57,020 --> 00:37:03,880 And a simple alternative, and there are many other radar alternatives, is FMCW. And what 510 00:37:03,880 --> 00:37:07,940 that means is it's frequency modulated carry wave. So instead of just sending out a fixed 511 00:37:07,940 --> 00:37:13,780 carry wave, you actually send out a carry wave that increases in frequency or might 512 00:37:13,780 --> 00:37:17,580 decrease in frequency. And this is what it looks like in the time domain. So you start 513 00:37:17,580 --> 00:37:22,420 at a low frequency and then you quickly ramp up and it might be linear, it might not be, 514 00:37:22,480 --> 00:37:25,660 but you can ramp up. And by the end of your transmission, you're 515 00:37:25,860 --> 00:37:31,600 actually transmitting at high frequency. And the reason why FMCW is good is because 516 00:37:32,200 --> 00:37:35,840 these chirps, this is known as a chirp when you have something increasing or decreasing 517 00:37:35,840 --> 00:37:40,780 in frequency, it has the property of strong self-correlation. It's got a really good 518 00:37:40,780 --> 00:37:48,140 auto-correlation property. And what that means is if you take that signal and you mix 519 00:37:48,140 --> 00:37:51,860 it with a copy of itself, then you'll get a really good response. But if you mix it 520 00:37:51,860 --> 00:37:55,760 with anything else, then you'll get a really bad response, which is not the case 521 00:37:55,760 --> 00:38:03,000 for what we just saw with the CW tone, because you get this mixing here and the ambiguous 522 00:38:03,000 --> 00:38:15,120 response. So I have a demo for that. We're going to actually listen to what a chirp is 523 00:38:15,120 --> 00:38:25,080 so that you can get a better idea of what that is like. 524 00:38:28,860 --> 00:38:33,780 And you can see it. So this is, again, in the audio domain. I want to emphasize that 525 00:38:33,780 --> 00:38:39,240 these are general concepts and these are transferable between audio and radio and other things. 526 00:38:39,520 --> 00:38:45,320 So you'll hear the chirp and this is actually the response from my microphone in my laptop. 527 00:38:45,620 --> 00:38:49,240 So as I'm speaking, you can see there. Does anybody want to whistle or make a tone? 528 00:38:52,080 --> 00:38:55,740 There you go. Just to prove to you that it's live. And now I'm going to 529 00:38:55,740 --> 00:38:57,940 let you hear the tone and you'll see it on the spectrum. 530 00:39:02,840 --> 00:39:05,840 So you can't even hear that, but the microphone and the speaker still generate a response. 531 00:39:07,780 --> 00:39:13,360 Okay. So this is a chirp. It's a very slow chirp, but it's a chirp nonetheless. The radar 532 00:39:13,360 --> 00:39:17,120 chirps are much, much quicker, and I'll show you what that sounds like and looks like in 533 00:39:17,120 --> 00:39:25,620 a moment. So this is the frequency response. In the time domain, a common construction 534 00:39:25,740 --> 00:39:32,020 that you use is you use a sawtooth wave. So usually a signal source and you might have 535 00:39:32,020 --> 00:39:36,700 a sine wave. But here I'm using a sawtooth, and I hook that up to a VCO, to a voltage 536 00:39:36,700 --> 00:39:41,500 controlled oscillator. So what I'm effectively doing is I'm putting in a linear ramp, a 537 00:39:41,500 --> 00:39:46,540 linear voltage control, and then the VCO will turn that into a frequency modulated continuous 538 00:39:46,980 --> 00:39:53,920 wave. And we can see what that looks like here. So I'm going to speed up the chirp. 539 00:39:55,740 --> 00:40:04,720 Here, with the, where is it? Do I not have that exposed? Delay, multiplier, low pass 540 00:40:04,720 --> 00:40:10,100 federal. Ah, here. So this will take 10 seconds to do the chirp. I'm going to make it do it 541 00:40:10,100 --> 00:40:19,980 every second. Right? And I'm going to make it do it 10 times a second. Okay. Now, if 542 00:40:19,980 --> 00:40:25,520 you look at it in the time domain, this is the output of the sawtooth generator, right? 543 00:40:25,520 --> 00:40:29,520 So this is not the frequency output yet, the FMCW output. This is just controlling the 544 00:40:29,520 --> 00:40:35,080 VCO. Once you feed that through the VCO, it looks like this. So let me slow that down 545 00:40:35,080 --> 00:40:40,460 so you can see it a little bit better. This is the time domain plot of the complex output 546 00:40:40,460 --> 00:40:44,540 of the VCO block. And you can see that you get a complex sine wave, sine your side, but 547 00:40:44,540 --> 00:40:49,420 it's increasing in frequency and then it resets. So this is the basis of a chirp radar. We're 548 00:40:49,420 --> 00:40:53,560 listening to the chirp here. All right. 549 00:40:58,920 --> 00:41:04,000 So, again, this should be familiar to you now. We saw it in the complex domain, but 550 00:41:04,000 --> 00:41:09,440 here it's in the real domain. Now, in this case, we've been listening to a full duty 551 00:41:09,440 --> 00:41:14,180 cycle chirp generator, so it's constantly generating the chirp. And as soon as one 552 00:41:14,180 --> 00:41:19,960 finishes, the next one starts. In the radar scenario we looked at before, we sent out 553 00:41:19,960 --> 00:41:23,700 a chirp, we were quiet for a while, and then we sent out another chirp. You can do both. 554 00:41:23,860 --> 00:41:24,920 They're both equally valid. 555 00:41:25,520 --> 00:41:29,960 They just require different sorts of hardware configurations. I'm going to start talking 556 00:41:29,960 --> 00:41:38,340 about the full duty cycle continuous version now. What did I say there? Now, the other 557 00:41:38,340 --> 00:41:42,560 thing to remember here, and this is really important, too, is that when we talk about 558 00:41:42,560 --> 00:41:46,140 filters, filters need taps, right? Before with the arrow, you know, the left to right 559 00:41:46,140 --> 00:41:51,820 channel unselective receiver, we generated two series of taps to define two filters and 560 00:41:51,820 --> 00:41:55,500 they imposed their shape on the spectrum. Here, we've got two filters. We've got two 561 00:41:55,520 --> 00:42:00,560 filters. We're going to consider a filter whose taps are the chirp, okay? So usually 562 00:42:00,560 --> 00:42:04,280 there are low pass filters and high pass filters and you can think about how they might shape 563 00:42:04,280 --> 00:42:09,360 the spectrum. You can make a filter of whatever you want. You can even use filters in the 564 00:42:09,360 --> 00:42:14,360 digital domain for like the access control word or a preamble for a digital packet. Here, 565 00:42:14,540 --> 00:42:18,180 our filter is actually going to be the chirp itself. So the idea is that whenever it hears 566 00:42:18,180 --> 00:42:22,400 a chirp and then you put a filter through it, you will get the maximum response from 567 00:42:22,400 --> 00:42:25,500 your filter when the incoming chirp lines up with the filter. 568 00:42:25,520 --> 00:42:35,460 This is the chirp that we've defined in the filter. So, and this is what makes it, I think, 569 00:42:35,480 --> 00:42:41,440 really click. This is like a diagram we had before. So we have the transmitted chirp here 570 00:42:41,440 --> 00:42:45,200 and we have these two echoes, right? Because the echoes are going to be the reflection 571 00:42:45,200 --> 00:42:49,940 of what we transmitted. And because we're using this special filter that has this great 572 00:42:49,940 --> 00:42:55,440 autocorrelation property, we get a really nice well-defined peak here in time that lines 573 00:42:55,520 --> 00:43:01,400 up with the response, the exact response echo that came back here. So you get the 574 00:43:01,400 --> 00:43:06,420 first target and the second target. And this is the really cool thing. Then all this noise 575 00:43:06,420 --> 00:43:12,800 is added, right? This is basically swamping out, completely swamping out the echoes. 576 00:43:13,180 --> 00:43:18,620 And amazingly, when you pass that filter with the chirp through it, the noise disappears 577 00:43:19,120 --> 00:43:24,840 and still you're left with the responses, the peaks at the two targets. And even if 578 00:43:24,840 --> 00:43:25,500 they were overlapped, they're still going to be overlapped. So you can see that the 579 00:43:25,500 --> 00:43:28,540 two targets relate on one another, like we had in the previous plot with just the CW. 580 00:43:28,700 --> 00:43:34,440 You would still be able to disambiguate those two targets. So FMCW is pretty simple. Like, 581 00:43:34,440 --> 00:43:40,660 you can use radar techniques that use coded transmissions. But, you know, this is like 582 00:43:40,660 --> 00:43:46,580 an in-between level where it's still fairly doable with easy construction, even in GRC. 583 00:43:47,560 --> 00:43:55,480 So any questions so far? Question? No questions. 584 00:43:55,500 --> 00:44:01,420 Question about the mapping. How did you get the, I guess, rotational rate of that 585 00:44:01,420 --> 00:44:05,500 radar to project in the... This is going back a couple seconds. 586 00:44:05,620 --> 00:44:10,720 Yeah, no, no. I guessed. I mean, I recorded... I think I can record 70 seconds to 16 gigabytes 587 00:44:10,720 --> 00:44:19,300 of RAM. And I think I guessed. The other one was, does the distance from 588 00:44:19,300 --> 00:44:25,240 the actual radar receiver, you on the hill, give like some kind of distortion to... 589 00:44:25,240 --> 00:44:28,540 Yes. Yeah, exactly. So I can show you later. 590 00:44:28,700 --> 00:44:28,940 Okay. 591 00:44:29,440 --> 00:44:34,800 But if anyone's interested in this notion of the distortion and the actual physical 592 00:44:34,800 --> 00:44:38,940 model of the radar system, and if you consider the path propagation, I'll talk about that 593 00:44:38,940 --> 00:44:45,540 just briefly. But in a Blackhack talk I did a couple of years back, I show a slide 594 00:44:45,540 --> 00:44:52,980 where actually I wrote a program to create a rasterization, a visualization of that 595 00:44:52,980 --> 00:44:53,660 distortion map. 596 00:44:53,760 --> 00:44:54,220 Yeah. 597 00:44:54,220 --> 00:44:57,300 So you basically give it the offset and angle between the receiver and the transmitter, 598 00:44:57,500 --> 00:45:01,580 and then it'll calculate a distortion grid that you... I didn't do it, but you would 599 00:45:01,580 --> 00:45:05,860 then apply that to your returns and then it would undistort everything. So that's possible 600 00:45:05,860 --> 00:45:09,900 to do. But that's a very good point in that we're always talking about virtual range and 601 00:45:09,900 --> 00:45:14,600 virtual time echoes, and so you have to keep in mind how the geometry of your radar is 602 00:45:14,600 --> 00:45:15,540 set up. Next question. 603 00:45:15,840 --> 00:45:17,260 Could you just go back a slide? 604 00:45:17,640 --> 00:45:17,900 Yeah. 605 00:45:18,880 --> 00:45:21,140 So there you've shown the filtering... 606 00:45:21,140 --> 00:45:22,280 This is from Wikipedia, by the way. 607 00:45:22,380 --> 00:45:24,200 Yeah. I realize that. I'm going to ask the question. 608 00:45:24,200 --> 00:45:27,720 The previous Wikipedia slide had the two pulses really close together. 609 00:45:28,040 --> 00:45:28,200 Yep. 610 00:45:28,440 --> 00:45:34,420 Is there a limit for the chirp like decoding, filtering the chirp in terms of frequency 611 00:45:34,420 --> 00:45:37,120 or is there something else? Can you... 612 00:45:37,120 --> 00:45:38,260 To be able to disambiguate? 613 00:45:38,340 --> 00:45:38,580 Yes. 614 00:45:38,600 --> 00:45:43,500 So again, that's all set and constrained by the parameters of your radar system. 615 00:45:43,700 --> 00:45:48,280 So how, why the chirp is, what your signal bandwidth is, what your sample rate of the 616 00:45:48,280 --> 00:45:53,580 ADC is, all that stuff. And I've got a little Jupyter Notebook. 617 00:45:53,660 --> 00:45:54,000 Yeah. 618 00:45:54,200 --> 00:45:57,500 That I'll put online and you can enter in all of those parameters and it'll tell 619 00:45:57,500 --> 00:46:00,020 you what the, what all the constraints of your radar system is. 620 00:46:00,100 --> 00:46:03,560 It's just because the Wikipedia page showed that previous kind of, you know, signals 621 00:46:03,560 --> 00:46:04,020 close together. 622 00:46:04,100 --> 00:46:04,300 Yeah. 623 00:46:04,360 --> 00:46:06,680 I was intrigued to see what the parameters were. 624 00:46:06,820 --> 00:46:10,820 Yeah. I mean, that was some simulation that someone put up, but again, it's all up to 625 00:46:10,820 --> 00:46:11,160 the numbers. 626 00:46:11,300 --> 00:46:11,440 Cheers. 627 00:46:13,040 --> 00:46:17,400 Just a quickie. I mean, would an autocorrelation have given you that rotation rate if it may, 628 00:46:17,540 --> 00:46:19,240 as I can just go look at it and get it right? 629 00:46:19,240 --> 00:46:21,000 Yes. Yeah, it would. Yeah, yeah. I mean, you can... 630 00:46:21,000 --> 00:46:21,140 That's enough structure? 631 00:46:21,360 --> 00:46:22,800 You can... It's... 632 00:46:23,840 --> 00:46:28,480 I don't know. Each capture's like... I mean, it's like 15 gigs or something. So, you could 633 00:46:28,480 --> 00:46:29,420 do it. It would take a little while. 634 00:46:29,580 --> 00:46:29,840 Yeah. 635 00:46:29,840 --> 00:46:35,260 But that's exactly right. The point is raised that if you wanted to figure out the 636 00:46:36,440 --> 00:46:40,860 rotation rate, you know, I guess, because I didn't want to do it. But what you would 637 00:46:40,860 --> 00:46:46,500 do, completely correct, is you would run an autocorrelation with the capture and do a correlation 638 00:46:46,500 --> 00:46:50,940 with itself. And as soon as the similar kind of features match up again, you'll get a response. 639 00:46:51,260 --> 00:46:52,760 At the time, whether... 640 00:46:52,760 --> 00:46:56,840 ...where the radar has resumed and completed a single rotation. Thank you very much. 641 00:47:00,540 --> 00:47:04,940 Any other questions? That's great. Thank you for these questions. It's really good. No? 642 00:47:05,040 --> 00:47:09,880 I'll move on then. So, with this continuous or full duty cycle radar system, you have 643 00:47:09,880 --> 00:47:14,420 your CHIRP generator and that's transmitted. So, as you heard here, like, it's being transmitted 644 00:47:14,420 --> 00:47:18,800 out of the speakers. And then the receiver, in this case, in that demonstration, it was 645 00:47:18,800 --> 00:47:21,880 the microphone in my laptop. And there... 646 00:47:22,340 --> 00:47:22,740 Yeah. 647 00:47:22,740 --> 00:47:30,080 ...I then mix the input with the CHIRP, right? And because we're receiving and generating 648 00:47:30,080 --> 00:47:35,260 this simultaneously on the same hardware, it means that the clocks are synchronized. 649 00:47:35,620 --> 00:47:40,460 Because I'm using the audio hardware, that doesn't allow you to start transmitting and 650 00:47:40,460 --> 00:47:46,160 receiving the streams at the same time. That's different on, say, a USRP, which I'll show 651 00:47:46,160 --> 00:47:51,040 you next. And that's why I have this delay slot factor that you can change and I'll show 652 00:47:51,040 --> 00:47:51,500 you that in a minute. 653 00:47:51,500 --> 00:47:58,060 But you mix the two together and then you get the deCHIRP signal. And the deCHIRP signal 654 00:47:58,060 --> 00:48:02,860 holds wonders that I'll try to explain to you, but it means you can do some really sophisticated 655 00:48:02,860 --> 00:48:07,760 processing in a pretty simple way and get much more rich information out about what's 656 00:48:07,760 --> 00:48:10,800 going on in the space around you. 657 00:48:11,060 --> 00:48:18,140 So, what's important to note here is that once you deCHIRP the receive signal, then 658 00:48:19,060 --> 00:48:20,780 you get constant tones. 659 00:48:21,500 --> 00:48:29,500 So, when it deCHIRPS the...when it deCHIRPS itself, you'll just get a DC tone. And then 660 00:48:29,500 --> 00:48:34,900 any other reflections will end up generating other tones at different frequencies. And 661 00:48:34,900 --> 00:48:39,660 that's the key there. The cool thing about CHIRP radar is that once you deCHIRP stuff, 662 00:48:39,960 --> 00:48:45,080 your reflections become tones at different frequencies and that frequency is controlled 663 00:48:45,080 --> 00:48:50,720 by the distance from your radar, which is kind of mind-blowing when you think about 664 00:48:50,720 --> 00:48:54,660 it. It's just a really nice way all the math kind of falls out. And then you can just use 665 00:48:54,660 --> 00:48:56,180 FFTs and then do cool stuff. 666 00:48:56,920 --> 00:48:57,320 . 667 00:49:03,580 --> 00:49:07,760 I don't think so because you're still just doing it on the basis of the response 668 00:49:07,760 --> 00:49:12,340 of the filter. So, you're still looking for a peak response. And you can send out any 669 00:49:12,340 --> 00:49:16,720 kind of signal you wanted to. And I'll demonstrate that actually. The last thing I'll show you 670 00:49:16,720 --> 00:49:19,760 is passive radar using exactly these concepts. 671 00:49:19,760 --> 00:49:26,740 Using digital television signals off airplanes. So, stick around if you want to see that. 672 00:49:26,880 --> 00:49:33,900 That's what this is building up to. So, what's interesting is that in, you know, properly 673 00:49:33,900 --> 00:49:38,140 deployed radar systems, what often happens is that there's more sophisticated RF plumbing. 674 00:49:38,460 --> 00:49:45,020 So, when you have a receiver and you're continually transmitting, you don't want to have to ingest 675 00:49:45,020 --> 00:49:49,720 your local signal because it's always going to be the strongest thing you hear. And considering 676 00:49:49,720 --> 00:49:54,100 that it's going to be eventually fed into an analog to digital converter that has a fixed 677 00:49:54,100 --> 00:49:58,620 dynamic range, you don't want to blow out your receiver. You don't want to blow out the ADC. 678 00:49:58,840 --> 00:50:04,240 And so, what you can do is you can actually mix out or null out your tone that you're 679 00:50:04,240 --> 00:50:14,180 transmitting just using analog RF mixes and blocks or DC blockers, for example. And that 680 00:50:14,180 --> 00:50:19,700 means that you take the power out, like the actual RF power you subtract, not digitally, but you 681 00:50:19,720 --> 00:50:24,720 know, physically electromagnetic domain, and then all you're left with are the responses, 682 00:50:24,900 --> 00:50:31,320 the echoes. And that way you can much better utilize the dynamic range of your ADC and 683 00:50:31,320 --> 00:50:37,440 see reflections further out. So, from Wikipedia as well, this is a nice diagram to illustrate 684 00:50:37,440 --> 00:50:42,060 that kind of RF setup. So, again, you've got your generator, power divider, transmit that 685 00:50:42,060 --> 00:50:49,140 out, and you split that off, bring in the output of your receiver through a preamplifier, mix 686 00:50:49,140 --> 00:50:55,240 out the signal that you transmitted, low-pass filter, amplify again and into your ADC, and 687 00:50:55,240 --> 00:51:01,980 then you do your digital processing. So, that's the simple kind of structure. So, what I'm 688 00:51:01,980 --> 00:51:07,040 going to try and do now is take you through how you do range calculations, and then this 689 00:51:07,040 --> 00:51:13,840 is the magical new part, how to do Doppler calculations using FMCW and GRC. And it's 690 00:51:13,840 --> 00:51:19,120 basically all FFTs. It's, it's, this would appear like this massive mystery machine, 691 00:51:19,140 --> 00:51:22,280 a three-degree black box to me for the longest time. When I finally kind of sat down and 692 00:51:22,280 --> 00:51:27,660 looked at it, it's actually really, really elegant. So, my goal here today is to make 693 00:51:27,660 --> 00:51:32,280 you want to try to understand at least a little bit of this. So, this is a plot in 694 00:51:32,280 --> 00:51:36,580 the frequency domain, right? We talked about chirps. We know that they look like this 695 00:51:36,580 --> 00:51:42,420 on the spectrum. Here you've got time going from left to right and frequency from bottom 696 00:51:42,420 --> 00:51:48,840 to top. And the red signal here is the chirp that you're transmitting, and the green signal 697 00:51:48,840 --> 00:51:52,880 is the echo. So, remember, an echo is just going to send back what you transmitted, 698 00:51:53,020 --> 00:51:57,820 but with a delay in time, right? So, as you can see, the green is delayed a little bit, 699 00:51:58,360 --> 00:52:06,040 delta T, but from the, the original transmission. Now, what the beautiful thing about this, 700 00:52:06,080 --> 00:52:11,340 as I, as I mentioned, is that any time delay will produce a frequency shift at any single 701 00:52:11,960 --> 00:52:17,720 sample in time. So, if we look at time T1, you've got a frequency shift from your transmitted 702 00:52:17,720 --> 00:52:18,400 tone. 703 00:52:18,840 --> 00:52:28,360 At that particular point in time to your received echo. And what happens is, what 704 00:52:28,360 --> 00:52:45,840 was I going to demonstrate to you there? Maybe the whole thing here. Yeah, that's what I 705 00:52:45,840 --> 00:52:48,000 was going to show you. So, going back to the audio demo. 706 00:52:48,840 --> 00:52:54,220 We had this, right? And we know what the VCO input looks like. We know what the VCO 707 00:52:54,220 --> 00:53:02,240 output looks like. And now we're going to look at the FFT of the output of the de-chirping, 708 00:53:02,260 --> 00:53:08,680 of the mixing, right? So, what this is doing is it's taking the chirp, and then it's going 709 00:53:08,680 --> 00:53:14,360 to multiply that by what is being received from the microphone. And what you'll notice 710 00:53:14,360 --> 00:53:18,460 here is if you compare this one, right, to this one. 711 00:53:18,480 --> 00:53:18,820 Yeah. 712 00:53:18,820 --> 00:53:23,280 What it looks like, and hopefully you'll see this, it looks like the spectrum is being 713 00:53:23,280 --> 00:53:28,120 rotated over and over and over again at a fixed rate. See how it looks like the entire 714 00:53:28,120 --> 00:53:33,080 spectrum is shifting? So, the left-hand side here. So, actually, do people want to whistle? 715 00:53:33,180 --> 00:53:35,920 And you'll see your whistles come out, but they'll be diagonal lines here. 716 00:53:45,960 --> 00:53:52,660 So, see, this is me. And this is the cool thing. Our chirp signal, remember I was telling 717 00:53:52,660 --> 00:53:57,840 you it would turn into a fixed tone? Can you all see the fixed tone here? It's that line 718 00:53:58,280 --> 00:54:05,040 coming down the middle at roughly DC, right? That is the tone that we want to receive. 719 00:54:05,040 --> 00:54:11,980 And any other tones that end up, I think in this case, to the left of it, will be echoes 720 00:54:11,980 --> 00:54:19,080 that have come back from around the room into the microphone on the laptop. And so, that 721 00:54:19,080 --> 00:54:23,400 frequency difference, because remember this is in the frequency domain now, that frequency 722 00:54:23,400 --> 00:54:28,480 difference is going to give you your virtual range information, right? Which is pretty, 723 00:54:28,520 --> 00:54:29,080 pretty neat. 724 00:54:29,840 --> 00:54:33,840 Now, what does this look like? I showed this last year, but... 725 00:54:35,040 --> 00:54:39,880 I've hopefully explained things a little better so that it makes more sense. What I'm going 726 00:54:39,880 --> 00:54:41,300 to show you now is... 727 00:54:46,100 --> 00:54:52,060 the same thing, but actually running in the proper mode. See, this is the chirp again. 728 00:54:52,260 --> 00:54:59,720 It's running at a higher rate because we want to be able to update the display more. And 729 00:54:59,720 --> 00:55:03,620 you see when I'm talking, it's still picking me up because it's constantly rotating the 730 00:55:03,620 --> 00:55:03,920 spectrum. 731 00:55:03,920 --> 00:55:09,260 It doesn't look like a proper frequency response now. So, what I'm going to do is get my other 732 00:55:09,260 --> 00:55:10,760 laptop to be the target. 733 00:55:13,420 --> 00:55:13,940 And... 734 00:55:15,280 --> 00:55:17,040 I'm going to set my... 735 00:55:19,080 --> 00:55:21,780 my delay slop so that you see the... 736 00:55:23,520 --> 00:55:25,460 the DC part of it somewhere. 737 00:55:30,360 --> 00:55:31,880 Okay, apparently it's... 738 00:55:32,620 --> 00:55:33,460 not there. 739 00:55:45,680 --> 00:55:50,800 Nate Temple, the genius here, pointed out that I'm trying to move my laptop in front 740 00:55:50,800 --> 00:55:55,060 of speakers that aren't actually outputting anything. I want to use the speakers in my 741 00:55:55,060 --> 00:55:58,340 laptop because that's where the microphone is, not those speakers. Thanks, Nate. 742 00:56:03,700 --> 00:56:05,640 Nate is an absolute legend, by the way. 743 00:56:07,800 --> 00:56:13,560 If you didn't get to see his cyberspectrum talk from the other night, I recommend you 744 00:56:13,560 --> 00:56:16,900 go online and watch it because he has built some amazing stuff. 745 00:56:17,500 --> 00:56:18,680 All right, here we go. This is better now. 746 00:56:20,460 --> 00:56:20,860 So... 747 00:56:22,560 --> 00:56:26,820 what I'm going to do is... this is the DC component, and because I'm talking right, 748 00:56:26,920 --> 00:56:31,420 we're just going to get this noise showing up here. But if I put my laptop here... 749 00:56:33,900 --> 00:56:36,900 then you can see there's that main response there... 750 00:56:37,500 --> 00:56:41,380 that is directly related to the height of the laptop. 751 00:56:43,720 --> 00:56:46,380 Don't clap though because then you'll upset the microphone. 752 00:56:48,940 --> 00:56:49,460 Right? 753 00:56:50,500 --> 00:56:51,020 So... 754 00:56:52,660 --> 00:56:55,060 That's alright. I planned that. 755 00:56:56,320 --> 00:56:57,580 Um...so what's happening here? 756 00:56:57,700 --> 00:56:59,520 A chirp is being sent out from the laptop. 757 00:56:59,780 --> 00:57:01,080 I mean, this is... 758 00:57:01,080 --> 00:57:03,100 a chirp, those 759 00:57:03,800 --> 00:57:05,480 air molecules are being vibrated 760 00:57:05,480 --> 00:57:07,360 and then that audio wave 761 00:57:07,360 --> 00:57:08,860 is moving up, hitting 762 00:57:08,860 --> 00:57:10,500 the bottom side of my laptop 763 00:57:10,500 --> 00:57:12,980 and then being reflected back down in the microphone. 764 00:57:13,280 --> 00:57:15,340 And amazingly, the microphone can discern 765 00:57:15,340 --> 00:57:17,200 even though it's hearing itself, 766 00:57:17,380 --> 00:57:19,440 it can still discern the response 767 00:57:19,440 --> 00:57:21,480 from an object way out here. 768 00:57:21,660 --> 00:57:23,180 So that's the power of 769 00:57:24,040 --> 00:57:24,600 FMCW. 770 00:57:24,980 --> 00:57:27,460 Now, there was another little thing in there 771 00:57:27,460 --> 00:57:29,440 that was on my screen. I will show you that. 772 00:57:29,440 --> 00:57:31,020 That's actually the Doppler plot 773 00:57:31,020 --> 00:57:33,520 and I'll come to that. What that gives you 774 00:57:33,520 --> 00:57:35,580 is not only range information, but it gives 775 00:57:35,580 --> 00:57:37,460 you velocity information, so you can tell how 776 00:57:37,460 --> 00:57:38,760 quickly a target is moving. 777 00:57:41,100 --> 00:57:41,900 And that's 778 00:57:41,900 --> 00:57:43,200 really cool when it comes to aircraft. 779 00:57:44,760 --> 00:57:45,740 So, what I want 780 00:57:45,740 --> 00:57:47,600 to show you here now is this plot, where 781 00:57:47,600 --> 00:57:49,560 instead of looking at the original frequency domain 782 00:57:49,560 --> 00:57:51,200 what we received, this is the domain 783 00:57:51,860 --> 00:57:53,260 once we've done the de-chirping. 784 00:57:53,440 --> 00:57:55,360 So we have that DC component here 785 00:57:55,360 --> 00:57:57,740 and then in the green line, this is now our 786 00:57:58,460 --> 00:57:59,220 target return 787 00:57:59,220 --> 00:58:01,000 tone, right? Because we've de-chirped it. 788 00:58:01,220 --> 00:58:03,020 And so you have this difference in frequency. 789 00:58:03,280 --> 00:58:04,800 So the frequency change implies 790 00:58:05,500 --> 00:58:07,380 that time delay, and therefore 791 00:58:07,380 --> 00:58:09,300 virtual range. Now, 792 00:58:09,380 --> 00:58:11,240 what's neat is that you can take 793 00:58:11,240 --> 00:58:13,180 the de-chirped output 794 00:58:13,180 --> 00:58:15,460 and then pass it through an FFT, 795 00:58:15,620 --> 00:58:17,640 right? Because an FFT will give you 796 00:58:17,640 --> 00:58:18,760 the energy 797 00:58:19,320 --> 00:58:21,380 in each bin. And so the trick 798 00:58:21,380 --> 00:58:23,420 here is that you use an FFT 799 00:58:24,120 --> 00:58:25,260 you know how you 800 00:58:25,260 --> 00:58:27,240 have a certain size in your FFT, 801 00:58:27,340 --> 00:58:28,820 a certain number of points that you 802 00:58:29,220 --> 00:58:31,360 form. The number of points in your FFT 803 00:58:31,360 --> 00:58:33,460 you can make the same 804 00:58:33,460 --> 00:58:34,680 number of samples 805 00:58:35,180 --> 00:58:37,640 as what is made up in a single chirp. 806 00:58:37,780 --> 00:58:39,440 Right? So you decide how long your chirp 807 00:58:39,440 --> 00:58:41,080 is, and then you set your FFT 808 00:58:41,680 --> 00:58:43,380 in terms of samples to be exactly 809 00:58:43,380 --> 00:58:45,500 the same amount of time. And what 810 00:58:45,500 --> 00:58:47,480 that means is that every single time you do 811 00:58:47,480 --> 00:58:49,300 one full chirp, you take one 812 00:58:49,300 --> 00:58:51,400 FFT. And 813 00:58:52,500 --> 00:58:53,440 I'm trying to illustrate 814 00:58:53,440 --> 00:58:54,520 that here by these 815 00:58:55,160 --> 00:58:57,360 lines. So if you think about 816 00:58:57,360 --> 00:58:59,140 these over time, this is like a waterfall. 817 00:58:59,220 --> 00:59:01,380 These are your frequency 818 00:59:01,380 --> 00:59:03,340 bins that you get out of your 819 00:59:03,340 --> 00:59:05,580 FFT transform. And in this case 820 00:59:05,580 --> 00:59:07,160 the echo return, the green line 821 00:59:07,160 --> 00:59:09,500 ends up falling into, in this 822 00:59:09,500 --> 00:59:11,260 case, arbitrary bin number 5. 823 00:59:11,700 --> 00:59:13,360 And remember how we said that 824 00:59:13,360 --> 00:59:15,560 differences in frequency will imply 825 00:59:15,560 --> 00:59:17,400 your virtual range. 826 00:59:17,880 --> 00:59:19,240 Here, the 827 00:59:19,240 --> 00:59:21,560 bin that it falls into will give you 828 00:59:21,560 --> 00:59:23,260 the range 829 00:59:23,260 --> 00:59:25,100 information for that particular bin. 830 00:59:25,280 --> 00:59:26,920 So here we can say bin 5 831 00:59:26,920 --> 00:59:29,020 and we can calculate 832 00:59:29,220 --> 00:59:31,260 how far away that is. And 833 00:59:31,260 --> 00:59:33,080 to calculate how far away that is, 834 00:59:33,180 --> 00:59:35,160 you know how long one sample lasts 835 00:59:35,160 --> 00:59:37,360 because you set a sample 836 00:59:37,360 --> 00:59:39,140 rate on your SDR, right? 837 00:59:39,200 --> 00:59:41,080 So 10 megahertz or whatever, 1 megahertz. 838 00:59:41,280 --> 00:59:43,260 So you can calculate 1 over that to 839 00:59:43,260 --> 00:59:45,540 calculate the period of a single sample. 840 00:59:46,120 --> 00:59:47,140 And each bin 841 00:59:47,140 --> 00:59:48,440 in terms of duration 842 00:59:49,980 --> 00:59:51,300 maps up with the 843 00:59:51,300 --> 00:59:52,800 duration of a single sample. 844 00:59:53,000 --> 00:59:55,300 And if you know how long it is, if we're 845 00:59:55,300 --> 00:59:56,840 talking about RF now and not audio, 846 00:59:57,060 --> 00:59:59,140 you can multiply it by the speed of light. 847 00:59:59,220 --> 01:00:00,860 And that gives you your round trip 848 01:00:01,560 --> 01:00:03,220 time and you can calculate your virtual range. 849 01:00:03,500 --> 01:00:05,340 So it's cool because you can map 850 01:00:05,340 --> 01:00:07,260 to frequency really easily just by doing 851 01:00:07,260 --> 01:00:09,320 an FFT and then you can map that 852 01:00:09,320 --> 01:00:10,760 directly back to virtual range. 853 01:00:11,080 --> 01:00:13,240 So does that kind of 854 01:00:13,240 --> 01:00:15,120 make sense so far? I see people nodding, which is good. 855 01:00:15,980 --> 01:00:17,260 Now, the wild thing is 856 01:00:17,260 --> 01:00:18,780 in this instance, 857 01:00:19,100 --> 01:00:21,000 you know, this is a target at a fixed 858 01:00:21,000 --> 01:00:22,540 range and it's not changing. 859 01:00:22,840 --> 01:00:24,980 Here, you might have two 860 01:00:24,980 --> 01:00:26,660 different targets moving 861 01:00:26,660 --> 01:00:28,440 toward and away from 862 01:00:28,440 --> 01:00:30,100 your radar receiver. 863 01:00:30,420 --> 01:00:32,020 And so you would expect a plot like this. 864 01:00:32,080 --> 01:00:33,140 And we kind of saw that before 865 01:00:33,960 --> 01:00:36,260 with the FM chirp. Actually, one thing I was 866 01:00:36,260 --> 01:00:38,080 going to try was, I don't have another 867 01:00:38,080 --> 01:00:40,120 laptop, but maybe if somebody has a laptop, we can try it 868 01:00:40,120 --> 01:00:42,160 at the end. We can have two here and then if you 869 01:00:42,160 --> 01:00:44,040 move them separately, you'd get obviously 870 01:00:44,040 --> 01:00:46,240 two different crossing returns like that. 871 01:00:49,480 --> 01:00:50,180 Maybe that's what 872 01:00:50,180 --> 01:00:52,180 I was going to demo, but I'll do that later 873 01:00:52,180 --> 01:00:54,040 because time is short. 874 01:00:54,860 --> 01:00:56,200 So, again, as I was 875 01:00:56,200 --> 01:00:57,600 saying, the sample rate sets 876 01:00:57,600 --> 01:00:59,660 the duration of a single sample 877 01:00:59,660 --> 01:01:01,620 and therefore limits your range 878 01:01:01,620 --> 01:01:03,700 resolution. Because if you consider, you 879 01:01:03,700 --> 01:01:05,600 get discretized bins coming out 880 01:01:05,600 --> 01:01:07,460 of an FFT, and 881 01:01:07,460 --> 01:01:09,620 the length, the total length 882 01:01:09,620 --> 01:01:11,680 of that is going to be your unambiguous 883 01:01:11,680 --> 01:01:13,180 possible round trip time. 884 01:01:13,500 --> 01:01:15,200 And so your pulse repetition 885 01:01:15,200 --> 01:01:17,440 frequency sets your unambiguous range, 886 01:01:18,160 --> 01:01:19,460 but the sample rate 887 01:01:19,460 --> 01:01:21,340 also sets the 888 01:01:22,460 --> 01:01:23,020 distinct 889 01:01:23,020 --> 01:01:25,620 range that you can resolve within a single bin. 890 01:01:25,760 --> 01:01:27,580 So as you step from one bin to the other, you can 891 01:01:27,600 --> 01:01:29,580 to the next. That's going to be some amount of range 892 01:01:29,580 --> 01:01:31,280 that you go, you know, from one 893 01:01:31,280 --> 01:01:33,460 to the next. And so what you have to consider 894 01:01:33,460 --> 01:01:35,460 is that targets, depending upon your radar system, 895 01:01:35,900 --> 01:01:37,520 might be differently 896 01:01:37,520 --> 01:01:39,520 spaced, but they might fall 897 01:01:39,520 --> 01:01:41,560 within the range of a single 898 01:01:41,560 --> 01:01:43,300 bin. And so you'll get 899 01:01:43,300 --> 01:01:45,360 one return for multiple targets 900 01:01:45,360 --> 01:01:47,580 in a single bin, and that's ambiguous. 901 01:01:47,980 --> 01:01:49,400 So you want to do something which is 902 01:01:49,400 --> 01:01:51,500 Doppler processing to make 903 01:01:51,500 --> 01:01:52,240 that unambiguous. 904 01:01:54,240 --> 01:01:55,540 And as I was saying, you've got 905 01:01:55,540 --> 01:01:57,520 different radar geometries. So you've got 906 01:01:57,600 --> 01:01:59,500 a monostatic system where the transmitter 907 01:01:59,500 --> 01:02:01,540 and receiver are co-located, and so it's just 908 01:02:01,540 --> 01:02:03,280 a direct line of sight round trip time. 909 01:02:03,580 --> 01:02:05,220 But if you have a bistatic radar system 910 01:02:05,220 --> 01:02:07,340 where the receiver is separate from the transmitter, 911 01:02:07,520 --> 01:02:09,480 then you have to take into account the 912 01:02:09,480 --> 01:02:11,480 geometry, because that delay is going 913 01:02:11,480 --> 01:02:13,280 to be, you know, different. 914 01:02:13,400 --> 01:02:15,440 You might have a target way out here, and you'll have the signal bounce 915 01:02:15,440 --> 01:02:17,420 out and then come back, or it might be in between the two 916 01:02:17,420 --> 01:02:19,520 and so on. So important 917 01:02:19,520 --> 01:02:21,300 to keep that in mind. So 918 01:02:21,300 --> 01:02:23,000 what I was talking about there is that 919 01:02:23,000 --> 01:02:25,300 with RF, the speed of light, we know what that is. 920 01:02:26,440 --> 01:02:27,420 And for a 921 01:02:27,600 --> 01:02:29,440 single sample, that's going to be a 922 01:02:29,440 --> 01:02:31,560 very large distance, because we're talking about the speed of light. 923 01:02:32,780 --> 01:02:33,580 300,000 924 01:02:33,580 --> 01:02:35,480 kilometers per second. So even at 925 01:02:35,480 --> 01:02:37,260 a high sample rate, megahertz, 926 01:02:37,420 --> 01:02:39,440 a single sample is still going to allow 927 01:02:39,440 --> 01:02:40,960 light to travel a long way. 928 01:02:41,700 --> 01:02:43,140 Or in this case, the RF energy. 929 01:02:43,900 --> 01:02:45,420 And so what we want to do is 930 01:02:45,420 --> 01:02:47,520 you can increase the sample rate to give you 931 01:02:47,520 --> 01:02:49,360 better range resolution, but there comes 932 01:02:49,360 --> 01:02:51,340 a point where if you're just using an SDR 933 01:02:51,340 --> 01:02:53,600 and a laptop, you can't go to, you know, gigahertz 934 01:02:53,600 --> 01:02:54,860 worth of bandwidth. 935 01:02:55,040 --> 01:02:56,660 You will end up being constrained. 936 01:02:57,680 --> 01:02:59,420 By your bus and by your processing 937 01:02:59,420 --> 01:03:01,660 speed. So what you should consider 938 01:03:01,660 --> 01:03:03,280 then with an FFT here is that 939 01:03:03,280 --> 01:03:04,340 this is an FFT 940 01:03:05,140 --> 01:03:06,840 and you have these range bins 941 01:03:06,840 --> 01:03:09,600 and then every time the chirp finishes it, it does 942 01:03:09,600 --> 01:03:11,520 the transform and then it just starts and 943 01:03:11,520 --> 01:03:12,920 keeps cycling like that over and over. 944 01:03:13,120 --> 01:03:14,880 So you can see that cycle there. 945 01:03:16,140 --> 01:03:17,540 And we're talking about 946 01:03:18,280 --> 01:03:19,160 multiple targets 947 01:03:19,160 --> 01:03:20,540 fitting into a single 948 01:03:21,780 --> 01:03:22,460 range bin. 949 01:03:24,200 --> 01:03:25,540 And so once you do the FFT 950 01:03:25,540 --> 01:03:27,460 and you were to take the magnitude, you would 951 01:03:27,460 --> 01:03:29,400 basically get an energy response at 952 01:03:29,400 --> 01:03:30,260 that range. 953 01:03:33,680 --> 01:03:35,420 So as I was saying, you might have two echoes 954 01:03:35,420 --> 01:03:37,140 that fall into the same range because they're not 955 01:03:37,140 --> 01:03:39,280 the same target. They're slightly different, but 956 01:03:39,280 --> 01:03:41,380 from the point of view of your receiver, they 957 01:03:41,380 --> 01:03:43,260 end up giving you the same round 958 01:03:43,260 --> 01:03:43,760 trip time. 959 01:03:46,660 --> 01:03:47,300 And the other 960 01:03:47,300 --> 01:03:49,640 problem too is that you might have 961 01:03:49,640 --> 01:03:51,400 a radar system, and I'll 962 01:03:51,400 --> 01:03:53,260 show you this with a passive one, where the 963 01:03:54,220 --> 01:03:55,480 transmitter is so strong 964 01:03:55,900 --> 01:03:57,220 even out to many range 965 01:03:57,220 --> 01:03:59,260 bins that it completely swamps 966 01:03:59,260 --> 01:03:59,940 your receiver 967 01:04:01,080 --> 01:04:01,860 in the 968 01:04:03,400 --> 01:04:05,260 for, you know, if you were just 969 01:04:05,260 --> 01:04:07,240 doing this transform. And what's nice is that 970 01:04:07,240 --> 01:04:08,720 you can do Doppler processing, 971 01:04:08,940 --> 01:04:11,000 which reveals this hidden information 972 01:04:11,000 --> 01:04:12,940 working in the phase information 973 01:04:12,940 --> 01:04:14,760 that's output from the Fourier transform 974 01:04:14,760 --> 01:04:16,760 that will actually show you these 975 01:04:16,760 --> 01:04:19,140 targets, even though ordinarily you wouldn't 976 01:04:19,140 --> 01:04:20,780 see them because you're swamped by 977 01:04:20,780 --> 01:04:23,180 your local transmitter or ground clutter. 978 01:04:25,520 --> 01:04:27,120 So yeah, the clutter could have 979 01:04:27,220 --> 01:04:29,380 affected that bin, so you don't see them 980 01:04:29,380 --> 01:04:31,520 if you're just looking at range information, or 981 01:04:31,520 --> 01:04:33,740 it'll take out your entire transform. 982 01:04:34,680 --> 01:04:36,860 So the Doppler effect. We've heard about this. 983 01:04:38,640 --> 01:04:41,060 And we know that it will cause a, usually 984 01:04:41,060 --> 01:04:43,500 a shift in frequency. You know, the classic example 985 01:04:43,500 --> 01:04:47,860 is an ambulance that's driving by. And in this 986 01:04:47,860 --> 01:04:49,900 case, what I'm gonna try to illustrate to you 987 01:04:49,900 --> 01:04:52,660 is how it changes the phase of the 988 01:04:52,660 --> 01:04:55,700 echo that comes back to the radar. That's the 989 01:04:55,700 --> 01:04:56,200 key here. 990 01:04:56,200 --> 01:04:58,860 So, we get a phase change due to motion. 991 01:05:00,460 --> 01:05:02,680 And again, if anybody, any, any questions so 992 01:05:02,680 --> 01:05:06,700 far? Any, any comments? If you want me to 993 01:05:06,700 --> 01:05:10,180 repeat anything, please, please ask. Don't be, 994 01:05:10,220 --> 01:05:12,300 don't be afraid, because it took me a while to 995 01:05:12,300 --> 01:05:18,000 figure this out. Yeah. Yeah, so it, it depends 996 01:05:18,000 --> 01:05:20,860 on sort of how you conceptualize it and, and 997 01:05:20,860 --> 01:05:23,120 how you receive it. In this particular case, 998 01:05:23,260 --> 01:05:25,700 there's one you think about. I mean, I'll illustrate it 999 01:05:25,700 --> 01:05:29,280 here and, and hopefully it'll make sense. So the 1000 01:05:29,280 --> 01:05:32,740 idea is, with Doppler processing, that you receive not 1001 01:05:32,740 --> 01:05:35,620 just echoes from a single chirp, but you do 1002 01:05:35,620 --> 01:05:38,820 it for multiple chirps over some arbitrary period that 1003 01:05:38,820 --> 01:05:42,200 you select. That'll also have implications on what you 1004 01:05:42,200 --> 01:05:44,800 can resolve. But this is referred to as the integration 1005 01:05:44,800 --> 01:05:46,780 time. So let's say you can have integration time 1006 01:05:46,780 --> 01:05:49,020 of like a second. And let's say you're sending out 1007 01:05:49,020 --> 01:05:52,000 a hundred pulses per second. So you collect a hundred 1008 01:05:52,000 --> 01:05:54,960 of those returns, and then you process them in one 1009 01:05:54,960 --> 01:05:55,240 batch. 1010 01:05:55,700 --> 01:05:59,760 And then from that you extract Doppler information. And 1011 01:05:59,760 --> 01:06:01,320 the key here, and I'll illustrate this for you, 1012 01:06:01,360 --> 01:06:05,020 is that you, instead of just ending where we 1013 01:06:05,020 --> 01:06:07,260 had before, where you do an FFT of your 1014 01:06:07,940 --> 01:06:10,780 range response bins, you build up then a hundred 1015 01:06:10,780 --> 01:06:15,800 of those range response transforms, right. So you imagine 1016 01:06:15,800 --> 01:06:18,120 they're in rows. And then you run FFTs on 1017 01:06:18,120 --> 01:06:20,200 the columns. So what you end up doing is 1018 01:06:20,200 --> 01:06:24,500 you do a second series of FFTs on each individual 1019 01:06:24,500 --> 01:06:28,620 range over the integration period. And I'll show you 1020 01:06:28,620 --> 01:06:31,620 what that looks like. So the other thing to do 1021 01:06:31,620 --> 01:06:34,540 is remember, again, the geometry. So this is Doppler velocity 1022 01:06:35,520 --> 01:06:38,820 with respect to your radar system, not with respect 1023 01:06:38,820 --> 01:06:41,440 to the moving object. So if you consider this 1024 01:06:41,440 --> 01:06:43,580 scenario on the left here, you've got a radar transmitted 1025 01:06:43,580 --> 01:06:47,660 receiver, sends out a pulse. The airplane is moving tangentially 1026 01:06:47,660 --> 01:06:50,420 at that moment to the radar receiver. So it's 1027 01:06:50,420 --> 01:06:54,460 not going to impart any Doppler shift on the return, because the 1028 01:06:54,460 --> 01:06:57,780 there's no velocity component in the same plane as 1029 01:06:57,780 --> 01:07:01,860 your radar signal. Whereas in the second scenario, in the 1030 01:07:01,860 --> 01:07:04,000 middle, if the plane's moving toward the radar receiver, 1031 01:07:04,160 --> 01:07:06,720 it's going to impart the biggest Doppler shift on the 1032 01:07:06,720 --> 01:07:09,980 return. And if it's offset by some amount, then 1033 01:07:09,980 --> 01:07:14,000 even though it's, you know, not entirely tangential, like 1034 01:07:14,000 --> 01:07:16,100 in the first scenario, it's still going to impart 1035 01:07:16,100 --> 01:07:18,280 a little bit, because there is still a component there 1036 01:07:18,280 --> 01:07:24,340 that matches with the, the plane. So with Doppler processing, if you 1037 01:07:24,460 --> 01:07:27,700 consider the scenario where at any one time the 1038 01:07:27,700 --> 01:07:30,620 target is moving toward the radar there, in, at 1039 01:07:30,620 --> 01:07:33,760 T zero, that pulse is sent out. At round trip 1040 01:07:33,760 --> 01:07:36,180 time divided by two, the reflection is sent back. 1041 01:07:36,360 --> 01:07:38,760 And at the round trip time, you get the return. 1042 01:07:38,920 --> 01:07:41,820 And you can see that throughout that period, the 1043 01:07:41,820 --> 01:07:46,280 signal amplitude decreases, because of course, there's that loss through, 1044 01:07:46,320 --> 01:07:49,140 through free space and, and on the, on the 1045 01:07:49,140 --> 01:07:51,480 reflector. And what I want to illustrate to you 1046 01:07:51,480 --> 01:07:52,680 here is when that. 1047 01:07:55,140 --> 01:07:58,620 return comes back at a particular point in time, right? 1048 01:07:58,700 --> 01:08:00,140 It's always going to come back at a particular point, 1049 01:08:00,220 --> 01:08:02,660 which implies a particular range, right? 1050 01:08:02,700 --> 01:08:03,480 So there's a range there. 1051 01:08:03,740 --> 01:08:06,440 There's going to be a phase difference, 1052 01:08:07,080 --> 01:08:08,240 which might be zero. 1053 01:08:08,420 --> 01:08:10,280 There might be effectively no phase difference 1054 01:08:10,280 --> 01:08:11,760 or some phase difference 1055 01:08:11,760 --> 01:08:13,580 between the signal that you sent out 1056 01:08:13,580 --> 01:08:15,300 and the signal that comes back. 1057 01:08:15,600 --> 01:08:19,220 And if you consider the actual propagation of a sine wave, 1058 01:08:19,280 --> 01:08:21,160 even though, you know, they're photons and whatnot, 1059 01:08:23,020 --> 01:08:25,640 then depending upon where that plane is, 1060 01:08:25,720 --> 01:08:29,560 if it's here or it's like a meter over here, offset, 1061 01:08:30,920 --> 01:08:32,700 the wavefront will hit it, 1062 01:08:33,600 --> 01:08:37,440 and then, you know, if you imagine that wavefront hitting it, 1063 01:08:37,480 --> 01:08:38,780 it'll hit it at a particular phase 1064 01:08:38,780 --> 01:08:40,560 and then it'll reflect at that phase. 1065 01:08:40,900 --> 01:08:42,840 And if you move that plane a little bit, 1066 01:08:42,980 --> 01:08:46,120 then the tone will hit the plane 1067 01:08:46,120 --> 01:08:47,300 at a slightly different phase 1068 01:08:47,300 --> 01:08:48,920 and reflect at a different phase. 1069 01:08:49,100 --> 01:08:51,140 And so in this particular... 1070 01:08:51,160 --> 01:08:52,180 In this particular case, we're lucky 1071 01:08:52,180 --> 01:08:55,040 because everything happens to line up on the phase boundary, 1072 01:08:55,340 --> 01:08:56,920 and so when you get the response, 1073 01:08:57,220 --> 01:08:58,840 it actually ends up being the same phase. 1074 01:08:59,020 --> 01:09:00,400 So in here, it's zero degrees. 1075 01:09:00,700 --> 01:09:03,700 And remember, this is all in a single range bin. 1076 01:09:04,400 --> 01:09:06,800 Now, you could always say if a plane is traveling, 1077 01:09:06,900 --> 01:09:08,420 you'll see it move through the range bins 1078 01:09:08,420 --> 01:09:10,900 and that implies that it's moving with some velocity, 1079 01:09:11,120 --> 01:09:13,280 but this is all within a single range bin 1080 01:09:13,280 --> 01:09:15,120 because we want to disambiguate targets 1081 01:09:15,120 --> 01:09:16,180 and get velocity information. 1082 01:09:17,420 --> 01:09:19,440 So you've got transmitted pulse, received pulse, 1083 01:09:19,560 --> 01:09:20,180 no phase difference. 1084 01:09:20,620 --> 01:09:21,140 Now, if you're in a plane, 1085 01:09:21,140 --> 01:09:23,580 now let's consider the plane has moved a meter 1086 01:09:23,580 --> 01:09:25,060 and, you know, 1087 01:09:26,440 --> 01:09:28,240 it also depends upon your wavelength. 1088 01:09:29,500 --> 01:09:30,860 That has implications, too. 1089 01:09:31,880 --> 01:09:34,660 But here, we're talking about the same scenario. 1090 01:09:34,840 --> 01:09:36,760 And if you notice carefully here, 1091 01:09:37,660 --> 01:09:41,320 the wave that is returned is slightly offset. 1092 01:09:41,560 --> 01:09:41,820 See that? 1093 01:09:42,020 --> 01:09:43,800 So see there and then there. 1094 01:09:43,940 --> 01:09:45,560 It's a slightly different phase on that wave. 1095 01:09:45,880 --> 01:09:47,000 And so when it comes back, 1096 01:09:47,100 --> 01:09:49,400 the phase difference is going to be slightly different as well. 1097 01:09:49,980 --> 01:09:51,060 And when we... 1098 01:09:51,140 --> 01:09:52,200 compare them, 1099 01:09:52,300 --> 01:09:54,360 we get some arbitrary phase offset. 1100 01:09:55,060 --> 01:09:56,340 Now, let's consider... 1101 01:09:56,340 --> 01:09:59,000 These are two distinct pulses. 1102 01:09:59,600 --> 01:10:00,960 Now, let's consider four 1103 01:10:01,500 --> 01:10:03,600 in more or less successive time order. 1104 01:10:03,820 --> 01:10:04,960 So the first one comes back. 1105 01:10:05,280 --> 01:10:07,460 The second one comes back with a difference. 1106 01:10:07,700 --> 01:10:08,640 Third one comes back. 1107 01:10:08,900 --> 01:10:10,440 In this case, it's the same 1108 01:10:10,440 --> 01:10:11,500 because the plane moved again 1109 01:10:11,500 --> 01:10:13,800 and imparted another phase change. 1110 01:10:14,100 --> 01:10:14,880 And then again, 1111 01:10:15,020 --> 01:10:17,200 we've got a different phase offset 1112 01:10:17,200 --> 01:10:19,640 in the fourth period there. 1113 01:10:20,220 --> 01:10:20,900 And remember, 1114 01:10:21,140 --> 01:10:22,980 every chirp period that gets sent out, 1115 01:10:23,080 --> 01:10:26,800 we get this different energy coming back to the receiver. 1116 01:10:27,160 --> 01:10:29,880 It's the same chirp or the same signal. 1117 01:10:30,380 --> 01:10:32,280 The magnitude will look the same, 1118 01:10:32,320 --> 01:10:34,340 but the phase will be different. 1119 01:10:34,640 --> 01:10:35,980 And what you have to think about is 1120 01:10:35,980 --> 01:10:37,460 when you do FFTs, 1121 01:10:37,460 --> 01:10:38,720 when we look at them on the waterfall 1122 01:10:38,720 --> 01:10:41,240 or when we usually think about them, 1123 01:10:41,880 --> 01:10:42,800 what are you doing? 1124 01:10:43,260 --> 01:10:44,880 You're taking the FFT, 1125 01:10:45,000 --> 01:10:47,000 which gives you always a complex output, 1126 01:10:47,680 --> 01:10:49,580 and you always end up taking the magnitude 1127 01:10:49,580 --> 01:10:50,580 of that complex output. 1128 01:10:51,140 --> 01:10:52,220 And the effect of that is? 1129 01:10:53,360 --> 01:10:53,840 Anyone? 1130 01:10:54,940 --> 01:10:55,880 You lose data. 1131 01:10:56,060 --> 01:10:56,580 What do you lose? 1132 01:10:57,020 --> 01:10:58,440 You lose the phase information. 1133 01:10:58,900 --> 01:11:00,400 So here we want to use that phase information. 1134 01:11:02,220 --> 01:11:04,060 And the integration period is important 1135 01:11:04,060 --> 01:11:05,260 because that's the period 1136 01:11:05,260 --> 01:11:07,400 over which you're monitoring these phase changes 1137 01:11:07,400 --> 01:11:09,320 in each of the range bins. 1138 01:11:09,660 --> 01:11:10,420 Does that make sense? 1139 01:11:12,380 --> 01:11:15,080 So the idea is to get that phase information 1140 01:11:15,080 --> 01:11:16,620 from each FFT bin 1141 01:11:16,620 --> 01:11:18,400 over that integration period. 1142 01:11:18,700 --> 01:11:19,580 And then, 1143 01:11:21,380 --> 01:11:22,460 think about this. 1144 01:11:23,840 --> 01:11:26,940 What is a changing phase over time? 1145 01:11:29,060 --> 01:11:30,340 It's a rotating... 1146 01:11:30,920 --> 01:11:32,000 What's the magic P word? 1147 01:11:33,940 --> 01:11:35,040 It's a phasor, right? 1148 01:11:35,140 --> 01:11:36,740 So you've got a phasor going around. 1149 01:11:36,860 --> 01:11:38,700 And I think I have a blue arrow here, yes. 1150 01:11:39,260 --> 01:11:41,640 So, I mean, just to illustrate that a little bit more, 1151 01:11:41,680 --> 01:11:42,820 very, very simply, 1152 01:11:43,380 --> 01:11:44,320 in GNU Radio, 1153 01:11:44,460 --> 01:11:46,200 because we usually use fast sample rates 1154 01:11:46,200 --> 01:11:47,240 and fast... 1155 01:11:48,300 --> 01:11:49,420 in terms of spinning, 1156 01:11:50,240 --> 01:11:50,920 you know, 1157 01:11:50,920 --> 01:11:53,880 everything is high frequency. 1158 01:11:54,060 --> 01:11:55,300 Here I've got a signal source, 1159 01:11:55,500 --> 01:11:56,240 which is a sine wave. 1160 01:11:56,740 --> 01:11:59,240 The frequency is 0.2 hertz, okay? 1161 01:11:59,380 --> 01:12:01,360 So that phasor is rotating very slowly. 1162 01:12:01,580 --> 01:12:03,680 And we can very easily illustrate that. 1163 01:12:04,280 --> 01:12:05,580 This is an IQ plot. 1164 01:12:05,720 --> 01:12:07,480 It's a scope plot in XY mode. 1165 01:12:07,700 --> 01:12:09,780 And you can see the samples. 1166 01:12:10,820 --> 01:12:13,500 You know, this is a normal sine wave, right? 1167 01:12:15,900 --> 01:12:16,700 Where are you? 1168 01:12:17,740 --> 01:12:18,400 I get... 1169 01:12:18,400 --> 01:12:19,520 No, it takes a long time 1170 01:12:19,520 --> 01:12:20,260 because it's... 1171 01:12:20,260 --> 01:12:20,900 because it's... 1172 01:12:20,900 --> 01:12:21,260 slow. 1173 01:12:21,440 --> 01:12:22,060 There it is. 1174 01:12:22,160 --> 01:12:23,620 Let's go, I think, strip chart. 1175 01:12:26,580 --> 01:12:27,420 Yeah, there it is. 1176 01:12:27,560 --> 01:12:30,040 So we have the normal phasor, 1177 01:12:30,080 --> 01:12:32,180 the normal sine wave that's being generated. 1178 01:12:32,460 --> 01:12:33,440 But if you look at it on XY, 1179 01:12:34,660 --> 01:12:36,840 then it's just going to be a phase 1180 01:12:36,840 --> 01:12:38,580 that's rotating at a fixed rate 1181 01:12:38,580 --> 01:12:41,280 around your unit circle on the complex plane. 1182 01:12:41,600 --> 01:12:43,320 So what I want you to think about 1183 01:12:43,320 --> 01:12:44,360 is exactly this 1184 01:12:44,360 --> 01:12:47,760 in a single range bin, okay? 1185 01:12:47,880 --> 01:12:49,520 So you've got your echo coming back, 1186 01:12:49,540 --> 01:12:50,460 it's changing in phase, 1187 01:12:50,460 --> 01:12:51,880 and so you'll get a bit of this 1188 01:12:51,880 --> 01:12:53,200 in that range bin. 1189 01:12:53,700 --> 01:12:54,580 And of course, 1190 01:12:54,600 --> 01:12:56,220 what happens when you take the FFT 1191 01:12:56,220 --> 01:12:58,060 of a sine wave in this case? 1192 01:12:58,560 --> 01:13:01,060 You'll get a response in some bin 1193 01:13:01,060 --> 01:13:02,720 that maps to the frequency of the thing. 1194 01:13:02,960 --> 01:13:04,100 So what does that imply? 1195 01:13:04,220 --> 01:13:05,100 Can anybody tell me? 1196 01:13:05,520 --> 01:13:07,340 Once you end up taking the FFTs of the columns, 1197 01:13:07,600 --> 01:13:09,840 maybe I'll show you the next slide 1198 01:13:09,840 --> 01:13:11,000 and somebody can tell me. 1199 01:13:15,080 --> 01:13:16,340 So we did all that. 1200 01:13:19,640 --> 01:13:20,040 Okay. 1201 01:13:20,040 --> 01:13:20,760 Okay, so we... 1202 01:13:22,360 --> 01:13:24,180 Oh, microphone stopped working? 1203 01:13:26,820 --> 01:13:27,260 Hello? 1204 01:13:27,440 --> 01:13:28,380 Oh, there we go, testing. 1205 01:13:30,140 --> 01:13:31,120 It's not even wireless, 1206 01:13:31,140 --> 01:13:32,080 so we couldn't have blamed somebody 1207 01:13:32,080 --> 01:13:33,260 trying to dust my mic. 1208 01:13:35,260 --> 01:13:35,700 Right. 1209 01:13:38,260 --> 01:13:39,720 So consider this, then. 1210 01:13:41,060 --> 01:13:43,280 Each row here is a single FFT 1211 01:13:43,280 --> 01:13:45,820 that we took on an echo that came back, right? 1212 01:13:46,660 --> 01:13:48,180 Over our integration period, 1213 01:13:48,300 --> 01:13:49,600 we build up multiple rows. 1214 01:13:50,180 --> 01:13:51,380 So these are all the transforms. 1215 01:13:51,500 --> 01:13:52,980 Here, we're just taking an eight-point transform. 1216 01:13:53,980 --> 01:13:56,260 And so we build up each row 1217 01:13:56,260 --> 01:13:57,460 and have a number of columns 1218 01:13:57,460 --> 01:14:00,060 that maps to our integration period. 1219 01:14:01,380 --> 01:14:03,020 Then, to get the Doppler information, 1220 01:14:03,520 --> 01:14:04,240 what do you do? 1221 01:14:07,500 --> 01:14:08,320 You look at the face, 1222 01:14:08,340 --> 01:14:09,860 but what's the next step here? 1223 01:14:10,360 --> 01:14:11,280 I mean, I've already said it, 1224 01:14:11,300 --> 01:14:12,400 so I'm hoping somebody was listening. 1225 01:14:13,140 --> 01:14:14,880 You take FFTs of what? 1226 01:14:15,540 --> 01:14:16,240 The columns. 1227 01:14:16,660 --> 01:14:19,760 So you build up this memory cell, right? 1228 01:14:20,040 --> 01:14:21,660 And then once you've built up 1229 01:14:21,660 --> 01:14:23,380 and you've populated all of these 1230 01:14:23,380 --> 01:14:27,360 with the complex outputs of the first FFT part 1231 01:14:27,360 --> 01:14:28,400 of the range information, 1232 01:14:28,780 --> 01:14:31,120 you take the FFTs column-wise. 1233 01:14:32,040 --> 01:14:33,620 And so what you're doing is 1234 01:14:33,620 --> 01:14:34,560 you're doing an FFT 1235 01:14:34,560 --> 01:14:37,160 to look at the phase changes of the returns 1236 01:14:37,160 --> 01:14:38,980 at each range bin. 1237 01:14:39,600 --> 01:14:41,160 And what does that mean? 1238 01:14:41,760 --> 01:14:43,320 The Doppler shift 1239 01:14:43,320 --> 01:14:46,080 and the movement of the target 1240 01:14:46,080 --> 01:14:47,280 imparts the phase change, 1241 01:14:47,520 --> 01:14:50,020 and that causes that phase alteration. 1242 01:14:50,660 --> 01:14:52,760 and the faster or slower, 1243 01:14:53,580 --> 01:14:55,820 and whether it's forward or reversed, 1244 01:14:56,040 --> 01:14:57,360 rotating in that phase or, 1245 01:14:58,000 --> 01:15:00,620 tells you how fast the object is moving. 1246 01:15:01,340 --> 01:15:03,660 And so if you have two targets 1247 01:15:03,660 --> 01:15:06,100 that end up ambiguously, 1248 01:15:07,200 --> 01:15:08,900 ending up in the same range bin, 1249 01:15:09,060 --> 01:15:11,260 but they're maybe flying in different directions 1250 01:15:11,260 --> 01:15:12,100 or different speeds, 1251 01:15:12,700 --> 01:15:14,720 you can use Doppler processing 1252 01:15:14,720 --> 01:15:16,600 to then disambiguate them. 1253 01:15:16,860 --> 01:15:19,460 So instead of then just having a 1D plot, 1254 01:15:19,460 --> 01:15:20,420 you end up with a 2D plot, 1255 01:15:20,500 --> 01:15:21,360 and I'll show you what that looks like. 1256 01:15:22,280 --> 01:15:24,840 So you run the FFTs for each of these columns. 1257 01:15:25,620 --> 01:15:27,380 And then you get, 1258 01:15:27,920 --> 01:15:28,320 oops. 1259 01:15:30,140 --> 01:15:32,300 Now, remember how I said remember this slide 1260 01:15:32,300 --> 01:15:33,420 earlier in the presentation? 1261 01:15:33,720 --> 01:15:35,580 What was I showing you when I showed that slide? 1262 01:15:36,800 --> 01:15:37,600 An interleaver. 1263 01:15:39,000 --> 01:15:39,700 Look familiar? 1264 01:15:41,120 --> 01:15:41,520 Interleaver? 1265 01:15:41,900 --> 01:15:44,040 So what you can do in GNU Radio is, 1266 01:15:44,440 --> 01:15:46,740 I just wrote a simple row column interleaver block, 1267 01:15:46,940 --> 01:15:49,360 and it takes the output of the first FFT state, 1268 01:15:49,360 --> 01:15:51,100 and then once it fills the interleaver, 1269 01:15:51,220 --> 01:15:52,900 it outputs everything into another FFT, 1270 01:15:53,300 --> 01:15:56,400 and then you've got all your data, 1271 01:15:56,600 --> 01:15:58,440 the range and velocity information. 1272 01:16:00,960 --> 01:16:02,080 Okay, so interleaver. 1273 01:16:02,260 --> 01:16:04,500 And so this is a neat little tweak 1274 01:16:04,500 --> 01:16:05,780 that I made to my interleaver. 1275 01:16:06,200 --> 01:16:07,520 Usually, with an interleaver, 1276 01:16:07,540 --> 01:16:09,000 you need to fill up the entire interleaver, 1277 01:16:09,060 --> 01:16:10,280 and then you can read it out, right? 1278 01:16:10,360 --> 01:16:11,360 So you fill up all the rows, 1279 01:16:11,500 --> 01:16:12,900 and then you read it out all the columns. 1280 01:16:13,220 --> 01:16:15,400 What I did with my interleaver is that you can set, 1281 01:16:16,940 --> 01:16:18,480 I can't remember what the variable is, 1282 01:16:18,560 --> 01:16:19,340 but you can actually go to my interleaver, 1283 01:16:19,340 --> 01:16:20,460 and you can cause it to read out more quickly. 1284 01:16:20,780 --> 01:16:23,760 So it'll actually fill up, 1285 01:16:23,880 --> 01:16:24,860 let's say there are eight rows, 1286 01:16:25,140 --> 01:16:27,040 instead of outputting all the data 1287 01:16:27,040 --> 01:16:28,020 once it's filled up eight rows, 1288 01:16:29,620 --> 01:16:31,100 it fills four rows, 1289 01:16:32,120 --> 01:16:33,120 moves everything up, 1290 01:16:33,200 --> 01:16:34,980 fills up the last four rows, moves everything up, 1291 01:16:35,000 --> 01:16:36,180 and then outputs all eight. 1292 01:16:36,480 --> 01:16:39,100 And then it fills the next four, outputs all eight, 1293 01:16:39,220 --> 01:16:40,600 and then fills up four, and output. 1294 01:16:40,740 --> 01:16:42,920 And so effectively you get twice the output 1295 01:16:42,920 --> 01:16:44,880 coming out of your interleaver, which means that 1296 01:16:44,880 --> 01:16:46,820 even though you might have a long integration period, 1297 01:16:46,940 --> 01:16:49,040 like 10 seconds, we don't want to be 1298 01:16:49,340 --> 01:16:51,400 waiting 10 seconds to update a pretty plot, 1299 01:16:51,980 --> 01:16:53,140 we want to update it much more frequently. 1300 01:16:53,380 --> 01:16:55,280 So you have your interleaver spit the data out 1301 01:16:55,280 --> 01:16:55,800 more frequently. 1302 01:16:56,840 --> 01:16:58,760 So the DCHIP signal goes into an FFT, 1303 01:16:58,920 --> 01:16:59,760 you get your range information, 1304 01:17:00,220 --> 01:17:02,560 goes into the interleaver, you do another FFT, 1305 01:17:02,800 --> 01:17:06,860 and then magically you get your velocity information. 1306 01:17:07,420 --> 01:17:08,940 So now what I'm going to show you is 1307 01:17:08,940 --> 01:17:10,700 the original audio demo 1308 01:17:11,100 --> 01:17:13,280 that I had with the laptop here, 1309 01:17:13,480 --> 01:17:15,440 and then that plot that I didn't show you 1310 01:17:15,440 --> 01:17:17,760 is going to be the output of all of this 1311 01:17:17,760 --> 01:17:18,760 in a 2D image. 1312 01:17:19,580 --> 01:17:22,360 That gives you the Doppler information. 1313 01:17:28,300 --> 01:17:34,640 Okay, where are we? 1314 01:17:34,820 --> 01:17:41,580 And I will take Nate's wonderful advice again. 1315 01:17:42,200 --> 01:17:43,240 Use my laptop, 1316 01:17:43,420 --> 01:17:44,040 speakers and microphone. 1317 01:17:45,300 --> 01:17:46,660 Let me just fix up the, 1318 01:17:46,660 --> 01:17:48,160 so see before, 1319 01:17:48,840 --> 01:17:50,740 this is the DC component, 1320 01:17:50,800 --> 01:17:51,620 it's actually wrapped around, 1321 01:17:51,860 --> 01:17:54,120 because the microphone on the audio card 1322 01:17:54,120 --> 01:17:55,400 starts sampling at a different time 1323 01:17:55,400 --> 01:17:57,580 to when the output, 1324 01:17:59,200 --> 01:18:00,460 the digital Allen converter started, 1325 01:18:00,680 --> 01:18:02,740 they're offset in frequency space 1326 01:18:02,740 --> 01:18:04,120 because they're offset in time, 1327 01:18:04,280 --> 01:18:06,520 and so I need to adjust for that 1328 01:18:06,520 --> 01:18:07,280 manually myself. 1329 01:18:07,780 --> 01:18:08,880 Let me just do that. 1330 01:18:11,380 --> 01:18:11,860 Here. 1331 01:18:15,320 --> 01:18:15,800 Okay. 1332 01:18:17,420 --> 01:18:18,220 All right. 1333 01:18:23,540 --> 01:18:24,840 All right, there's that. 1334 01:18:24,960 --> 01:18:26,080 It should look familiar to you. 1335 01:18:26,280 --> 01:18:29,060 And now let me show you the magic here. 1336 01:18:29,160 --> 01:18:29,840 Hopefully it'll work. 1337 01:18:31,280 --> 01:18:32,120 All right, here we go. 1338 01:18:32,760 --> 01:18:37,560 So this is the Doppler plot. 1339 01:18:38,360 --> 01:18:39,820 You're going to see a little bit more of this 1340 01:18:39,820 --> 01:18:41,300 because I'm just going to show you 1341 01:18:41,300 --> 01:18:43,980 some brief previous experiments after this. 1342 01:18:44,120 --> 01:18:45,340 What I want you to think about here 1343 01:18:45,340 --> 01:18:45,780 is that the Doppler plot 1344 01:18:45,780 --> 01:18:47,980 is that the waterfall behind it 1345 01:18:47,980 --> 01:18:49,340 is showing you, effectively, 1346 01:18:49,520 --> 01:18:51,120 virtual range over time, right? 1347 01:18:51,580 --> 01:18:52,300 The Doppler plot, 1348 01:18:52,460 --> 01:18:54,740 the vertical axis here 1349 01:18:54,740 --> 01:18:56,320 is the range information. 1350 01:18:57,060 --> 01:18:58,580 The horizontal axis 1351 01:18:58,580 --> 01:19:00,080 is the velocity information. 1352 01:19:00,820 --> 01:19:03,400 So stuff there, 1353 01:19:03,640 --> 01:19:04,840 actually you see as I'm moving around 1354 01:19:04,840 --> 01:19:07,660 I'm actually causing the echo to change. 1355 01:19:07,980 --> 01:19:09,960 So it's surprisingly sensitive. 1356 01:19:12,160 --> 01:19:13,240 So yeah. 1357 01:19:14,140 --> 01:19:15,700 See how we've got the strong DC 1358 01:19:15,780 --> 01:19:17,420 part there on the left? 1359 01:19:17,520 --> 01:19:19,440 That maps to vertically that strong 1360 01:19:19,440 --> 01:19:20,560 bright spot at the top there. 1361 01:19:21,060 --> 01:19:23,000 So what I'm going to do is I might 1362 01:19:23,000 --> 01:19:24,540 need to change 1363 01:19:26,240 --> 01:19:27,740 the color mapping 1364 01:19:27,740 --> 01:19:28,160 here. 1365 01:19:32,160 --> 01:19:32,900 Yeah, that's better. 1366 01:19:33,060 --> 01:19:34,900 All right, let's see how this works. 1367 01:19:35,100 --> 01:19:36,840 So remember, what you'll see is 1368 01:19:37,480 --> 01:19:38,580 I'm going to be moving 1369 01:19:40,680 --> 01:19:41,640 the target 1370 01:19:41,640 --> 01:19:42,620 at a particular velocity. 1371 01:19:42,840 --> 01:19:44,860 Maybe up and down, a little bit slower, 1372 01:19:45,780 --> 01:19:47,900 and you'll see a bright spot appear there 1373 01:19:47,900 --> 01:19:49,740 either on the left or on the right, 1374 01:19:49,760 --> 01:19:51,140 depending if I'm going forward or backward. 1375 01:19:51,380 --> 01:19:53,240 And the distance from the center point 1376 01:19:53,240 --> 01:19:55,660 is going to imply how quickly I'm moving it. 1377 01:19:56,360 --> 01:19:57,280 Let's see if this works. 1378 01:19:59,380 --> 01:20:01,160 So there's my target. It's a bright spot, right? 1379 01:20:01,340 --> 01:20:03,020 And notice that I moved it here. 1380 01:20:04,040 --> 01:20:05,720 And now it's settled, so I'm going to move it more. 1381 01:20:05,980 --> 01:20:07,860 See, now it's on the left because I'm moving it up. 1382 01:20:09,180 --> 01:20:10,040 And now I'm going to stop 1383 01:20:10,040 --> 01:20:11,540 and it's going to come back because I've stopped moving it. 1384 01:20:11,700 --> 01:20:13,040 Now you still get the range return. 1385 01:20:13,560 --> 01:20:15,700 See the bright spot in the middle on the center line? 1386 01:20:15,780 --> 01:20:17,660 But I'm not moving it, so there's no doppel... 1387 01:20:17,660 --> 01:20:19,960 Well, I am, actually, because I can't keep it totally steady. 1388 01:20:20,240 --> 01:20:22,500 But it's that sensitive that even as it's waving here, 1389 01:20:22,540 --> 01:20:23,880 you can see that it's moving left and right. 1390 01:20:24,160 --> 01:20:25,440 So if I go like this, 1391 01:20:26,460 --> 01:20:28,180 then you get the doppel response. 1392 01:20:28,520 --> 01:20:30,080 See? And that's just using the audio. 1393 01:20:30,580 --> 01:20:31,700 Now, who can... 1394 01:20:32,160 --> 01:20:33,580 Apart from the multiple echoes, 1395 01:20:33,980 --> 01:20:36,260 who can tell me why we're getting multiple echoes here? 1396 01:20:38,840 --> 01:20:40,240 Wait. Skylar, hang on a second. 1397 01:20:40,360 --> 01:20:41,880 Anyone else with a hand? 1398 01:20:42,780 --> 01:20:43,540 Guy at the back? 1399 01:20:43,980 --> 01:20:45,440 Audience member 2 in the back. 1400 01:20:45,780 --> 01:20:48,120 audience member 2 in the back. 1401 01:20:48,760 --> 01:20:49,280 audience member 2 in the back. 1402 01:20:49,280 --> 01:20:50,600 Say it anyway. 1403 01:20:51,200 --> 01:20:52,700 audience member 2 in the back. 1404 01:20:53,680 --> 01:20:54,920 Yeah, because at least... 1405 01:20:55,420 --> 01:20:56,720 because we didn't have a microphone. 1406 01:20:56,840 --> 01:20:59,660 But what the two gentlemen were saying 1407 01:20:59,660 --> 01:21:00,720 was that 1408 01:21:01,340 --> 01:21:02,660 they're so close that 1409 01:21:02,660 --> 01:21:05,100 the audio's going to bounce off the bottom of my laptop, 1410 01:21:05,160 --> 01:21:06,360 it's going to enter the microphone, 1411 01:21:06,480 --> 01:21:08,280 but it's also going to bounce off my bottom laptop 1412 01:21:08,280 --> 01:21:09,600 and it'll keep bouncing back and forth. 1413 01:21:09,780 --> 01:21:11,300 So we get the multiple returns there. 1414 01:21:11,300 --> 01:21:12,780 The strongest one's going to be the direct... 1415 01:21:12,780 --> 01:21:14,120 you know, the shortest part. 1416 01:21:14,540 --> 01:21:16,360 The other thing is look carefully 1417 01:21:16,360 --> 01:21:17,620 what happens to the bright spot 1418 01:21:17,620 --> 01:21:19,900 in relation to the edges of this image 1419 01:21:19,900 --> 01:21:20,920 as I move it, right? 1420 01:21:21,100 --> 01:21:23,340 I'm going to move it very slowly to keep it in there 1421 01:21:23,340 --> 01:21:25,420 and maybe a bit further out so we don't get all the returns. 1422 01:21:26,120 --> 01:21:27,540 Right? So now it's going to be on the left. 1423 01:21:27,700 --> 01:21:29,380 I'm going to move it fast and watch what happens. 1424 01:21:33,060 --> 01:21:33,720 Who said that? 1425 01:21:34,320 --> 01:21:35,560 That's right. It's aliasing. 1426 01:21:35,980 --> 01:21:37,060 Why are we getting aliasing? 1427 01:21:46,240 --> 01:21:47,360 It's aliasing. 1428 01:21:47,360 --> 01:21:48,600 Yeah, that's exactly right. 1429 01:21:48,800 --> 01:21:51,280 So what is happening here 1430 01:21:51,280 --> 01:21:53,000 is that the pulse 1431 01:21:53,000 --> 01:21:54,320 repetition frequency, right? 1432 01:21:54,360 --> 01:21:55,540 How often we send out pulses 1433 01:21:56,800 --> 01:21:57,360 and 1434 01:22:01,460 --> 01:22:03,120 that'll basically constrain us 1435 01:22:03,120 --> 01:22:04,280 in terms of 1436 01:22:05,020 --> 01:22:06,820 the maximum unambiguous 1437 01:22:07,580 --> 01:22:09,280 velocity that you can make out. 1438 01:22:09,560 --> 01:22:11,240 So once you exceed that velocity 1439 01:22:11,240 --> 01:22:12,900 just like with a normal signal 1440 01:22:12,900 --> 01:22:15,020 if it's above your Nyquist 1441 01:22:15,020 --> 01:22:17,020 divided by 2, or Nyquist 1442 01:22:17,020 --> 01:22:19,180 if it's complex, it will then 1443 01:22:19,180 --> 01:22:20,840 wrap around because 1444 01:22:20,840 --> 01:22:23,240 you can't disambiguate above that. 1445 01:22:23,320 --> 01:22:24,360 It's exactly the same principle. 1446 01:22:24,600 --> 01:22:26,840 So this is another constraint that's applied to 1447 01:22:26,840 --> 01:22:28,980 the radar system depending upon the parameters 1448 01:22:28,980 --> 01:22:30,080 that you pick initially. 1449 01:22:30,400 --> 01:22:32,960 So you have to, as a radar designer 1450 01:22:32,960 --> 01:22:35,020 define what your 1451 01:22:36,000 --> 01:22:37,040 maximum unambiguous 1452 01:22:37,920 --> 01:22:39,060 range should be 1453 01:22:39,060 --> 01:22:41,300 and then you have to 1454 01:22:41,300 --> 01:22:42,480 balance that with your 1455 01:22:42,910 --> 01:22:44,480 maximum unambiguous velocity. 1456 01:22:44,840 --> 01:22:45,840 Because you can't have both. 1457 01:22:46,060 --> 01:22:48,260 It's got to be either one way or the other. 1458 01:22:51,100 --> 01:22:51,600 Yeah. 1459 01:22:51,680 --> 01:22:52,460 So that's 1460 01:22:53,060 --> 01:22:54,040 basically the... 1461 01:22:55,760 --> 01:22:56,880 I need the sound on. 1462 01:22:57,060 --> 01:22:58,820 Again, very good advice from the audience. 1463 01:23:01,440 --> 01:23:03,120 So any questions about this? 1464 01:23:04,420 --> 01:23:04,920 No? 1465 01:23:05,080 --> 01:23:07,000 So just a reminder then, remember how 1466 01:23:07,060 --> 01:23:09,060 we were basically doing the 1467 01:23:09,060 --> 01:23:10,700 interleaving and doing the FFT? 1468 01:23:10,840 --> 01:23:12,340 That plot that we saw 1469 01:23:12,340 --> 01:23:14,060 is basically the output 1470 01:23:14,840 --> 01:23:16,720 of that entire process. 1471 01:23:17,000 --> 01:23:17,900 So each of those 1472 01:23:17,900 --> 01:23:20,080 each of the rows 1473 01:23:20,660 --> 01:23:22,380 was an output of 1474 01:23:22,850 --> 01:23:23,520 an FFT. 1475 01:23:27,540 --> 01:23:28,540 So that's the audio. 1476 01:23:29,340 --> 01:23:30,840 It's almost time so 1477 01:23:31,400 --> 01:23:32,920 if you're interested I'll show you 1478 01:23:32,920 --> 01:23:33,980 an SDR version. 1479 01:23:35,100 --> 01:23:36,020 I've got some 1480 01:23:37,060 --> 01:23:38,040 directional antennas here. 1481 01:23:40,240 --> 01:23:41,200 I'll try and show you 1482 01:23:41,200 --> 01:23:42,300 because what I've done is 1483 01:23:42,300 --> 01:23:44,760 I take the bins 1484 01:23:44,760 --> 01:23:46,540 that map to the zero range 1485 01:23:46,540 --> 01:23:49,020 because remember I was saying light travels really fast, right? 1486 01:23:49,200 --> 01:23:50,720 So even though I think I'm using 1487 01:23:50,720 --> 01:23:52,480 1 megahertz sample rate 1488 01:23:52,480 --> 01:23:54,980 and so 1 over 1 million 1489 01:23:54,980 --> 01:23:57,220 is still going to be 100 meters 1490 01:23:57,220 --> 01:23:58,680 or 60 meters or whatever it is. 1491 01:23:59,520 --> 01:24:00,240 And so 1492 01:24:00,860 --> 01:24:02,520 we wouldn't be able to demonstrate 1493 01:24:03,060 --> 01:24:04,100 a change in range 1494 01:24:04,100 --> 01:24:06,960 but we can demonstrate Doppler because Doppler will still 1495 01:24:07,060 --> 01:24:08,400 work in the zero bin 1496 01:24:08,400 --> 01:24:09,780 if we're nice and close. 1497 01:24:10,080 --> 01:24:12,880 And what I do is I then do an inverse transform 1498 01:24:12,880 --> 01:24:14,320 of that FFT at the zero bin 1499 01:24:14,320 --> 01:24:16,120 and then I put that to the speakers 1500 01:24:16,120 --> 01:24:17,420 and it makes like a theremin 1501 01:24:17,420 --> 01:24:19,900 so we can wave something back and forth 1502 01:24:19,900 --> 01:24:21,460 and turn it into a musical instrument. 1503 01:24:21,800 --> 01:24:24,180 But I'll show you that last in case we run out of time. 1504 01:24:24,360 --> 01:24:25,680 You can stick around if you want to see it. 1505 01:24:26,700 --> 01:24:27,880 Right, back to the slides. 1506 01:24:32,040 --> 01:24:32,680 Okay, so 1507 01:24:33,300 --> 01:24:35,020 that's stuff that you can do at home 1508 01:24:35,020 --> 01:24:36,740 and I want to show you some stuff 1509 01:24:37,060 --> 01:24:38,780 that's used in practice and how you can actually 1510 01:24:39,660 --> 01:24:40,720 decode that stuff as well. 1511 01:24:41,060 --> 01:24:42,660 So one is CODAR 1512 01:24:42,660 --> 01:24:45,240 which is HF radar used to map 1513 01:24:45,240 --> 01:24:46,860 the surface of the ocean 1514 01:24:46,860 --> 01:24:48,300 and map currents 1515 01:24:48,300 --> 01:24:50,580 and you can go on various universities websites 1516 01:24:50,580 --> 01:24:52,980 that have these set up and look at interactive 1517 01:24:52,980 --> 01:24:53,320 live 1518 01:24:54,600 --> 01:24:56,500 plots of currents over the ocean. 1519 01:24:56,660 --> 01:24:58,320 The idea is that you send out an HF wave 1520 01:24:58,320 --> 01:24:59,820 it'll hit crests of 1521 01:24:59,820 --> 01:25:02,840 an RF wave, it'll hit the crests of ocean waves 1522 01:25:02,840 --> 01:25:04,840 which will reflect them back to the receiver 1523 01:25:04,840 --> 01:25:06,900 and those ocean waves will also have a 1524 01:25:07,060 --> 01:25:08,220 velocity component to them 1525 01:25:08,220 --> 01:25:10,780 which will then change the phase and once you do 1526 01:25:10,780 --> 01:25:12,300 doppler integration over time 1527 01:25:12,300 --> 01:25:14,480 then you can both get range and 1528 01:25:14,960 --> 01:25:16,540 velocity information of ocean waves. 1529 01:25:17,260 --> 01:25:18,960 And then they have them 1530 01:25:18,960 --> 01:25:19,960 distributed in certain 1531 01:25:21,440 --> 01:25:22,480 ways and 1532 01:25:23,020 --> 01:25:24,320 they did something interesting which is 1533 01:25:24,840 --> 01:25:26,580 gating the transmitter 1534 01:25:26,580 --> 01:25:28,840 so if you look on an ordinary plot 1535 01:25:28,840 --> 01:25:30,300 it looks like it's just a chirp 1536 01:25:30,300 --> 01:25:32,620 but if you look very closely with the right parameters 1537 01:25:32,620 --> 01:25:34,860 you can actually see they gate the transmitter 1538 01:25:34,860 --> 01:25:36,840 on and off to give it that dead time 1539 01:25:37,060 --> 01:25:37,800 to receive a return 1540 01:25:38,840 --> 01:25:40,840 and the side effect of this is that 1541 01:25:40,840 --> 01:25:43,040 when you take an FFT you actually end up getting 1542 01:25:43,040 --> 01:25:44,780 sidebands on your main signal 1543 01:25:44,780 --> 01:25:46,760 and you might think they're returns but they're 1544 01:25:46,760 --> 01:25:48,820 just a result of doing the 1545 01:25:48,820 --> 01:25:51,100 frequency transform of this gated 1546 01:25:51,100 --> 01:25:52,780 waveform and 1547 01:25:52,780 --> 01:25:54,440 if you do the math 1548 01:25:54,900 --> 01:25:56,940 they're like millions of kilometers away in terms 1549 01:25:56,940 --> 01:25:58,840 of range and so the stuff that you want to see 1550 01:25:58,840 --> 01:26:00,020 is really really close in. 1551 01:26:01,680 --> 01:26:02,900 So that's what it looks like 1552 01:26:02,900 --> 01:26:04,580 and you've got your main chirp and 1553 01:26:04,580 --> 01:26:07,000 return hidden in the middle and those 1554 01:26:07,060 --> 01:26:08,960 symmetric lines going out 1555 01:26:08,960 --> 01:26:10,840 are the 1556 01:26:10,840 --> 01:26:12,660 AM sidebands that you can forget about. 1557 01:26:12,940 --> 01:26:14,740 So I showed this before 1558 01:26:15,280 --> 01:26:17,040 there are a bunch of HF 1559 01:26:17,040 --> 01:26:18,480 CODAR stations running on the 1560 01:26:18,840 --> 01:26:20,760 spectrum all the time so you can pick any one of them 1561 01:26:20,760 --> 01:26:22,980 I basically talked about all that 1562 01:26:24,180 --> 01:26:25,140 and a shout out 1563 01:26:25,140 --> 01:26:26,680 again to Peter Bellings and 1564 01:26:26,680 --> 01:26:28,940 Mo Wheatley, Iris Space SpectraView 1565 01:26:28,940 --> 01:26:30,640 actually Peter made these 1566 01:26:30,640 --> 01:26:32,960 Vivaldi antennas, really cool if you want to check them out 1567 01:26:33,480 --> 01:26:34,260 after the talk 1568 01:26:34,260 --> 01:26:35,760 and they've used 1569 01:26:37,060 --> 01:26:38,800 SpectraView and his SDRs 1570 01:26:38,800 --> 01:26:40,120 to produce these amazing plots 1571 01:26:40,120 --> 01:26:42,860 where you're not actually looking at the ocean returns 1572 01:26:42,860 --> 01:26:44,760 anymore, you're looking at the returns 1573 01:26:44,760 --> 01:26:46,820 of the ionosphere because it's HF 1574 01:26:46,820 --> 01:26:47,560 and will still 1575 01:26:48,760 --> 01:26:50,380 travel all the way up to the ionosphere 1576 01:26:50,380 --> 01:26:52,020 and come back on a return 1577 01:26:52,480 --> 01:26:54,500 and then this is one of 1578 01:26:55,140 --> 01:26:56,220 Iris Space's tweets 1579 01:26:57,880 --> 01:26:58,940 really really cool stuff 1580 01:26:59,580 --> 01:27:01,140 and then this is in SpectraView 1581 01:27:01,140 --> 01:27:02,960 producing on the plot so in this way you can 1582 01:27:02,960 --> 01:27:04,700 use the signal in an unintended 1583 01:27:04,700 --> 01:27:07,040 way to look at natural phenomena 1584 01:27:07,060 --> 01:27:08,780 that are going around the earth 1585 01:27:08,780 --> 01:27:10,660 and another 1586 01:27:11,360 --> 01:27:13,120 very very amazing 1587 01:27:13,120 --> 01:27:14,300 SDR guy, Juha 1588 01:27:15,560 --> 01:27:16,120 Vierian 1589 01:27:17,920 --> 01:27:19,000 he's done incredible 1590 01:27:19,000 --> 01:27:21,240 stuff, he's used this kind of 1591 01:27:21,240 --> 01:27:22,980 UHF radar to map 1592 01:27:22,980 --> 01:27:24,600 the surface of the moon 1593 01:27:24,600 --> 01:27:27,100 amazing paper, he's done something 1594 01:27:27,100 --> 01:27:28,420 really cool stuff with ionosons 1595 01:27:29,060 --> 01:27:30,800 I've tried my hand at this 1596 01:27:30,800 --> 01:27:33,260 and so you also get those multiple returns 1597 01:27:33,860 --> 01:27:35,340 this is sort of frequency over time 1598 01:27:35,340 --> 01:27:37,040 as an ionoson sweeps the ionosphere 1599 01:27:37,060 --> 01:27:37,880 across the entire HF spectrum 1600 01:27:37,880 --> 01:27:39,820 you can similarly de-chirp it 1601 01:27:39,820 --> 01:27:40,840 because it's just a chirp 1602 01:27:40,840 --> 01:27:43,160 and then get these multiple reflections 1603 01:27:43,160 --> 01:27:44,020 from the ionosphere 1604 01:27:46,280 --> 01:27:48,560 we went out hiking 1605 01:27:49,320 --> 01:27:49,880 and 1606 01:27:50,820 --> 01:27:52,440 I thought after the hike 1607 01:27:53,760 --> 01:27:54,700 my wife 1608 01:27:54,700 --> 01:27:56,480 was very kind and she just 1609 01:27:56,480 --> 01:27:57,640 read her book in the car 1610 01:27:57,640 --> 01:27:59,420 I set my laptop up in the boot 1611 01:27:59,420 --> 01:28:02,060 and received Kodar 1612 01:28:02,060 --> 01:28:03,260 from around that area 1613 01:28:03,260 --> 01:28:06,120 you may recall me showing this previously 1614 01:28:07,060 --> 01:28:07,140 so this is the 1615 01:28:07,780 --> 01:28:09,000 x-axis is time 1616 01:28:10,100 --> 01:28:11,260 y-axis is frequency 1617 01:28:11,260 --> 01:28:12,960 and so this is the Kodar over time 1618 01:28:12,960 --> 01:28:14,560 and you can see the AM side bands again 1619 01:28:14,560 --> 01:28:16,800 and there's some information hidden in there 1620 01:28:16,800 --> 01:28:17,920 we're only interested in the center one 1621 01:28:17,920 --> 01:28:19,140 if you zoom in 1622 01:28:19,820 --> 01:28:22,700 in this case I don't think I had a GPS DO 1623 01:28:22,700 --> 01:28:24,240 they're GPS disciplines 1624 01:28:24,240 --> 01:28:25,400 so you want to have a GPS 2 1625 01:28:25,400 --> 01:28:27,040 so that the phase information is correct 1626 01:28:27,040 --> 01:28:29,120 because remember if you're running your interleaver 1627 01:28:29,120 --> 01:28:29,920 and the doppler processing 1628 01:28:29,920 --> 01:28:32,320 you want to make sure everything is perfectly aligned and stable 1629 01:28:37,300 --> 01:28:38,740 so there's something going on there 1630 01:28:38,740 --> 01:28:39,380 I didn't know where it was 1631 01:28:40,580 --> 01:28:41,420 again you know 1632 01:28:41,420 --> 01:28:44,420 that's range information effectively in the middle 1633 01:28:44,420 --> 01:28:46,740 so you're getting returns somehow 1634 01:28:47,440 --> 01:28:48,820 and then with Ian Buckley 1635 01:28:48,820 --> 01:28:50,380 we went out one night and set up 1636 01:28:50,380 --> 01:28:52,460 and did some captures with a GPS DO 1637 01:28:53,360 --> 01:28:53,760 and 1638 01:28:55,180 --> 01:28:56,760 you know we had a long wire set up 1639 01:28:56,760 --> 01:28:57,960 and a custom made dipole 1640 01:28:57,960 --> 01:28:59,280 I'm going to show you a video here 1641 01:28:59,280 --> 01:29:02,240 this is again same kind of output from GNU Radio 1642 01:29:02,240 --> 01:29:03,480 using that same plotting thing 1643 01:29:03,480 --> 01:29:06,720 but it's a modified SEL sync but also outputs 1644 01:29:07,060 --> 01:29:07,520 a series of bitmaps 1645 01:29:08,620 --> 01:29:11,100 and so this is the same 1646 01:29:11,100 --> 01:29:12,920 everything that I've spoken about so far 1647 01:29:12,920 --> 01:29:14,180 exactly the same process 1648 01:29:14,180 --> 01:29:16,500 but applied to the HF CODA 1649 01:29:17,140 --> 01:29:19,540 returns that I just received on my SDR 1650 01:29:19,540 --> 01:29:21,080 now the disclaimer is 1651 01:29:21,080 --> 01:29:23,360 I have no idea exactly what we're looking at 1652 01:29:23,360 --> 01:29:25,100 I mean obviously there's range and velocity 1653 01:29:25,100 --> 01:29:25,880 information in there 1654 01:29:25,880 --> 01:29:28,280 and you can see that there's some cool stuff happening 1655 01:29:28,280 --> 01:29:29,320 like there are these 1656 01:29:30,240 --> 01:29:31,280 returns here 1657 01:29:31,280 --> 01:29:34,840 and in terms of velocity which is on the y-axis 1658 01:29:34,840 --> 01:29:36,100 things are moving 1659 01:29:37,060 --> 01:29:38,060 direction away and toward 1660 01:29:39,000 --> 01:29:40,040 the receiver 1661 01:29:40,040 --> 01:29:42,840 so there's stuff happening and there are weaker 1662 01:29:42,840 --> 01:29:43,800 responses out there 1663 01:29:44,380 --> 01:29:47,020 I don't know whether this is purely from the ocean waves 1664 01:29:47,020 --> 01:29:48,280 or it's purely from the ionosphere 1665 01:29:48,280 --> 01:29:50,960 I meant to do the calculations but I didn't get a chance 1666 01:29:50,960 --> 01:29:52,300 if you know 1667 01:29:52,900 --> 01:29:54,380 what's contributing to this 1668 01:29:55,060 --> 01:29:56,220 I'd be really curious 1669 01:29:57,020 --> 01:29:58,780 but you know you can basically 1670 01:29:58,780 --> 01:30:00,600 take the parameters of the radar system and calculate 1671 01:30:00,600 --> 01:30:02,440 how far those returns are 1672 01:30:03,040 --> 01:30:04,160 and what the implications are 1673 01:30:04,160 --> 01:30:06,820 and you know it's this information that they 1674 01:30:07,060 --> 01:30:07,760 take in the CODA system 1675 01:30:07,760 --> 01:30:11,080 and then map to figuring out 1676 01:30:11,080 --> 01:30:11,960 the ocean currents 1677 01:30:11,960 --> 01:30:14,340 from information gathered from multiple points 1678 01:30:14,340 --> 01:30:15,420 like you saw on that map before 1679 01:30:15,420 --> 01:30:17,740 so you can generate cool plots 1680 01:30:17,740 --> 01:30:19,560 the last thing I want to show you is 1681 01:30:19,560 --> 01:30:21,580 the television version with airplanes 1682 01:30:22,140 --> 01:30:24,240 so this is using passive radar again 1683 01:30:24,240 --> 01:30:26,520 so with CODA I was using someone else's signal 1684 01:30:26,840 --> 01:30:28,060 in this case I'm using 1685 01:30:28,060 --> 01:30:31,560 digital ATSC terrestrial TV signal 1686 01:30:31,560 --> 01:30:33,040 and remember 1687 01:30:33,740 --> 01:30:35,280 like I said with the CHIRP 1688 01:30:35,280 --> 01:30:37,040 if you have a fixed thing that you're looking at 1689 01:30:37,060 --> 01:30:38,380 and you want to run through your filter 1690 01:30:39,060 --> 01:30:40,960 in the case of ATSC 1691 01:30:40,960 --> 01:30:41,840 happily 1692 01:30:41,840 --> 01:30:44,600 in the middle between picture information 1693 01:30:44,600 --> 01:30:47,120 there is this synchronization sequence 1694 01:30:47,120 --> 01:30:48,960 of a fixed length and it's documented 1695 01:30:48,960 --> 01:30:50,980 so this now becomes 1696 01:30:50,980 --> 01:30:52,440 the filter 1697 01:30:52,900 --> 01:30:54,960 not FMCW CHIRP anymore 1698 01:30:54,960 --> 01:30:56,800 but the standards based 1699 01:30:58,080 --> 01:30:59,200 synchronization sequence 1700 01:30:59,200 --> 01:31:00,220 for ATSC 1701 01:31:00,220 --> 01:31:03,060 that we end up filtering and correlating on 1702 01:31:03,980 --> 01:31:04,960 and this is 1703 01:31:04,960 --> 01:31:07,040 in all TV signals and what's available 1704 01:31:07,060 --> 01:31:08,780 what's nice is they use incredibly powerful 1705 01:31:08,780 --> 01:31:10,120 transmitters that'll 1706 01:31:11,060 --> 01:31:12,120 broadcast the signal 1707 01:31:12,120 --> 01:31:13,320 in a broad range 1708 01:31:14,560 --> 01:31:16,560 I had this set up first in my house 1709 01:31:16,560 --> 01:31:18,840 where I had this directional antenna pointing out to a highway 1710 01:31:19,720 --> 01:31:20,820 this is the view from 1711 01:31:20,820 --> 01:31:22,720 our place, there's the 280 highway 1712 01:31:22,720 --> 01:31:24,340 in San Francisco that runs there 1713 01:31:25,160 --> 01:31:26,660 cars are moving back and forth 1714 01:31:26,660 --> 01:31:28,740 they might end up being decent radar returns 1715 01:31:28,740 --> 01:31:30,880 and so you can see how they're moving there 1716 01:31:31,480 --> 01:31:32,840 one direction of traffic on top 1717 01:31:32,840 --> 01:31:33,640 the other on the bottom 1718 01:31:33,640 --> 01:31:35,840 they're metallic so we might get some returns 1719 01:31:38,100 --> 01:31:38,900 and that's 1720 01:31:39,820 --> 01:31:40,960 that's the receiver 1721 01:31:40,960 --> 01:31:42,880 site, the transmitter site 1722 01:31:42,880 --> 01:31:45,020 is over the hill which is nice because we don't get 1723 01:31:45,020 --> 01:31:46,200 the direct path from the transmitter 1724 01:31:46,200 --> 01:31:48,940 you get the reflections from stuff 1725 01:31:48,940 --> 01:31:51,180 that's and the direct path is attenuated 1726 01:31:51,180 --> 01:31:53,020 so this is where 1727 01:31:53,020 --> 01:31:54,760 I want to illustrate the power of Doppler processing 1728 01:31:54,760 --> 01:31:57,140 because in this case 1729 01:31:57,140 --> 01:31:59,100 Doppler and velocity is on the Y 1730 01:31:59,100 --> 01:32:00,160 and range is on the X 1731 01:32:00,660 --> 01:32:02,860 what this is doing is it's correlating that 1732 01:32:02,860 --> 01:32:05,100 known synchronization sequence in the signal 1733 01:32:05,100 --> 01:32:06,040 and then 1734 01:32:07,180 --> 01:32:08,220 that initial 1735 01:32:08,220 --> 01:32:10,600 the strongest return from 1736 01:32:10,600 --> 01:32:11,920 the filter for that 1737 01:32:11,920 --> 01:32:13,400 ends up being in the center there 1738 01:32:13,400 --> 01:32:16,320 so you can ignore everything to the left because that's all picture information 1739 01:32:16,860 --> 01:32:18,400 and then stuff that's here 1740 01:32:18,860 --> 01:32:20,920 this is basically time zero in terms of 1741 01:32:20,920 --> 01:32:21,840 the synchronization signal 1742 01:32:21,840 --> 01:32:24,700 now if we weren't doing any 1743 01:32:24,700 --> 01:32:26,680 Doppler processing, if we didn't care about velocity 1744 01:32:26,680 --> 01:32:29,040 and we only got the range information 1745 01:32:29,040 --> 01:32:30,860 look at this range line 1746 01:32:30,860 --> 01:32:31,800 the green line 1747 01:32:32,340 --> 01:32:34,340 there's nothing discernible going on there 1748 01:32:34,340 --> 01:32:36,000 you will get reflections 1749 01:32:37,060 --> 01:32:38,780 off static structures that are large 1750 01:32:38,780 --> 01:32:39,960 and will reflect a lot of the signal 1751 01:32:39,960 --> 01:32:42,480 but if you're talking about cars and aeroplanes 1752 01:32:42,480 --> 01:32:44,500 the radar cross section is so small 1753 01:32:44,930 --> 01:32:47,300 they won't be able to send any appreciable signal 1754 01:32:47,300 --> 01:32:49,040 back to that small directional antenna 1755 01:32:49,040 --> 01:32:50,620 so there's nothing there 1756 01:32:50,620 --> 01:32:52,540 once you add velocity information 1757 01:32:53,050 --> 01:32:54,520 you can see that green is 1758 01:32:54,520 --> 01:32:56,300 we go from white to red to green 1759 01:32:56,300 --> 01:32:59,340 it's the color spectrum 1760 01:32:59,340 --> 01:33:00,840 the black and the blue there 1761 01:33:01,700 --> 01:33:03,360 are basically down the other end 1762 01:33:03,360 --> 01:33:05,220 of your power range 1763 01:33:05,220 --> 01:33:06,360 still within the 1764 01:33:07,060 --> 01:33:08,300 dynamic range of your ADC 1765 01:33:08,300 --> 01:33:10,840 but it's much more easy to 1766 01:33:10,840 --> 01:33:11,500 discern stuff 1767 01:33:11,500 --> 01:33:13,240 so actually that's the target right there 1768 01:33:13,240 --> 01:33:14,240 I'll go back to the beginning 1769 01:33:14,240 --> 01:33:16,220 oh look did you see 1770 01:33:17,140 --> 01:33:18,880 that's not on my display 1771 01:33:18,880 --> 01:33:20,540 let me try that one more time 1772 01:33:21,620 --> 01:33:23,920 so at the beginning here some funky stuff happens 1773 01:33:23,920 --> 01:33:25,060 as the interleaver fills up 1774 01:33:25,060 --> 01:33:26,820 because there's still empty data in the interleaver 1775 01:33:26,820 --> 01:33:28,020 and it kind of settles 1776 01:33:29,380 --> 01:33:31,260 and just look here and you'll see 1777 01:33:31,260 --> 01:33:33,080 little spots appear 1778 01:33:33,700 --> 01:33:36,180 and I'm pretty sure they're cars on the highway 1779 01:33:37,060 --> 01:33:37,940 so that's the TV signal 1780 01:33:37,940 --> 01:33:39,040 there's another one there 1781 01:33:39,040 --> 01:33:40,440 and then they appear very briefly 1782 01:33:40,440 --> 01:33:41,920 because if you think of them like a mirror 1783 01:33:41,920 --> 01:33:44,280 you want to end up seeing the specular reflection 1784 01:33:44,280 --> 01:33:47,400 off the car and the car has to be at the right angle 1785 01:33:47,400 --> 01:33:48,560 you know the door or the windshield 1786 01:33:48,560 --> 01:33:50,560 or whatever it is has to be at the right angle 1787 01:33:51,020 --> 01:33:52,520 both with respect to my receiver 1788 01:33:52,520 --> 01:33:54,720 and the TV transmitter to produce the reflection 1789 01:33:55,840 --> 01:33:57,580 another important point here is that 1790 01:33:57,580 --> 01:33:58,780 I have a GPSDO 1791 01:33:58,780 --> 01:34:01,720 displaying the oscillator in my receiver 1792 01:34:01,720 --> 01:34:03,440 but that's still not good enough 1793 01:34:03,440 --> 01:34:04,700 there is still some phase offset 1794 01:34:07,060 --> 01:34:08,000 a series of blocks I have 1795 01:34:08,000 --> 01:34:10,180 that measure the number of samples 1796 01:34:10,180 --> 01:34:13,160 between each successive primary return 1797 01:34:13,160 --> 01:34:15,440 of that ATSC synchronization sequence 1798 01:34:15,440 --> 01:34:19,060 and there's a polyphase resampler 1799 01:34:19,060 --> 01:34:23,480 but it uses a long double ratio 1800 01:34:23,480 --> 01:34:24,220 which is 1801 01:34:24,220 --> 01:34:26,580 it's not a float, it's not a double 1802 01:34:26,580 --> 01:34:27,720 it's a long double 1803 01:34:27,720 --> 01:34:29,640 because there are so many decimal points back 1804 01:34:29,640 --> 01:34:32,180 where it has to adjust the rate 1805 01:34:32,180 --> 01:34:34,060 to be locked on exactly to the signal 1806 01:34:34,060 --> 01:34:36,460 and not have the range information wander 1807 01:34:37,320 --> 01:34:38,760 and then you have to track the phase 1808 01:34:38,760 --> 01:34:41,180 of the primary and it gets a bit messy 1809 01:34:41,180 --> 01:34:41,740 if you want to do it well 1810 01:34:41,740 --> 01:34:44,480 but you can see there's stuff going on in there 1811 01:34:45,380 --> 01:34:47,020 now to prove 1812 01:34:47,020 --> 01:34:48,660 this a little bit more with the airplanes 1813 01:34:50,160 --> 01:34:51,120 Ian and I went out 1814 01:34:51,120 --> 01:34:51,780 to this car park 1815 01:34:52,560 --> 01:34:53,720 and we parked there 1816 01:34:53,720 --> 01:34:55,780 and this is in this park here 1817 01:34:56,400 --> 01:34:57,680 which happens to be here 1818 01:34:58,120 --> 01:35:00,540 right under almost the approach path 1819 01:35:00,540 --> 01:35:02,780 for planes coming to land at San Francisco 1820 01:35:02,780 --> 01:35:04,640 so the geometry there is really nice 1821 01:35:04,640 --> 01:35:05,780 we've got a TV transmitter 1822 01:35:07,060 --> 01:35:09,080 elsewhere in the north of the bay 1823 01:35:09,080 --> 01:35:10,620 and then we're down here 1824 01:35:11,300 --> 01:35:13,300 receiving the reflections quite close 1825 01:35:13,300 --> 01:35:14,160 to the aircraft 1826 01:35:14,900 --> 01:35:16,560 and that's the kind of setup there 1827 01:35:16,560 --> 01:35:18,200 we're just using a normal TV antenna 1828 01:35:18,200 --> 01:35:19,200 plugged into the USIRP 1829 01:35:20,120 --> 01:35:23,260 and then that's the stuff going on there 1830 01:35:24,020 --> 01:35:25,180 so I've got a couple of videos 1831 01:35:25,180 --> 01:35:27,180 and we'll see some interesting things 1832 01:35:27,180 --> 01:35:28,000 so that's a plane 1833 01:35:28,000 --> 01:35:28,680 see that 1834 01:35:31,480 --> 01:35:32,720 and it's aliasing 1835 01:35:32,720 --> 01:35:34,840 because we can't control 1836 01:35:34,840 --> 01:35:36,100 the pulse repetition frequency 1837 01:35:37,060 --> 01:35:38,240 we can't control the constraints 1838 01:35:38,240 --> 01:35:39,480 of unambiguous velocity 1839 01:35:39,480 --> 01:35:41,660 because that's defined by the ATC spec 1840 01:35:42,820 --> 01:35:44,120 but you can see 1841 01:35:45,320 --> 01:35:46,260 these returns 1842 01:35:46,900 --> 01:35:47,780 that are coming off planes 1843 01:35:47,780 --> 01:35:48,660 and what's interesting is 1844 01:35:50,280 --> 01:35:51,900 in terms of range 1845 01:35:51,900 --> 01:35:53,940 these ones are actually further out 1846 01:35:53,940 --> 01:35:55,460 we wouldn't see them again 1847 01:35:55,460 --> 01:35:57,840 if we didn't do the doppler processing 1848 01:35:57,840 --> 01:35:58,960 but because we do 1849 01:35:59,760 --> 01:36:02,620 we basically ignore the zero velocity line 1850 01:36:02,620 --> 01:36:03,620 and these targets are moving 1851 01:36:03,620 --> 01:36:06,620 so they make themselves apparent on the rest of the plot 1852 01:36:07,720 --> 01:36:09,240 let me go to the next one 1853 01:36:15,560 --> 01:36:17,320 some of them are more obvious than others 1854 01:36:17,320 --> 01:36:17,980 I think they get 1855 01:36:18,660 --> 01:36:20,780 so you can see there that line 1856 01:36:20,780 --> 01:36:22,940 and the reason why it's strict like that 1857 01:36:22,940 --> 01:36:24,460 remember I'm reading out of my interleaver 1858 01:36:24,460 --> 01:36:26,120 faster than the integration period 1859 01:36:26,120 --> 01:36:29,160 so you basically end up sort of smushing together 1860 01:36:29,680 --> 01:36:30,400 smoothing together 1861 01:36:30,910 --> 01:36:32,280 one integration period with the next 1862 01:36:32,280 --> 01:36:33,960 and so you'll basically get the blending 1863 01:36:33,960 --> 01:36:35,740 of velocity information as you go 1864 01:36:40,460 --> 01:36:42,020 I haven't quite got my head around that 1865 01:36:43,860 --> 01:36:46,640 it's some artifact of the system 1866 01:36:46,640 --> 01:36:47,820 oh look there's something there 1867 01:36:49,820 --> 01:36:50,940 yeah I have to think about that 1868 01:36:50,940 --> 01:36:51,560 a bit more 1869 01:36:51,560 --> 01:36:52,700 it wasn't nearly obvious to me 1870 01:36:53,640 --> 01:36:54,440 why that's there 1871 01:36:55,720 --> 01:36:56,840 any ideas from anyone? 1872 01:37:00,300 --> 01:37:01,880 yeah so there's a return down there 1873 01:37:01,880 --> 01:37:03,200 I don't know 1874 01:37:03,200 --> 01:37:04,500 I don't know 1875 01:37:04,500 --> 01:37:05,000 I don't know 1876 01:37:05,000 --> 01:37:05,940 I don't know 1877 01:37:05,940 --> 01:37:06,380 I don't know 1878 01:37:06,380 --> 01:37:06,680 I don't know 1879 01:37:07,340 --> 01:37:08,200 I don't know 1880 01:37:08,200 --> 01:37:10,500 some of them are really obvious 1881 01:37:10,500 --> 01:37:12,120 what was interesting is that 1882 01:37:12,120 --> 01:37:13,980 the planes that are overhead are obviously 1883 01:37:13,980 --> 01:37:14,820 going to be very close 1884 01:37:14,820 --> 01:37:17,800 I think one pixel here is 30 meters 1885 01:37:18,820 --> 01:37:19,580 somewhere around there 1886 01:37:19,580 --> 01:37:20,300 or maybe 40 meters 1887 01:37:21,600 --> 01:37:24,760 and so they all end up being quite close 1888 01:37:24,760 --> 01:37:26,480 especially as they're flying in overhead 1889 01:37:27,060 --> 01:37:28,880 but what really blew my mind later 1890 01:37:28,880 --> 01:37:29,300 is that 1891 01:37:29,300 --> 01:37:31,760 I can't remember which of these videos it is unfortunately 1892 01:37:31,760 --> 01:37:32,780 it might just appear 1893 01:37:32,780 --> 01:37:35,020 but there are dots that appeared further out 1894 01:37:37,160 --> 01:37:38,500 with slowly changing velocity. 1895 01:37:38,880 --> 01:37:40,640 And as it turned out, we looked over to the bay, 1896 01:37:40,740 --> 01:37:41,740 and of course there's San Francisco, 1897 01:37:41,940 --> 01:37:43,380 but what's on the other side of the bay? 1898 01:37:44,220 --> 01:37:45,580 Oakland is on the other side of the bay. 1899 01:37:45,660 --> 01:37:48,360 And there's a plane that was just smoothly cruising 1900 01:37:48,360 --> 01:37:50,700 into land at Oakland, but because of the geometry, 1901 01:37:51,820 --> 01:37:54,240 it was headed in a slightly different direction 1902 01:37:54,240 --> 01:37:57,560 than our planes coming into SFO, 1903 01:37:57,740 --> 01:38:00,080 and so it appeared differently on the plot, 1904 01:38:00,140 --> 01:38:01,660 both in terms of velocity and range. 1905 01:38:04,520 --> 01:38:06,400 Oh yeah, so there's something out there. 1906 01:38:12,740 --> 01:38:16,480 Yeah, so any questions so far? 1907 01:38:19,600 --> 01:38:21,240 So you saw that streak there. 1908 01:38:23,000 --> 01:38:25,100 I think this one might be a decent one. 1909 01:38:30,700 --> 01:38:31,140 Question? 1910 01:38:31,360 --> 01:38:34,420 If your plane's spinning on the same SDR, 1911 01:38:34,680 --> 01:38:36,080 do you not need a DCS? 1912 01:38:36,160 --> 01:38:36,860 Is that all there? 1913 01:38:37,840 --> 01:38:38,460 Correct, yeah. 1914 01:38:38,580 --> 01:38:39,960 So if you're transmitting and receiving 1915 01:38:39,960 --> 01:38:40,980 from the same piece of hardware, 1916 01:38:42,060 --> 01:38:43,540 everything's inherently going to be synchronized, 1917 01:38:43,560 --> 01:38:45,480 so you don't need to worry about using a GPS DO. 1918 01:38:46,300 --> 01:38:48,360 And I'll show you that if you want to stick around. 1919 01:38:54,180 --> 01:39:01,860 You mean that vertical line there? 1920 01:39:02,940 --> 01:39:03,980 So I think at the moment, 1921 01:39:05,320 --> 01:39:06,740 because there's a lot of artifacts happen, 1922 01:39:07,060 --> 01:39:08,940 during that disciplining process, 1923 01:39:09,200 --> 01:39:10,260 not the GPS DO one, 1924 01:39:10,340 --> 01:39:11,480 it's the other one that I talked about 1925 01:39:11,480 --> 01:39:13,220 where it measures the number of samples 1926 01:39:13,220 --> 01:39:15,580 between two of the primary returns 1927 01:39:15,580 --> 01:39:16,620 and it measures the phase. 1928 01:39:16,740 --> 01:39:18,080 There's some additional processing going on there, 1929 01:39:18,160 --> 01:39:20,280 and as it's doing that very, very fine adjustment 1930 01:39:20,280 --> 01:39:21,160 of the resampling, 1931 01:39:21,700 --> 01:39:24,500 it produces all these artifacts in the FFTs, 1932 01:39:24,500 --> 01:39:27,600 and that's why you get crap in there. 1933 01:39:29,660 --> 01:39:30,460 Maybe, question? 1934 01:39:30,640 --> 01:39:32,800 What's the frequency of the FFTs? 1935 01:39:34,360 --> 01:39:36,920 So I don't remember the exact frequency of this television, 1936 01:39:36,920 --> 01:39:39,640 but it's, you know, there are a plethora of stations 1937 01:39:39,640 --> 01:39:41,500 throughout the UHF band. 1938 01:39:42,720 --> 01:39:44,340 And then, based on the frequency, 1939 01:39:44,540 --> 01:39:47,660 that has an implication on how the radar cross-section will look, 1940 01:39:47,740 --> 01:39:49,940 so everything is interrelated there, 1941 01:39:50,040 --> 01:39:51,460 and here we're constrained, obviously, 1942 01:39:51,520 --> 01:39:53,520 by the station frequency and the spec. 1943 01:39:55,800 --> 01:39:58,320 So anyway, that brings me to the end of the talk. 1944 01:39:58,520 --> 01:40:00,880 If you want to hang around, I'll show you the SDR version. 1945 01:40:01,420 --> 01:40:03,180 If you want to hang around now, I'll show you. 1946 01:40:03,220 --> 01:40:04,080 It'll just take a couple of minutes. 1947 01:40:04,220 --> 01:40:05,600 Or you can clap now and head to lunch. 1948 01:40:05,660 --> 01:40:06,340 Totally up to you. 1949 01:40:07,420 --> 01:40:08,440 All right, I'll do it quickly. 1950 01:40:09,560 --> 01:40:12,100 So here, we've got, 1951 01:40:13,480 --> 01:40:14,780 let me find it here. 1952 01:40:17,140 --> 01:40:18,560 Oh, one thing I want to show you quickly. 1953 01:40:18,780 --> 01:40:23,680 This is the live processing of the coder, right? 1954 01:40:23,740 --> 01:40:25,680 So the HF, HF1. 1955 01:40:27,560 --> 01:40:29,780 So this should look familiar from the video. 1956 01:40:31,780 --> 01:40:33,140 What I wanted to show you here is, 1957 01:40:33,180 --> 01:40:35,360 in this plot, you know how I was talking about 1958 01:40:35,360 --> 01:40:36,540 usually when we take FFTs, 1959 01:40:36,920 --> 01:40:37,520 we always take the magnitude 1960 01:40:37,520 --> 01:40:39,280 and we always forget the phase information? 1961 01:40:39,740 --> 01:40:42,600 And this plot is showing you phase information only. 1962 01:40:43,000 --> 01:40:44,700 So consider it like a waterfall, 1963 01:40:44,900 --> 01:40:47,280 but instead of showing the magnitude, it's phase. 1964 01:40:47,620 --> 01:40:50,400 And remember how we had those interesting shapes coming up 1965 01:40:50,400 --> 01:40:51,980 and, you know, they're a strong return, 1966 01:40:52,220 --> 01:40:53,840 so there's going to be some information there? 1967 01:40:54,140 --> 01:40:55,580 This looks like noise, 1968 01:40:55,800 --> 01:40:58,600 because there's nothing strong there. 1969 01:40:58,780 --> 01:41:01,700 But amazingly, you can see this phase structure 1970 01:41:02,400 --> 01:41:04,920 in these range bins in the return. 1971 01:41:05,360 --> 01:41:06,900 So, you know, it's a good thing. 1972 01:41:07,620 --> 01:41:10,240 I haven't, I'd never looked at a phase plot like that before, 1973 01:41:10,380 --> 01:41:12,580 a phase waterfall, and it kind of looks cool. 1974 01:41:16,000 --> 01:41:16,440 Yeah. 1975 01:41:16,900 --> 01:41:19,680 So let me find the, I think it's this one. 1976 01:41:22,040 --> 01:41:23,320 I think it's this one. 1977 01:41:25,620 --> 01:41:26,280 Try this. 1978 01:41:26,880 --> 01:41:28,680 So this is two mega samples per second. 1979 01:41:29,480 --> 01:41:30,740 Oh, let me show you that, 1980 01:41:35,440 --> 01:41:36,320 that workbook. 1981 01:41:42,320 --> 01:41:46,740 No, no, no, there's another thing. 1982 01:41:46,740 --> 01:41:47,280 I watch it all the time. 1983 01:41:47,280 --> 01:41:47,920 Are there any movies in it? 1984 01:41:48,000 --> 01:41:56,160 Ah, we've got a little girl band. 1985 01:42:00,860 --> 01:42:01,320 Right. 1986 01:42:01,320 --> 01:42:01,620 But it's a two mega sample, 1987 01:42:02,680 --> 01:42:03,700 but it's fairly expensive. 1988 01:42:03,700 --> 01:42:05,160 It's, I think there's a 90 percent variety 1989 01:42:05,960 --> 01:42:06,900 What you can see is three美 oops, 1990 01:42:06,900 --> 01:42:11,460 You put in your pulse repetition frequency, you know, you basically can plug in anything 1991 01:42:11,850 --> 01:42:15,240 you want into the equation and then it will output all this information. 1992 01:42:15,620 --> 01:42:18,560 So for a given frequency, it gives you the wavelength, the range resolution. 1993 01:42:19,040 --> 01:42:21,740 For a given pulse repetition frequency, it will give you pulse duration. 1994 01:42:22,680 --> 01:42:27,140 Given bandwidth, it will give you an ambiguous range, an ambiguous Doppler, an ambiguous 1995 01:42:27,140 --> 01:42:33,380 velocity and then, you know, you can figure out the scales on all of these pictures from 1996 01:42:33,380 --> 01:42:33,860 that. 1997 01:42:36,060 --> 01:42:37,380 Let's see what's happening here. 1998 01:42:39,000 --> 01:42:40,160 Oh, it's running, cool. 1999 01:42:42,580 --> 01:42:50,620 So what I've got is I've got this flow graph here and then I've got the plot here. 2000 01:42:52,720 --> 01:42:57,100 Nothing is showing which is a little bit, oh, no, of course, nothing is showing. 2001 01:43:00,020 --> 01:43:03,620 Skyler correctly points out, thank you, another audience contribution. 2002 01:43:03,620 --> 01:43:08,700 The default configuration here is everything is off because I don't want to blow anything 2003 01:43:08,700 --> 01:43:08,920 up. 2004 01:43:09,940 --> 01:43:12,140 So, and I've got these two directional antennas here. 2005 01:43:13,960 --> 01:43:15,780 One is the transmitter and one is the receiver. 2006 01:43:16,060 --> 01:43:24,060 So I can put them next to each other and I'm just going to do a very quick setup and put 2007 01:43:24,060 --> 01:43:24,860 my bag in between. 2008 01:43:25,240 --> 01:43:27,120 I didn't, hopefully that won't affect things. 2009 01:43:27,820 --> 01:43:32,640 And I'm using a B200 Mini here in a custom 3D-printed case. 2010 01:43:33,160 --> 01:43:33,600 So I'm going to put it here. 2011 01:43:33,600 --> 01:43:38,700 And let me try doing this. 2012 01:43:39,660 --> 01:43:42,440 This is really arbitrary. 2013 01:43:43,880 --> 01:43:44,960 Something like that. 2014 01:43:45,760 --> 01:43:46,340 Okay. 2015 01:43:47,360 --> 01:43:49,300 And now, no guarantees. 2016 01:43:50,260 --> 01:43:55,200 It works also better if you're using separate transmit-receive USURP. 2017 01:43:55,300 --> 01:43:59,480 So, for example, I did it with a USURP with a MIMO cable so you can synchronize the clocks, 2018 01:43:59,660 --> 01:44:03,380 but the actual boards are different and they won't interfere with them. 2019 01:44:03,440 --> 01:44:03,580 Okay. 2020 01:44:05,540 --> 01:44:08,100 So, I'm going to do a simple setup. 2021 01:44:08,100 --> 01:44:08,600 I'm going to set the gain. 2022 01:44:08,980 --> 01:44:10,160 I think I use about 55. 2023 01:44:11,140 --> 01:44:12,940 Same gain I'll go, I don't know, 33. 2024 01:44:13,640 --> 01:44:18,720 And then I'm going to set my, sorry, I can bring it over here. 2025 01:44:20,460 --> 01:44:22,380 My amplitude of the signal of .7. 2026 01:44:22,800 --> 01:44:27,500 And what we've got now is, hopefully this is familiar to you, the spectrum is being 2027 01:44:27,500 --> 01:44:27,900 rotated. 2028 01:44:28,020 --> 01:44:30,220 So this is the FFT of the output of the de-chirping. 2029 01:44:30,380 --> 01:44:33,580 And we've got the tone there, which is what the signal is going to be. 2030 01:44:33,580 --> 01:44:38,260 The system is hearing, it's the DC tone, it's hearing itself, basically. 2031 01:44:38,660 --> 01:44:43,280 Unfortunately, that's really high, and it shouldn't be that high, because we won't be 2032 01:44:43,280 --> 01:44:46,220 able to resolve anything otherwise. 2033 01:44:51,040 --> 01:44:51,600 Okay. 2034 01:44:58,320 --> 01:45:00,080 It might be... 2035 01:45:02,940 --> 01:45:04,060 Too much here. 2036 01:45:04,260 --> 01:45:05,280 Oh, there it is, see? 2037 01:45:05,800 --> 01:45:08,600 See how we've got the center line, which is actually offset? 2038 01:45:09,880 --> 01:45:12,080 I haven't figured out why that's offset yet. 2039 01:45:13,180 --> 01:45:20,640 But as I move my laptop toward and away from the receiver, you can see that even though 2040 01:45:20,640 --> 01:45:24,260 it's in the zero range and it's still overloading, you still get velocity information. 2041 01:45:26,140 --> 01:45:29,660 And so that's, you know, that's basically how RF... 2042 01:45:30,140 --> 01:45:30,780 Radars work. 2043 01:45:31,380 --> 01:45:33,660 Now, let's see if... 2044 01:45:36,380 --> 01:45:37,820 Because I promised you music. 2045 01:45:38,760 --> 01:45:39,200 Music. 2046 01:45:39,500 --> 01:45:39,940 Music. 2047 01:45:41,400 --> 01:45:42,840 Is it actually... 2048 01:45:43,380 --> 01:45:47,520 Yeah, let me plug in the speaker there. 2049 01:45:47,660 --> 01:45:55,780 So it's a little bit finicky in that I need to do that, and then I need to change the 2050 01:45:55,780 --> 01:45:59,040 offset here so that it ends up going into the zero bin. 2051 01:46:00,080 --> 01:46:02,160 Because that's the one that's being transformed. 2052 01:46:11,020 --> 01:46:13,020 Do I have the audio actually on? 2053 01:46:16,480 --> 01:46:17,080 I do. 2054 01:46:17,640 --> 01:46:18,280 Sorry, what was that? 2055 01:46:18,700 --> 01:46:19,840 Your speaker volume is down. 2056 01:46:19,940 --> 01:46:20,720 My speaker volume is down. 2057 01:46:22,480 --> 01:46:23,100 There we go. 2058 01:46:23,620 --> 01:46:24,340 Thank you. 2059 01:46:24,340 --> 01:46:26,040 Another audience participation night. 2060 01:46:26,300 --> 01:46:27,740 What would I do without you all? 2061 01:46:28,680 --> 01:46:29,120 Thank you. 2062 01:46:30,080 --> 01:46:30,380 Thank you. 2063 01:46:30,500 --> 01:46:30,660 Thank you. 2064 01:46:30,660 --> 01:46:30,940 Thank you.