b_asic.transfer_function

B-ASIC Transfer Function Module.

Contains a class for the transfer function representation of a linear system.

class b_asic.transfer_function.TransferFunction(numerator: ndarray[tuple[Any, ...], dtype[_ScalarT]] | list | dict[str, ndarray[tuple[Any, ...], dtype[_ScalarT]]], denominator: ndarray[tuple[Any, ...], dtype[_ScalarT]] | list)

Bases: object

Transfer function representation of a linear system.

Parameters:
numeratornumpy array or list or dict

Numerator coefficients. Can be: - Array/list: Single transfer function coefficients - Dict: Multiple transfer functions keyed by input (e.g., {“in0”: array, “in1”: array})

denominatornumpy array or list

Denominator coefficients (shared across all transfer functions).

denominator
classmethod from_sfg(sfg: SFG) TransferFunction

Create a TransferFunction from an SFG.

Parameters:
sfgSFG

Signal flow graph of a linear system.

Returns:
TransferFunction

The transfer function representation.

classmethod from_state_space(ss: StateSpace) TransferFunction

Create a TransferFunction from a StateSpace representation.

Parameters:
ssStateSpace

State-space representation of a linear system.

Returns:
TransferFunction

The transfer function representation.

numerator
zpk() dict[str, tuple[ndarray[tuple[Any, ...], dtype[_ScalarT]] | list[ndarray[tuple[Any, ...], dtype[_ScalarT]]], ndarray[tuple[Any, ...], dtype[_ScalarT]], float | list[float]]]

Compute the zero-poles-gain model for each input.

Returns:
dict

Dictionary mapping each input key (e.g., "in0") to a tuple (zeros, poles, gain).