cbadc.digital_estimator.nuv_estimator.NUVEstimator

class cbadc.digital_estimator.nuv_estimator.NUVEstimator(analog_system: AnalogSystem, digital_control: DigitalControl, covU: float, bound_y: float, gamma: float, K1: int, K2: int = 0, iterations_per_batch: int = 100, Ts: float = None, oversample: int = 1)[source]

Bases: object

The NUV batch estimator

The NUV estimator iteratively estimates estimates a filtered version \(\hat{\mathbf{u}}(t)\) of the input signal \(\mathbf{u}(t)\) from a sequence of control signals \(\mathbf{s}[k]\).

In comparision to the linear complexity estimators

  • cbadc.digital_estimator.BatchEstimator

  • cbadc.digital_estimator.ParallelEstimator

  • cbadc.digital_estimator.IIRFilter

  • cbadc.digital_estimator.FIRFilter

the NUV estimator enforces the bounded outputs in an iterative scheme as described in

Parameters
  • analog_system (cbadc.analog_system.AnalogSystem) – an analog system (necessary to compute the estimators filter coefficients).

  • digital_control (cbadc.digital_control.DigitalControl) – a digital control (necessary to determine the corresponding DAC waveform).

  • covU (float) – a prior covariance matrix for the sought estimate.

  • bound_y (float) – the bound enforced on the outputs \(\mathbf{y}(t)\) of the system.

  • gamma (float) – a scale factor.

  • K1 (int) – batch size.

  • K2 (int, optional) – lookahead size, defaults to 0.

  • iterations_per_batch (int, optional) – number of iteration steps per batch, defaults to 100.

  • Ts (float, optional) – the sampling time, defaults to the time period of the digital control.

  • oversample (int, optional) – add observations per control signal, defaults to 1, i.e., no oversampling.

analog_system

analog system as in cbadc.analog_system.AnalogSystem or from derived class.

Type

cbadc.analog_system.AnalogSystem

digital_control

digital control as in cbadc.digital_control.DigitalControl or from derived class.

Type

cbadc.digital_control.DigitalControl

K1

number of samples per estimate batch.

Type

int

K2

number of lookahead samples per computed batch.

Type

int

covU

the prior covariance matrix (or scalar in the single input case) of the estimate \(\hat{\mathbf{u}}(t)\).

Type

float

bound_y

the bound enforced on the outputs \(\mathbf{y}(t)\) of the system.

Type

float

Ts

the sample rate of the estimates

Type

float

iterations_per_batch

number of iteration steps per batch.

Type

int

gamma

a scale factor.

Type

float

Methods

__init__(analog_system, digital_control, ...)

set_iterator(control_signal_sequence)

Set iterator of control signals

set_iterator(control_signal_sequence: Iterator[ndarray])[source]

Set iterator of control signals

Parameters

control_signal_sequence (iterator) – a iterator which outputs a sequence of control signals.