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
- Chama
ca_cfar()para obter o threshold adaptativo para cada célula do sinal integrado. - Aplica piso mínimo absoluto (
min_cfar_abs) para evitar falsos alarmes em regiões com apenas AWGN puro. - Identifica amostras onde
integrated > threshold. - Usa
scipy.signal.find_peakspara separar picos distintos (distância mínima ≈ 4% da taxa de amostragem). - 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. |