A Synthetic Wide-Bandwidth Radar System Using Software Defined Radios

In this paper, we present a synthetic wide-bandwidth radar system using software-defined radios (SDR), and demonstrate the proposed approach using a Universal Software Radio Peripheral (USRP) device. Normally, USRP devices have tens of MHz bandwidth, and cannot generate large bandwidth sweeps to achieve cm-level range resolution. By using a synthetic wide-bandwidth approach, we can generate frequency sweeps up to 5 GHz bandwidth and obtain high-resolution range profiles. We will first summarize the mathematical details of the proposed approach, then present a pure Python-based solution using the UHD library, a GNU radio and Octave-based implementation, and finally present experimental results for two different test cases. The developed code is available in a public GitHub repository. Compared to frequency-modulated continuous-wave (FMCW) radars with a voltage-controlled oscillator, the sweep time or the experimental duration are longer, but very large bandwidth sweeps can be realized easily by using low-cost USRP devices, and sweeps are more accurate. All of our experimental results indicate the effectiveness of the proposed low-cost software-defined radar system.


Introduction
Software-defined radio (SDR) devices, and in particular Universal Software Radio Peripheral (USRP) devices can be used to build radar systems in a variety of different ways. In this paper, we present a synthetic wide-bandwidth approach to achieve two GHz sweep bandwidths, and achieve cm-level range resolution.
In [1], a frequency-modulated continuous-wave (FMCW) radar was built using two NI-USRP 2920 units, and because of the the bandwidth limitations of USRP devices, the achieved range resolution was approximately 10 m. In [2], a completely different USRP based radar system is presented using two N210 devices. In that study, an OFDM signal which is normally used to carry digital information from a transmitter to a receiver was used to build a radar sensor. The transmitter system had a receiver antenna as well, and by processing the reflected OFDM waveform, range and velocity estimates were obtained. Both FMCW and OFDM radars need high bandwidth USRPs to achievable better range resolution. The theoretical range resolution is c/(2B), where c is the speed of light, and B is the bandwith of the chirp signal or of the OFDM frame. In [3], a different USRP-based OFDM radar is presented. This is a two-stage converter system operating at mm-wave frequencies, and as in the previous two cases, bandwidth limitations of USRP devices resulted in lower range resolution.
In this paper, we address the bandwidth limitations of USRP devices by using a synthetic wide-bandwidth design approach. In a single experiment, USRP devices can generate only narrow-band signals. However, by changing the local oscillator frequency and repeating the same narrow-band measurement multiple times, it is possible to emulate a wide-bandwidth radar system. In [4,5], a frequency stacking approach is presented using pseudo-random signals as the transmission signal. This is basically a frequency domain synthetic wide-bandwidth design to improve the range resolution. In [6], a completely different time domain synthetic wide-bandwidth design is presented using an E312 model USRP. The mathematical theory behind this time domain approach is based on [7].
In this paper, we present a simple frequency domain synthetic wide-bandwidth (SWB) design to achieve GHz level bandwidths and improve the range resolution. The mathematical theory is based on modeling the physical medium as a multiple delay system. Consider the USRP-based radar and/or communication system shown in Figure 1. The physical medium between the TX and RX antennas has a transfer function, H(s), which can be modeled as where a q 's are complex scalars, and L(s) is a band-pass centered around f e . The RF subsystem and the antennas define the filter L(s). To simplify the derivations, we assume that the system is calibrated and L(s) ≈ 1 in the frequency band [ f e − f B , f e + f B ]. We define the radar problem as a measurement process to estimate h q 's and a q 's. This is a pure software-defined radar approach, and has various advantages. First of all, it is made of standard USRP devices, and is highly reconfigurable. FMCW radars built using voltage-controlled oscillators (VCO) exhibit nonlinearity in range measurements, mainly due to VCO nonlinearity. Although there are various techniques to mitigate this effect, see [8] and the references therein, software-defined radars will have a competitive advantage from this perspective. This paper is organized as follows: in Section 2 we present mathematical preliminaries and in Section 3 we present the proposed SWB algorithm. In Section 4 a pure Python-based implementation built on the UHD driver is presented, and all the developed code is shared on a publicly accessible GitHub repository. Using the developed software, we generated a synthetic sweep from 1.9 to 4.2 GHz using a B205 mini and a B210 USRP device, and used this system for a real measurement. In Section 5 we present an alternative system based on GNU radio graphs and Octave-based programming. In Section 6 we present another experimental result using a delay line with two propagation paths, and finally in Section 7 we make some concluding remarks.

