I want to do a short summary on what have been done during GSoC. Slides and poster from GRCon and the previous posts should cover almost everything but it is nice to have one place where all the stuff is written down.
Implemented radar types with example flowgraph:
CW (tested on hardware and simulation)
FSK (tested on hardware and simulation)
Dual CW (tested on hardware and simulation)
FMCW (only simulation)
OFDM (only simulation)
Command line output with inbuild file sink
Time plot (plots time progression of target property)
Scatter plot (combines two target properties, e. g. range/velocity plots)
Spectrogram plot (plots 2D spectra, e. g. OFDM matrices)
Peak detection algorithms:
Max power detection (single peak detection)
OS-CFAR (multi peak detection)
OS-CFAR 2D (multi peak detection, e. g. for OFDM matrices)
Hardware interface and simulator:
Echotimer (UHD interface) for two or one USRP (multi USRP support is in work)
Sync setup for measuring hardware delay
Simulator with multi target capability and range, velocity, rcs and azimuth as target property
OFDM cyclic prefix remover
OFDM matrix devision with zeropadding and discarding carriers
Split packages for FMCW and FSK
FFT for tagged streams
Message manipulator and gate for target property messages
Single target tracking
Trigger for command line statements
With GRCon14 (GNU Radio Conference 2014) GSoC is finished successfully! All GSoC students had the opportuniy to present their work in a small talk and within the poster session. For sure the slides and the poster are also a nice source of information if you want to learn something about this project. Take a look if you are interested!
The next radar system has been set up! This time it is a Dual CW Radar. The processing is related to the previous FSK Radar but has a much clearer spectrum due to the lack of splitting the signal. Therefore you get better detections than the FSK Radar. In particular the DC peak is present only at the zero frequency bin. This allows detections of smaller velocities.
Dual CW Radar Stats:
Center frequency: 2.4 GHz
Sample rate: 14.25 MHz
Detection time: 150 ms
Velocity resolution: 0.4 m/s
Range resolution: 0.3 m (approx.)
Unambiguous range: 12.5 m
The signal processing is shown at the GNU Radio Companion flowgraph below.
Check out the demonstration video with the hardware setup, additional information and screen capturing of GUI output!
The toolbox has a working realtime tracking algorithm for range and velocity measurements in single target cases! The implemented algorithm is a Generic Sequential Importance Resampling (SIR) Particle Filter. This is part of a bachelor thesis at the KIT Communications Engineering Lab about the research on tracking algorithms for radar signal processing.
This block can be inserted after any estimator block with range and velocity measurement. Look at the GNU Radio Companion flowgraph below with GUI blocks before and after tracking.
Check out full video example of target trajectory and screen capturing of GUI output for more information.
The toolbox has GUI blocks now! Besides the inbuild GUI blocks for waterfall or time plots of frequency or spectrum, a graphical representation for target information is implemented.
At the moment there are two kind of GUIs. First a scatter plot of two target attributes, e. g. range and velocity. This GUI is nice to show the state of your target in real time in a single plot. Second there are time/attribute plots available which show a single attribute of your target in a given time range. All GUIs are real time and multi target capable for any given attributes of your targets.
Also check out the demonstration video! There is shown a real time detection with video of the target trajectory and a screen capture of the GUI response.
The first radar demonstrator is set up! The waveform is a FSK modulation with following flowgraph. Actually the radar is able to detect a single target in a range up to 120m with a velocity resolution of 0.25m/s. The system provides a detection every 210ms. The used antennas are simple 2.4GHz wifi beam antennas, connected with two USRP N210.
The main problem is the low doppler frequency of about 15Hz per 1m/s of the target in combination with the high sample rate of 5MHz due to the needed bandwith for a proper maximum range. Higher center frequencies solve this problem. Therefore I am heading for a radar setup in the 5.9 GHz band. That should provide a nice performance boost!
Also check out the video example to get a clue how it works! It shows a low range person detection with the above described setup. Realtime estimation is inbuild but a nice GUI is not finished yet. A simple console output is implemented.
Now the radar toolbox provides a synchronized USRP interface! The new interface is called echotimer. Input and output are tagged streams and the setup are two USRPs connected with a MIMO cable with any antennas, e.g. USRP N210 with wifi beam antennas. The RX stream is received with a constant offset due to hardware delays. Therefore a delay function is implemented. Furthermore a callback in GRC is included for realtime adjustments. Following flowgraph is part of the gr-radar examples on GitHub.
The workflow for a synced radar setup: First connect all hardware and then send a pulsed signal which should be reflected by a near target, e.g. a wall. A signal generator for sync pulses is in the toolbox included. The estimator cross-correlates these two signals and searchs for the best match in regard to a specific signal shift. This number of shifted samples is given in a console output by the print results block or via the inbuild QT scope GUI.
This constant shift has to be evaluated only once for a specific hardware setup! The number of delayed samples is constant for all time and therefore this calibration setup is all you need for synchronized TX/RX streams from two USRPs. Check out following video for comparison of the inbuild USRP sink/source to the gr-radar echotimer!
The repository moved from my personal account to the kit-cel account. Look at the other interesting projects there! For example out-of-tree modules for GNU Radio of a DRM transmitter, LTE receiver or spectral estimation routines.
Last week the first official Hackfest EU took place! After hours of coding, finally I am heading for the first milestones. First draft of the simulator block is written and is working great!
At the bottom you can get an impression of my work. I’ll present you there a working setup of a FSK radar simulation in GNU Radio Companion. At the moment there is only a simple console output of the estimation but user interface is coming soon!
FSK flowgraph in GNU Radio Companion
Spectrum of FSK radar
Simple console output of FSK estimation. Three input targets with range (10, 20, 50) and velocity (5, 10, 15).
The midterm milestones are set! Midterm evaluation is in the last week of June and up to this point you can expect following new features. Furthermore I will present accomplished milestones in this blog that you can keep track of the development easily.
Simulator A simulator with multi target capability and range, velocity, RCS and azimuth as target properties will be written. Motivation is a simulator block which can be easily replaced by hardware.
USRP support USRPs should not be a must-use for this project, but at the moment they are probably the best suitable hardware in combination with GNU Radio. Therefore I will provide out-of-the-box USRP support with proper input-output synchronization for unproblematic signal analysis.
Modulations First implemented modulations will be CW, FSK and FMCW. For each modulation I will provide a signal generator block and an example signal analysis flowgraph in GNU Radio Companion. Emphasis is on coding highly reuseable blocks and then the possibility to create different modulation analysis flowgraphs without the need of writing new blocks.
Radar setup All new features are tested in software with test cases. But nevertheless a working radar setup is the best proof of functionality. The first setup will be done with two USRP N210 and horn antennas.