sycan.components.blocks.quantizer

Linear-model quantizer.

Implements the standard additive-noise model used in sigma-delta loop analysis:

V(out_p) - V(out_m) = k_q * (V(in_p) - V(in_m)) + V_q

V_q is a sympy symbol (default V_q_<name>) that appears directly in the AC solution. With the loop closed around the quantizer the user can read the signal-transfer-function (STF) off the coefficient of V_in and the noise-transfer-function (NTF) off the coefficient of V_q — no separate noise-PSD machinery needed for this stage.

In DC mode the perturbation V_q is treated as zero and only the linear k_q gain is stamped.

Classes

Quantizer(name, in_p, in_m, out_p, out_m[, ...])

class sycan.components.blocks.quantizer.Quantizer(name: 'str', in_p: 'str', in_m: 'str', out_p: 'str', out_m: 'str', k_q: 'cas.Expr' = 1, qnoise: 'Optional[cas.Expr]' = None, *, include_noise: 'NoiseSpec' = None)[source]

Bases: Component

Parameters:
  • name (str)

  • in_p (str)

  • in_m (str)

  • out_p (str)

  • out_m (str)

  • k_q (Expr)

  • qnoise (Expr | None)

  • include_noise (None | str | list[str] | tuple[str, ...] | frozenset[str])

name: str
in_p: str
in_m: str
out_p: str
out_m: str
k_q: Expr = 1
qnoise: Expr | None = None
include_noise: None | str | list[str] | tuple[str, ...] | frozenset[str] = None
ports: ClassVar[tuple[str, ...]] = ('in_p', 'in_m', 'out_p', 'out_m')
has_aux: ClassVar[bool] = True
SUPPORTED_NOISE: ClassVar[frozenset[str]] = frozenset({})
stamp(ctx)[source]
Parameters:

ctx (StampContext)

Return type:

None