Mathematical Preliminaries
In this section, we will summarize our mathematical notation and review some preliminaries from [9]. We will frequently use the complex baseband representation of passband signals, and reserve the subscript b for baseband signals. If s(t) is the real passband signal, s b (t) will be the complex baseband version. In this paper we describe a measurement procedure based on changing the local oscillator frequency multiple times and repeating a basic measurement process. Therefore, the local oscillator frequency is not fixed throughout the paper, and whenever the local oscillator frequency is clear from the context, its value will not be explicitly mentioned in the discussion. This applies for the bandwidth and the sampling period as well.
For a SWB experiment, we will consider the system defined in Figure 1 with local oscillator frequency f e , and complex baseband signals in the frequency range [− f B , f B ]. This will be a hypothetical wide-band system that exists only in the mathematical domain. For actual measurements, we will operate the same system with local oscillator frequencies f c ∈ [ f e − f B , f e + f B ] and bandwidth B f B . By combining multiple narrow-band measurements, we will emulate a wide-band measurement, which is the main idea behind the SWB approach. All of our actual narrow-band measurements are performed by using USRPs as the transmitter and the receiver. To simplify the mathematical analysis, we will first assume a shared local oscillator configuration, and address other configurations later in the paper.
Consider a complex baseband signal, see [9]. We use capital letters to denote the Fourier transform of continuous time signals, In the frequency domain, we have the following equations for the baseband and passband signals, where S + ( f ) = S( f )I R + , and I R + is the characteristic function of the set R + , see [9]. For the system shown in Figure 1, with x b (t) as the input and y b (t) as the output, we have For a given complex baseband signal, s b (t), we will also define a (complex) discrete time signal, s d [n] = s b (nT), where T is the sampling period equal to 1/(2B), or 1/(2 f B ).

Channel Frequency Response Measurement
In this subsection, we focus on the frequency response of the channel, and describe a measurement procedure. Consider the system shown in Figure 1 with local oscillator frequency set to f c . Assume that the output y(t) is sampled as y d [n] = y b (nT), and the input is driven by where g(t) = sinc(t/T), and where H d is the transfer function from x d to y d . The frequency response can be measured by using a relatively simple narrow-band experiment. Basically, to compute H( f c ), one can change the local oscillator frequency to f c , set x d [n] = 1, use zero-order hold on the transmitter side, and observe the steady state value of y d [n]. Algorithm 1 is an improved algorithm that does not use DC values.

Algorithm 1: Narrow-band CFR measurement
Result: H( f c ) 1 Set T = 1/(2B) for a narrow-band experiment, and use zero-order hold on the transmitter USRP,

Channel Impulse Response-Based Radar
In this subsection, we study the relationship between the channel impulse response and the original radar problem. If the input x d [n] is a discrete-time impulse, then x b (t) = sinc(t/T), where T = 1/(2 f B ). For a calibrated system with L(s) = 1, we have The main question is the following: if we simply look at the sampled version, y d [n] = y b (nT), can we detect all reflectors, and estimate their radar cross-section simply from the channel impulse response? To understand this problem in a better way, let us consider the case of a single reflector. If H(s) = e −h q s , we expect y d [n] ≈ δ[n − n o ] where n o ≈ h q /T. However, depending on the exact value of the ratio, h q /T, this is not guaranteed, and y d [n] may have a very small main lobe, much smaller side lobes, and the presence of the reflector may not be detected when we simply look at y d [n]. However, if we sample the sampled version will have a single main lobe with peak value close to 1, smaller side lobes, and the presence of the reflector will be clearer when we simply look at r d [n]. The only apparent disadvantage is that the main lobe may have two samples (taps) rather than one.

Proposed SWB Radar Algorithm
In this section, we will summarize our main SWB algorithm. Consider the transfer function, H d (e jΩ ), from x b [n] to y b [n], and the transfer function Ω T , and the function, 4π 4+π cos(Ω/2), can be viewed as a "windowing" function. Below, we present an algorithm to estimate g d [n]. The N is chosen large enough so that the most of the energy of g d [n] is concentrated in [0, N). Algorithm 2 is based on the narrow-band measurement Algorithm 1 described earlier.
1 Define a purely mathematical wide-bandwidth radar system with T = 1/(2 f B ), 2 Compute H d (e j2πk/N ) = H f e + k N f B , using the narrow-band CFR algorithm on a real narrow-band USRP device, 3 Apply the windowing function 4π 4+π cos(πk/N) to H d (e j2πk/N ), 4 Compute the inverse FFT of this result to compute g d [n], 5 A peak at index n o in the impulse response, g d [n], is interpreted as a reflector at distance n o Tc/2.

