Skip to content

Integrator

PulseIntegrator

Realiza a integração de pulsos, coerente ou não-coerente, com base num histórico (buffer) dos últimos N_INT PRIs (Pulse Repetition Intervals).

process(mti_real, comp_complex=None)

Processa os sinais e atualiza o estado de integração.

Parameters:

Name Type Description Default
mti_real ndarray

Sinal real após processamento MTI (para integração não-coerente).

required
comp_complex ndarray

Sinal complexo mantendo a fase (para integração coerente).

None

Returns:

Type Description
ndarray

Sinal integrado e amplificado.

IntegratorWidget

Bases: PlotWidget

Widget de plot para a saída do Integrador de Pulsos.

Herda de pg.PlotWidget e delega o cálculo ao PulseIntegrator de integrator.py.

O modo (coerente vs. não-coerente) é fixado na construção. Uma legenda no canto superior esquerdo indica o modo ativo.

Uso::

w = IntegratorWidget(t_us, coherent=True, link_x_to=mti_plot)
integrated = w.update(mti_out, comp_complex, normalize=True)

__init__(t_us, coherent=False, n_int=N_INT, link_x_to=None)

Parameters:

Name Type Description Default
t_us ndarray

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

required
coherent bool

Se True, usa integração coerente (IQ). Padrão: não-coerente.

False
n_int int

Número de PRIs a integrar. Padrão: N_INT de constants.py.

N_INT
link_x_to

PlotItem ao qual sincronizar o eixo X (opcional).

None

update(mti_out, comp_complex=None, normalize=True)

Integra o sinal MTI nos últimos N_INT PRIs e atualiza o plot.

Modo não-coerente::

integrated = Σ |mti_i|²   (i = PRI atual − N_INT até atual)

Modo coerente::

integrated = |Σ iq_i|²    (soma vetorial → melhora SNR linear)

Parameters:

Name Type Description Default
mti_out ndarray

Sinal pós-MTI do PRI atual (real, positivo).

required
comp_complex ndarray

Sinal complexo do MF do PRI atual (necessário se coerente=True).

None
normalize bool

Se True, normaliza o eixo Y para [0, 1].

True

Returns:

Type Description
ndarray

np.ndarray — sinal integrado (potência acumulada).