<aside> 📌 By Dr. Nir Regev

</aside>

<aside> 📌 Sign up to Circuit of Knowledge blog for unlimited tutorials and content

</aside>

<aside> 📌 If it’s knowledge you’re after, join our growing Slack community!

</aside>

Ref [1] by M.A. Richards discusses some important and perhaps surprising results regarding noncoherent integration gain in radar detection. The key points are:

  1. Noncoherent integration gain (G_nc) can actually exceed the number of integrated pulses (N) for certain target fluctuation models, specifically Swerling 2 and 4. This is contrary to the common wisdom that G_nc is always less than N.
  2. However, this does not mean detection performance is better than the nonfluctuating target case. The required single-pulse SNR is always lowest for a nonfluctuating target.
  3. Coherent integration, when possible, always outperforms noncoherent integration in terms of required SNR.
  4. For a Swerling 1 target, frequency agility combined with noncoherent integration can outperform coherent integration if the number of pulses N is below a certain threshold (e.g. 360 for Pd=0.9, Pfa=1e-6). Above this, coherent integration is preferred if the coherence time allows it.

Simulating it

Let's dive into the details with some MATLAB code to build intuition. First, the probability of detection Pd for a given Pfa, N, and SNR can be calculated for the various Swerling models using the Shnidman’s approximation [2]

import numpy as np
import matplotlib.pyplot as plt

def shnidman_1(N, Pd, Pfa, swerling_case):
    # Define K based on Swerling case
    if swerling_case == 0:
        K = np.inf
    elif swerling_case == 1:
        K = 1
    elif swerling_case == 2:
        K = N
    elif swerling_case == 3:
        K = 2
    elif swerling_case == 4:
        K = 2 * N
    else:
        raise ValueError('Invalid Swerling case')

    alpha = 0 if N < 40 else 0.25

    eta = np.sqrt(-0.8 * np.log(4 * Pfa * (1 - Pfa))) + np.sign(Pd - 0.5) * np.sqrt(-0.8 * np.log(4 * Pd * (1 - Pd)))

    Xinf = eta * (eta + 2 * np.sqrt(N / 2 + (alpha - 0.25)))

    C1 = (((17.7006 * Pd - 18.4496) * Pd + 14.5339) * Pd - 3.525) / K
    C2 = np.exp(27.31 * Pd - 25.14) / K + (Pd - 0.8) * (0.7 * np.log(1e-5 / Pfa) + (2 * N - 20) / 80) / K

    CdB = C1 if Pd <= 0.872 else C1 + C2

    C = 10 ** (CdB / 10)

    Xint = Xinf * C

    SNR_1_linear = Xint / N

    return SNR_1_linear

# Set parameters
Pfa1 = 1e-4
Pd1 = 0.7
N = np.arange(1, 101)

# Calculate Pd for each Swerling case and N

Untitled

This shows that noncoherent integration outperforms $N$ for (e.g.) Swerling 2 data when N = 2 to 16 pulses.

<aside> 📌 For the complete tutorial sign up to Circuit of Knowledge blog

</aside>

Conclusion

References