---
title: CT-CFAR Algorithm for Radar Detection
url: https://www.emergentmind.com/topics/ct-cfar-algorithm
type: topic
---

# CT-CFAR Algorithm for Radar Detection

The CT-CFAR (CLEAN and Truncated statistic CFAR) algorithm is a constant false alarm rate detector designed to achieve robust target detection in radar systems where reference window samples are contaminated by sidelobe responses and other non-homogeneous interferences. Integrating truncated statistics for noise estimation and the CLEAN concept for iterative sidelobe suppression, CT-CFAR restores the homogeneity assumption—essential for reliable threshold setting—and enhances adaptability in complex and dense environments. Additionally, learnable historical sidelobe information is incorporated to dynamically adjust local detection thresholds, minimizing false alarms in sidelobe-prone regions. The algorithm demonstrates high-precision detection without requiring prior knowledge of abnormal samples, outperforming standard CFAR techniques in both simulation and real-world conditions [2511.18358].

## 1. Radar Echo Model and Statistical Basis

The CT-CFAR algorithm operates on radar echo signals acquired in multi-channel FMCW (frequency modulated continuous wave) configurations. The transmitted chirp is modeled as
$$
S_T(t) = A_T e^{j\bigl(2\pi f_c t + \pi K t^2\bigr)}, \quad t \in [0, T_c]
$$
where $A_T$ is the transmit amplitude, $f_c$ is carrier start frequency, $K=B/T_c$ denotes chirp slope (with bandwidth $B$ and chirp duration $T_c$). The received IF signal post down-conversion and filtering contains both beat frequency and Doppler shift components:
$$
S_{IF}(t) = A_{IF} \exp\bigl\{ j[2\pi f_b t + 2\pi f_D t + \phi_0] \bigr\} + n(t)
$$
where $f_b$ derives from range, $f_D$ from velocity, and $n(t) \sim \mathcal{CN}(0,\sigma_n^2)$ is complex Gaussian noise.

For $L$ antennas, after digitization and windowing, the signal for channel $l$ is
$$
S_l[n,m] = \sum_{k=1}^{K}A_{l,k}\exp\Bigl\{j(2\pi f_{b,k}n T_s + 2\pi f_{D,k}m T_r)\Bigr\} + w_l[n,m]
$$
where $w_l[n,m] \sim \mathcal{CN}(0, \sigma_n^2)$ and $T_s, T_r$ are sample and pulse repetition intervals. A 2D FFT (range-Doppler) followed by noncoherent accumulation (NCA) yields the power spectrum:
$$
P_{NCA}[p,q] = \sum_{l=1}^{L}|S_l[p,q]|^2 = P_X[p,q] + P_W[p,q] + P_{cross}[p,q]
$$
For medium-to-high SNR, the cross-term vanishes and $P_W[p,q]$ follows a $\Gamma(L,\theta)$ distribution with $\theta = \sigma_n^2$.

## 2. Truncated Statistic for Noise Estimation

Background noise mean estimation is performed by truncating outlier-contaminated samples in the reference window. The noise is modeled as $Z \sim \Gamma(\alpha=L, \beta=\theta)$, with PDF and CDF:
$$
f_Z(z) = \frac{1}{\Gamma(L)\theta^L} z^{L-1} e^{-z/\theta}
$$
$$
F_Z(z) = \frac{\gamma\bigl(L, z/\theta \bigr)}{\Gamma(L)}
$$
where $\gamma(\cdot,\cdot)$ is the lower incomplete gamma function.

