 So right I think I should start Hi, my name is Sebastian Müller I'm a student at KIT in Karlsruhe, Germany Analysis it's also about Automated signal analysis automated signal reception or if you want to call it that way signal intelligence And well, what are first of all reasons for doing that stuff? So first off you may want to do spectrum monitoring for example in Germany There's the Bundesnet second tour which has to make sure there's no misuse of the spectrum and that everyone stays in their bands and For this purpose they need to to identify where signals are and what signals are or where they belong to Second it's super cool if you can explore real-world signals Especially when you're a beginner so For example, if you want to have a look at an LTE signal and have a look at the frame and where are the pilots and so on It's very hard to do that if you are not like an expert in that topic so it would be very cool if everything can be automated and then Beginners can figure out why signals work and why are the parameters chosen that way and yeah Why they may be wouldn't work otherwise Also you can do live modulation simplest example would be if you want to listen to a local radio station You you're actually doing live demodulation and you can do batch processing of several signals. So You don't have to look at one signal because everything is happening in the background automated There can be several signal chains that deal each with one signal So, okay, what what do we have to do if we want to receive unknown signals? First off we have to detect them. So the question is where is the signal located in the spectrum and what's it bent with? If we have done that we need to mix it down into complex baseband and then we would do something like filter it decimated Yeah to to to be able to handle the amount of samples and next you you would start like an iterative cycle of analysis and then Yeah, you're doing Step to demodulation then analyze again some parameters and so on and if you did that some some time You will be able to demodulate the signal and if it's encrypted you also have to decrypt it So these are all the tasks that are possible So what was to workflow before this is like I did it maybe you you have you were a bit smarter than me But I did something like this So first off there is a usrp source. So I just received the signal and dropped it in a Qt sync or frequency sync so I just had a look at the spectrum and Look and search where is energy located because normally energy means there could be a signal If I have found what I have been looking for I would yeah, yeah assume or estimate by thumb the center frequency and the bandwidth and I would try to remember that and drop in the next block which would be the frequency translating FIR filter this block does everything Including the the down mixing the decimation and the filtering in the baseband So I would enter my parameters here, which I found out While looking at the sink the frequency sink and I would just write the samples away to file Then I would do some analysis which I have done in mud lab I have to admit and for example, there are other tools like python skypie or in spectrum and and Yeah, I would I would try to estimate all the Parameters that would be necessary to finally demodulate the signal and for demodulation, I would use radio or yeah other tools like mud lab or Whatever there is you name it So what this flowcraft is not that cool. Why is it not that cool? First off you have often to stop and adjust the flowcraft like you have to start it have a look Estimate some things stop it again drop in and more blocks and then fire it up again and yeah All do this all in a in a cycle You would often or I at least would often try to estimate by thumb all the parameters like okay this could be two point four five gigahertz. I don't know and Hope that it will work out and Yeah, it's not not possible to do any real-time analysis with this Because you always have to stop the flowcraft Also you you need much expertise to perform these steps and it's not possible for a beginner like a one-click solution So you you have to really know what you are doing if you Yeah, try it that way So and this is exactly where the inspector comes in and it tries to make these tasks I just mentioned more easy and I will now go through the components or the blocks of cheer inspector and Tell you what they can do. So first off we talked about detection And If you want to detect a signal normally we do energy detection like okay We assume when there's energy in the spectrum there could be a signal and this block Can do this for one or more signals and it works either by setting a threshold with the block parameter Or there's also an automatic Algorithm that tries to find power jumps in the PSD and Interbets them as signal edges There's also functionalities to suppress narrow signals which which helps to avoid false detections and the output of this block is First the estimated PSD of the input signal and the second one as you see this is a message port It passes the information about the center frequency and the bandwidth of the detected signals So next what you would do is you want to visualize what you have estimated so there is the Qt greasing For that and it just takes the estimated PSD from the plug before and plot that in a Qt window also it takes the bandwidths and center Center frequencies of the detected signals and marks them with edges yeah, and next to to the markers of each signal there are also the properties plotted like Center frequency and bandwidth and there can also be more parameters that I will show on the next slide and This block also enables manual selection So if the automatic signal detection messes up because you have a bad SNR for instance You can you can do a track and drop selection here and This is a screenshot of how the the GUI looks like so what we see here are three signals in the spectrum and As you see the one on the left and the one on the right They just have their center frequency and bandwidth plotted next to them The one in the middle has more text. So what's up there? I don't know if you can read it in the in the back line so this is an OFDM signal and There is an analysis block that feeds the results back to this GUI block and The the results get appended to the text Printed next to the markers. So what we can reach here is the center frequency the bandwidth But also OFDM of the M specific parameters like subcarrier spacing number of subcarriers cyclic prefix length so Now when we have detected the signals that we want to use We have to do the down mixing and decimation and filtering and this is exactly what the signal separator block does It calculates an FIR filter for every detected signal and applies that in complex baseband or you can Provide a JSON file with pre-calculated tabs. So to save CPU usage during runtime The output is a bit complex here. So as you see it's again a message port And its format is like first of a header that contains the signal information like signal number Center frequency and bandwidth and then what follows are the complex samples of the signal Now if we want to protect process the signal further We have a problem because there are nearly no blocks that would take my my Message format here that I chose. So there is the signal extractor what it does is just It extracts the complex samples of one signal out of this message and passes them Again as complex stream as Moskner radio blocks takes complex stream samples Yeah, right. Yeah, and also the the sample rate of a signal is not known during runtime because it tries to Sample following NICWIS criteria. So there is It depends on the bandwidth of the signal What's the sampling rate of the of the signal after the signal separator? And there are applications where you need to know your sample rate exactly and therefore this block also has the Possibility to resample the signal to a well-defined sample rate So the the second bigger topic I dealt with is OFDM and There I tried to to write an OFDM estimator parameter estimator We have seen the results of this block earlier in the in the GUI screenshot and What it does it estimates the subcarrier spacing the symbol time subcarrier number and cyclic prefix length of an OFDM signal and Yeah, as I said the results can be fed back to the QT GUI inspector sync and will be plotted next to the signal Also, there's an OFDM synchronization block. This is Surprise it performs a frequency and timing synchronization for OFDM signals and We have also some modulation classification ability This was not done by me, but by Christopher Richardson who was a summer of code and space student Last year and he dealt with yeah automatic Modulation classification using tensorflow So and now the cows has demo time. So what I want to do now is Show you a typical cheer inspector flow graph Where we try to to listen to a local radio station. So I have my USRP right here and These are just the blocks I just introduced to you So here's the USRP source to talk to my USRP here This can be exchanged by by any other source that provides a signal and then here's the signal detector the the GUI inspector sync and The results from here will be fed back to the signal separator where all the mixing and down sampling and Filtering will be performed Since we are only listening to one signal We will extract it here and pass its samples as a complex dream and what follows then is just a basic FM demodulation chain. So this thing right here is Completely can radio. So this was here before and these blocks down here. This is all cheer inspector. So Let's fire it up Okay, it's flashing my FPGA. So I maybe should have done this before Should only take a few seconds So now we see here Actually now I have enabled manual detection because I assume the the SNR in here is too bad to do anything automatic as you see It's pretty noisy So we have one signal here and I already have seen at 100 megahertz there is a local radio station here in prison so You can try to listen to that and I don't think it's it's Quite good printed on the beamer. There are signal at just right here and Right here and I can track and drop them to adjust the bandwidth of the signal So let's try this There's some kind of sweet spot for the bandwidth Maybe add some more gain. Okay only noise. Oh, no Okay, I Didn't think the SNR would be too bad here cause at my place it worked, so let's Try this one more time Yeah, I don't know but we can try that. Yeah, you know Though I don't know maybe you can hear it a bit There is some music in the background, but it's super noisy. Okay a Pity. Yeah, you can hear there's some music maybe Okay, okay For the audience and in the stream Yeah, okay So, okay, yeah, and that's it. Thank you for your attention and Yeah, we had it earlier about Participation and getting started and crew to radio and I think Google Summer of Code is a super thing to to get started with like I did Okay, any questions Martin yes Yes, I think okay. I know what you what you want to point out. So Yeah, at my university. We had the I triple E signal intelligence challenge and and which Martin did bring to life And yeah it's all about detecting Signals in a in a known band, but you don't know anything about them So you have to do the things I just mentioned like detect as I said started with mud lab and and in spectrum and such things and Yeah, that's that's what's got me into this this kind of topic and that's why I also applied for GSOC last year, right? Yeah Yeah, right Yeah, it's so basically there's just an algorithm implemented there from a published paper and And Let me think if I can recall what it really does so Yeah, right. It's a cycle stationary features and If you if you do a fixed length correlation over the time signal you can find out the The use use symbol time, I think and then you can do the Cyclo stationary analysis so in frequency domain and in time shift domain to to find the The cyclic prefix length. Yeah, so it's just two peak searches in these two directions Concerning which which the OFDM it's a It's a number of samples that you have to capture and it's it's about I think in the Area of seven thousand samples right, yeah Right, if the SNR is bad estimation will be better, so of course Yeah Yeah, but I have tested it and Below seven thousand samples. There were no reliable results available And I think that's it. Thank you