APRiL

Advanced Passive Radar Library

Detector Module

This notebook is intended to give an introduction on the application of the detector module implemented in pyAPRiL. This module encomapasses different algorithms to calculate the so called range-Doppler matrix using the reference and surveillance channels. Generally (but not exclusively), to obtain the range-Doppler matrix, it is required to have the time domain samples of these two channels and know the sampling frequency of the signals to prepare the proper scaling. In the next few sections we are going through the realized range-Doppler calculation functions in pyApril and demonstrate their operation on simulated data.

1. Test signal simulation

As a first step we are going to preapre simulated reference and surveillance channel signals. The simulated illuminator signal is drawn from normal distribution with unit variance $(\sigma_s = 1)$ and 0 mean ($\mathbb{E}\{s[n]\} = 0$) . \begin{equation} s[n] \sim \mathcal{N}(0,1) \end{equation} The simulated illuminator signal has $n=0 \dots N-1$ samples. After generating the transmitted signal the reference and surveillance channels are prepared accrodingly \begin{equation} x_r[n] = s[n] \\ x_sn] = s[n-\tau_0] e^{j 2 \pi f_0/f_s n}, \end{equation} where $\tau_0$ and $f_0$ are time delay and the Doppler shift of the simulated target reflection and $f_s$ is the sampling frequency of the signals.

This signal modell and simulation is of course a way too simple, but our aim here is not to create a sophisticated scenario but only to show the operation of the implemented algorithms.

2. Detectors

Algorithms implemented herein realize the matched filtering. According to this procedure target reflection prototype signals are generated from the referece channel and each of these prototypes are cross-correlated with the surveillance channel. The detector module have three implementations for the same operation differing in their computational complexity. The detailed description of these algorithms can be found in [1] "Chapter 4. - Correlation Processing".

2.1 cc_detector_td:

rd_matrix = cc_detector_td(ref_ch, surv_ch, fs, fD_max, fD_s, r_max, verbose=0, Qt_obj=None)

This is the raw, time-domain implementation of the matched filter accroding to equation (4.9) in [1]. Using the notation introduced above: \begin{equation} \chi(\tau,f) = \sum_{n=0}^{N-1} x_r[n - \tau]^* e^{-j 2 \pi f/f_s n} x_s[n], \end{equation}

Parameters:

ref_ch and surv_ch input vectors must have the same size (N)

Returns:

The following code section shows the calling of this function for the simulated data channels.

After calculating the range-matrix we can display it. When we are considering detection, normally we are only interested in the absolute value of the matrix.

We can see that the calculated range-Doppler matrix has a maximum at the simulated target coordinates (bistatic range and Doppler frequency cells). We can of course use better scalling and display for inspecting the matrix. pyAPRiL has functions implemented to ease this part of the job. We are not dealing here with the operation of these functions, just only use them.

2.2 cc_detector_fd:

rd_matrix = cc_detector_fd(ref_ch, surv_ch, fs, fD_max, r_max, verbose=0, Qt_obj=None)

This function differs in a way from cc_detector_td, that it calculates the cross-correlation between the channels in frequncy domain. This modification greatly speeds up the overall calculation procedure. Beside this the Doppler frequency shift of the reference channel is also realized in the frequency domain. As direct consequence the Doppler frequency dimension of the range-Doppler matrix can only be sampled at the frequency bin size of the transformed channels. Due to zero-padding (required for the correlation processing), this bin size is equal to $\Delta_f = \frac{fs}{2N}$.

The implementation use the FFTW library (through pyFFTW) to improve the calculation speed of the forward and backward Fourier transforms.

Among others, this algorithm is described in [1], Section 4.3.2 as "Method 2".

Parameters:

ref_ch and surv_ch input vectors must have the same size (N)

Returns:

2.3 cc_detector_ons:

rd_matrix = cc_detector_ons (ref_ch, surv_ch, fs, fD_max, r_max, verbose=0, Qt_obj=None)

This algorithm is very similar to what is usually done in FMCW and pulse radars. The overall processing is separated into two steps. In the first step the range processing is performed via the calculation of the cross-correlation functions on short time intervals ($N/r_{max} = k, k \in \mathbb{Z}^+ $ batches). In the second step Fourier transformation is performed across the range vectors, thus executing the Doppler processig. The main benefit of this algorithm is the low calculation complexity, however faster processing comes at the expense of loosing processing gain at higher Doppler frequencies. This loss is expressed in [2], in section 4.3, equation (25). The algorithm is described in more detail in [1], Section 4.3.3 as "Method 3" and in [2]

The Doppler frequency bin size is equal to $\Delta_f = \frac{fs}{N}$.

Parameters:

ref_ch and surv_ch input vectors must have the same size (N)

Returns:

2.4 Comparison

Runtime

References

[1] Mateusz Malanowski: Signal Processing for Passive Bistatic Radar, 2019 ARTECH HOUSE 685 Canton Street Norwood, MA 02062

[2] Michał Meller: Efficient Signal Processing Algorithms for Passive Radars, NATO STO-MP-SET-187

Further Work

Range and Doppler walk compensations: Using such techniques one can compensate the energy spread of the target in the range-Doppler matrix when the Doppler frequency or the range of the target change rapidly relative to the duration of coherent processing interval.

GLRT detector: The Generalized Likelihood Ratio Test detectors can outperform the classic cross-correlation detector when the reference signal is considered to be noisy.

Reciprocal filter: "providing for high precision delay-time estimation with intensely reduced sidelobes. Using a FFT of several consecutive correlation functions, even the echo Doppler shift can be estimated in spite of the Doppler-tolerance of the autocorrelation maximum. Using the reciprocal filter, especially signals with a merely small spectral amplitude variation turn out to be favourable concerning the SNR. Varying the threshold β , however, even a higher SNR can be achieved at the cost of a reduced MSR and vice versa."[FR-1]

Authors

dr. Tamas Peto, PhD
Initial version: 2023 03 05