By truncating at threshold $T$, only samples $z_i \le T$ are retained. The conditional mean is:
$$
E[Z | Z \le T] = \frac{\int_0^T z f_Z(z) dz}{F_Z(T)} = \theta \, \frac{\gamma(L+1, T/\theta)}{\gamma(L, T/\theta)}
$$
Letting observed samples $x_1, \ldots, x_{N'}$ (with $x_i \leq T$), their mean $\bar x$ approximates $E[Z | Z \le T]$. The truncation level $T$ is iteratively set to achieve internal false alarm rate $P_{FA,int}$ by solving $F_Z(T) = 1 - P_{FA,int}$. This iterative process yields the background mean $\hat{\mu}$, forming the noise matrix $N_G[p,q] = \hat{\mu}$. Subtraction restores the homogeneity assumption:
$$
P_{NCA} \leftarrow P_{NCA} - N_G
$$

## 3. CLEAN-Based Sidelobe Suppression and Target Reconstruction

The CLEAN concept is adapted to iteratively remove detected target and sidelobe energy. Upon identifying a cell-under-test (CUT) $(i, j)$, the algorithm reconstructs both main lobe and sidelobe response using the Candan estimator for sub-bin localization,
$$
\delta = \frac{y(n+1) - y(n-1)}{2 y(n) - y(n+1) - y(n-1)}
$$
and least-squares (LS) matching to steer the multichannel template. For each target,
- A template vector $g$ is formed (vectorized from the steering matrix around $(p^*, q^*)$),
- Observed patches from all $L$ channels form $Y$,
- Channel gains $a$ are estimated by LS,
$$
\hat a = (g^H g + \epsilon I)^{-1} g^H Y
$$
The reconstructed spectrum $P_{\text{out}}$ (target plus sidelobes) is subtracted from $P_{NCA}$ and accumulated into the sidelobe-history matrix $N_S$. This process iterates until no spectrum peaks remain over threshold.

## 4. Adaptive Thresholding and CFAR Decision Rule

Detection is performed on the homogeneity-restored matrix. For each CUT,
- Reference window mean is computed:
$$
\widehat{\sigma}[i,j] = \frac{1}{(2r+1)^2 - N_g}\sum_{k=i-r}^{i+r}\sum_{m=j-r}^{j+r} (N_G[k,m] + N_S[k,m])
$$
excluding $N_g$ guard cells.
- The adaptive threshold is set:
$$
T_{i,j} = \alpha \, \widehat{\sigma}[i,j]
$$
where $\alpha$ is the scale parameter defined to achieve global $P_{FA}$, computed or tabulated by inverting the Gamma CDF.

Detection occurs if
$$
x_{CUT}(i,j) > T_{i,j} \Longrightarrow \text{Target declared}
$$
This approach accounts for both current noise and historical sidelobe contamination ($N_S$), reducing susceptibility to repeated false alarms.

## 5. Learnable Historical Sidelobe Information

CT-CFAR maintains a sidelobe-history matrix $N_S \in \mathbb{R}^{N \times M}$, initialized to zero. After each CLEAN subtraction,
$$
N_S \leftarrow N_S + P_{\rm out}
$$
where $P_{\rm out}$ excludes the main lobe. As detections accumulate, $N_S$ encodes regions of historical sidelobe presence, raising local thresholds and adaptively suppressing persistent sidelobe-induced false alarms. This mechanism is effective in dense scenarios with multiple closely-spaced targets.

## 6. Algorithm Workflow and Computational Characteristics

Pseudocode for CT-CFAR is structured as follows:
1. Compute per-channel 2D FFT and noncoherent sum $P_{NCA}$.
2. Estimate noise mean via truncated statistic iteration.
3. Build and subtract noise floor $N_G$.
4. Initialize $N_S$ to zeros.
5. Repeat:
    - Locate peak CUT.
    - Compute threshold using local $N_G + N_S$.
    - If CUT exceeds threshold:
        - Refine localization via Candan.
        - LS reconstruct target+sidelobe power spectrum $P_{\rm out}$.
        - Record detection; CLEAN-subtract $P_{\rm out}$.
        - Update $N_S$ with $P_{\rm out}$.
    - Else break.
6. Output target list.

The algorithm exhibits computational efficiency comparable to mean-based CFARs. Closed-form ML noise estimation and efficient LS filtering yield real-time operation (MATLAB implementation detection completed in $<$0.03 s for standard map size).

## 7. Performance Assessment

Monte Carlo simulations with 100 trials and 20 targets per trial (varying Doppler content) were conducted, benchmarking CT-CFAR against CA-CFAR, GO/SO-CFAR, OS-CFAR, TM-CFAR, TS-CFAR, and SS-CFAR. At $P_{fa}=10^{-3}$, CT-CFAR attains $P_d > 0.9$ down to SNR $\approx$ –15 dB, maintaining $P_{fa}$ stability across SNR regimes. Receiver operating characteristic (ROC) analysis reveals CT-CFAR achieves the highest area under curve.

Field measurements using the TI AWR2243 cascaded radar ($L=192$ virtual MIMO channels) demonstrated precise target delineation and minimal clutter; background noise modeled by CT-CFAR passes Gaussianity tests (Shapiro–Wilk) and Q–Q fitting. In practical range–Doppler projection, CT-CFAR most clearly isolates human targets, even under heavy clutter.

A plausible implication is that historical sidelobe learning, truncated noise estimation, and CLEAN subtraction can be extended to further adaptive CFAR developments, potentially facilitating robust operation in more severely non-homogeneous and interference-dominated scenarios.

[2511.18358]

Source: https://www.emergentmind.com/topics/ct-cfar-algorithm