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
|
- 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