Performance Limitations
All round-trip time delays are estimated with error bound T = 1/(2 f B ), and reflector positions are estimated with error bound cT/2. Therefore, and the maximum range will be Therefore, for better radar performance, the hypothetical system should have large bandwidth, 2 f B , and N should be selected as a large positive integer.

Python-Based Implementation
In this section, we summarize a pure Python-based implementation of the SWB radar algorithm using USRPs. The developed code is available at https://github.com/onurtoker/swb_radar, and has been tested using using a USRP B200 mini as a transmitter and a USRP B210 as a dual-channel receiver, see Figure 2. The theory presented in the previous section was based on local oscillator sharing, but instead we used a loopback signal from the transmitter to the receiver. Even with local oscillator sharing, or with a common 10 MHz reference input, USRPs will have different A/D sampling clocks, and use of a loopback signal solves all of these synchronization problems [10].
In Table 1, we summarize the version numbers of the major software components used in this work. The Python code is easy to read, and mostly self-explanatory. It is a multi-threaded design using the UHD API, and there is an object called myUSRP that provides a layer of abstraction. The main program, usrp_radar, is built on this abstraction layer and has the loop for changing the local oscillator frequency, reading the received data, and writing these to a .mat file. Although it is possible to do all DSP processing in Python using numpy, scipy,matplotlib, we use the Python code only for coordinating the real-time experiment and recording the results. All post-processing is done in MATLAB, see the rangePlot.m in the GitHub repository. We consider two test configurations shown in Figure 3. The reflector shown in the left configuration is about 30 cm closer compared to the one shown on the right. When we look at the normalized CIR plots shown in Figure 4, we see a stationary major lobe, which corresponds to a strong line-of-sight coupling, and but also see a smaller lobe shifted about 30 cm between two configurations. For measurements, we used 200 uniformly separated frequencies from 1.9 to 4.2 GHz, and used zero-padding to obtain smoother FFT plots. The GitHub repository contains the MATLAB code with windowing, and inverse FFT to compute the CIR.

GNU Radio and Octave Implementation
In this section, we summarize a GNU radio and Octave-based implementation of the SWB algorithm. The solution presented here is based on XLMRPC and ZMQ blocks of the GNU radio. The developed sample GNU radio graph and the Octave script are available at https://github.com/onurtoker/swb_radar. We use the same USRP devices and the same setup shown in Figure 2. The GNU radio graph has an XLMRPC block that allows external programs, like Octave, to change variables defined within the graph. This feature is used to change the local oscillator frequency of the USRP devices from an Octave script. To enable XMLRPC functionality in Octave, we use a simple script available in the GitHub repository. However, the same functionality can be achieved by using other tools, for example Apache's XMLRPC library. Our script-based solution may not be elegant, but it does not require any extra software installation. In the GitHub repository, swb_radar.grc is the GNU radio graph file that we used for the experiments (see Figure 5) and swb_radar.m is the Octave script that acts as the master program. To transfer captured data from the GNU radio graph to an external program, we use a ZMQ block. The Octave script changes the local oscillator frequency using XMLRPC, reads the captured data using ZMQ, and then processes the captured raw data to generate radar range profiles. All of these details are available in the sample code swb_radar.m Octave script available in the GitHub repository.

Delay Line Experiment
In this section, we present the results of a delay line experiment with two propagation paths. The experimental setup is shown in Figure 6, and there is a short loopback from the transmitter to the receiver, similar to the previous experiments. The transmitter signal also goes through another longer channel which has three identical coaxial cables, a splitter, and a combiner. This longer channel has two propagation paths of length 2 h and 3 h respectively. The normalized CIR presented in Figure 7 has a peak around tap 23 and another one at 35, and their ratio is 1.52, which is very close to the theoretically expected value of 3/2. For this experiment, we generated a synthetic sweep of bandwidth 2 GHz and obtained approximately 10 cm resolution in cable length. The speed of light in the coaxiable cable is assumed to be two thirds of the speed of light in free-space.

Conclusions
In this paper, we have presented a synthetic wide-bandwidth radar design using USRPs. It is possible to perform narrow-band measurements using USRPs, and by changing the local oscillator frequency several times and repeating the same narrow-band experiment, it is possible to achieve synthetic wide bandwidth. We have developed and shared two different software implementations of the proposed approach, and presented two different GHz-level bandwidth experimental measurements using USRP devices.