Max Manning

Passive radar signal processing part 2: range – doppler processing

This is my second post in a series covering signal processing algorithms for passive radar. Part 1 is here. If you haven’t already, check out the main passive radar page to get an idea of what the project is all about.

In the last post, we derived an algorithm that removes the radar clutter from the observation channel of a passive radar. In principle, this should leave only the target echoes that we are trying to analyze. What can these echoes tell us about the targets they are reflected from?

The properties of interest here are the time delay and the Doppler shift of each target echo. These are related to the distance to the target and its velocity, respectively. The exact relationship between these quantities depends on the geometry of the receiver and the transmitter as well as the location and bearing of the target – for now we will just focus on extracting the delays and Doppler shifts from the echo signal.

To make this more concrete, consider the signal model that we used for the echo signal \(s_{tar}[n]\) in the previous post. It consists of a sum of scaled, delayed, and Doppler shifted copies of the reference signal \(s_r[n]\). Here \(w_k\), \(d_k\), and \(f_k\) are the magnitude, delay, and Doppler shift of the \(k^{th}\) target echo, respectively, and \(F_s\) is the sample rate.

$$ \begin{equation}\label{eq:102} \displaystyle s_{tar}[n] = \sum_{k=0}^{N-1} w_{k} s_{r}[n-d_k] exp \left(\frac{j2\pi n f_k}{F_s} \right) \end{equation} $$

Target detection amounts to finding out which delay values and Doppler shifts are present in the echo signal.

This can be achieved by computing the cross-ambiguity function \(\chi_{s_r, s_{tar}}(\tau, f)\). You can think of the cross-ambiguity function as an extension of the cross-correlation function. Taking the cross-correlation of two similar signals allows you to determine the delay between them. The cross-ambiguity function is similar, but it additionally allows you to determine the frequency difference between the signals. This is accomplished by exploiting the fact that sinusoids of different frequencies are orthogonal to one another.

$$ \begin{equation}\label{eq:5} \chi_{s_1, s_2}(\tau, f) = \sum_{n=0}^{N-1} s_1[n]s_2^*[n – \tau]exp \left(\frac{-j 2 \pi n f}{F_s} \right) \end{equation} $$

If the cross-ambiguity function is computed for a range of delay and frequency shift values, the result is a two-dimensional surface known as a range-Doppler map. Targets will appear as spikes in this surface at values of \(\tau\) and \(f\) corresponding to the delay and Doppler shift of the target echoes.

The value \(N\) is called the coherent processing interval (CPI), and it must be chosen carefully since it limits the Doppler resolution of the system. In general, choosing a larger CPI means that signals with smaller frequency differences between them can be differentiated (i.e. the Doppler resolution is inversely proportional to the CPI). For example, a CPI of one second corresponds to a minimum Doppler resolution of 1Hz.

Directly computing the cross-ambiguity function is quite computationally intensive, especially if a large number of range and Doppler bins are desired. Fortunately there is an approximate algorithm that speeds up the computation significantly. The basic idea is to use a frequency-domain approach which allows us to take advantage of the FFT algorithm. We decimate the input signals prior to taking the FFT since the range of Doppler shifts that we are interested in is small compared to the bandwidth of the input signal ( <500Hz vs 200kHz).

To derive the fast cross-ambiguity algorithm, we can re-index the sum to split it into two components, where \(N = ML\):

$$ \begin{equation}\label{eq:10} {\chi}(\tau, f) = \sum_{k=0}^{M-1} \left[ \sum_{l=0}^{L-1} s_1(l + kM)s_2^*(l + kM – \tau)exp \left(\frac{j 2 \pi l f}{F_s}\right) \right] exp \left(\frac{-j 2 \pi kM f}{F_s} \right) \end{equation} $$

We choose \(L\) and \(M\) such that \(f_{max}L << F_s\), where \(f_{max}\) is the maximum Doppler shift of interest. Under these conditions, the term \( exp ( j 2 \pi l f / F_s) \approx 1 \) so it can be neglected. We next define the function \(g(k, \tau)\):

$$ \begin{equation}\label{eq:11} g(k, \tau) = \sum_{l=0}^{L-1} s_1(l + kM)s_2^*(l + kM – \tau) \end{equation} $$

An approximate expression for the cross-ambiguity function is then

$$ \begin{equation}\label{eq:12} {\chi}(\tau, f) \approx \sum_{k=0}^{M-1} g(k, \tau) exp \left(\frac{-j 2 \pi kM f}{F_s} \right) \end{equation} $$

This is just the discrete Fourier transform of \( g(k, \tau)\)! We like discrete Fourier transforms since they can be efficiently computed with the FFT algorithm. A block diagram of the fast cross-ambiguity algorithm is shown below.

Depending on the number of range and Doppler bins that are computed, this is about twice as fast as the naive algorithm!

References

P.E. Howland, D. Maksimiuk and G. Reitsma, “FM Radio Based Bistatic Radar.”

Christopher L. Yatrakis, “Computing the Cross Ambiguity Function- A Review.” (Master’s thesis, Binghamton University.)