Skip to content

CFAR

CfarWidget

Bases: PlotWidget

Widget de plot para o detector CA-CFAR.

Herda de pg.PlotWidget e chama ca_cfar() de cfar.py.

Além de calcular e plotar o threshold adaptativo, detecta os picos que superam o threshold e os exibe como scatter (pontos amarelos). Retorna os índices dos picos detectados para uso no PPI Estimado.

Uso::

w = CfarWidget(t_us, fs, link_x_to=mti_plot)
peaks = w.update(integrated, normalize=True)

__init__(t_us, fs, n_guard=N_GUARD, n_train=N_TRAIN, alpha=K_CFAR, min_cfar_abs=MIN_CFAR_ABS, link_x_to=None)

Parameters:

Name Type Description Default
t_us ndarray

Eixo de tempo em µs (compartilhado com os demais plots).

required
fs float

Taxa de amostragem (Hz), usada para calcular distância mínima entre picos em find_peaks.

required
n_guard int

Células de guarda de cada lado da célula sob teste.

N_GUARD
n_train int

Células de treinamento de cada lado.

N_TRAIN
alpha float

Fator multiplicativo do threshold (limiar).

K_CFAR
min_cfar_abs float

Threshold absoluto mínimo (suprime FA em AWGN puro).

MIN_CFAR_ABS
link_x_to

PlotItem ao qual sincronizar o eixo X (opcional).

None

update(integrated, normalize=True)

Calcula o threshold CA-CFAR, detecta picos e atualiza o plot.

Pipeline interno
  1. Chama ca_cfar() para obter o threshold adaptativo para cada célula do sinal integrado.
  2. Aplica piso mínimo absoluto (min_cfar_abs) para evitar falsos alarmes em regiões com apenas AWGN puro.
  3. Identifica amostras onde integrated > threshold.
  4. Usa scipy.signal.find_peaks para separar picos distintos (distância mínima ≈ 4% da taxa de amostragem).
  5. Atualiza curvas e scatter.

Parameters:

Name Type Description Default
integrated ndarray

Sinal de potência acumulada (saída do Integrador).

required
normalize bool

Se True, normaliza sinal e threshold para [0, 1] usando o mesmo fator (preserva proporção visual).

True

Returns:

Type Description
ndarray

np.ndarray de inteiros — índices dos picos detectados no sinal.

ca_cfar(signal, n_guard, n_train, alpha)

CA-CFAR vectorizado via uniform_filter1d — threshold adaptativo por célula.

Parameters:

Name Type Description Default
signal ndarray

Sinal de entrada (já pós-integração e MTI).

required
n_guard int

Número de células de guarda de cada lado.

required
n_train int

Número de células de treinamento de cada lado.

required
alpha float

Fator multiplicativo do threshold.

required

Returns:

Type Description
ndarray

Um array com os valores de threshold estimativos para cada amostra do sinal.