Source code for wield.control.fitting.SISO.fitters_ZPK.codings_s

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: © 2021 Massachusetts Institute of Technology.
# SPDX-FileCopyrightText: © 2021 Lee McCuller <mcculler@caltech.edu>
# NOTICE: authors should document their contributions in concisely in NOTICE
# with details inline in source files, comments, and docstrings.
"""
"""
import sys

from wield.bunch import Bunch

# import numpy as np
# import scipy.linalg

from ..MRF import MultiReprFilterS
from ..codings_cmn import (
    CodingGain,
    CodingDelay,
    CodingDelayNL,
)

from .cplx_real_imag import CodingRI
from .cplx_frequency_BW import CodingFBW
from .cplx_nl_freq_nl_BW import CodingnlFnlBW

# from .cplx_nl_freq_amplitude import CodingnlFA
from .real_BW import CodingRealBW
from .real_nl_BW import CodingRealnlBW
from .cplx_sos import CodingSOS
from .cplx_sos_NL import CodingSOSnl

# from .multi_order_section import CodingMOS

# get the current module object to provide a reference
_module = sys.modules[__name__]


[docs] def is_unstable_S(root): return root.real > 0
_common = dict( module=_module, representation="Sf", mrf_default=MultiReprFilterS, is_unstable=is_unstable_S, ) coding_maps = Bunch( RI=Bunch( gain=CodingGain, delay=CodingDelay, num_r=CodingRealBW, num_c=CodingRI, den_r=CodingRealBW, den_c=CodingRI, num_r_u=None, num_c_u=None, den_r_u=None, den_c_u=None, num_collect_r=1, den_collect_r=1, num_collect_c=1, den_collect_c=1, **_common ), FBW=Bunch( gain=CodingGain, delay=CodingDelay, num_r=CodingRealBW, num_c=CodingFBW, den_r=CodingRealBW, den_c=CodingFBW, num_r_u=None, num_c_u=None, den_r_u=None, den_c_u=None, num_collect_r=1, den_collect_r=1, num_collect_c=1, den_collect_c=1, **_common ), nlFBW=Bunch( gain=CodingGain, delay=CodingDelayNL, num_r=CodingRealnlBW, num_c=CodingnlFnlBW, den_r=CodingRealnlBW, den_c=CodingnlFnlBW, num_r_u=None, num_c_u=None, den_r_u=None, den_c_u=None, num_collect_r=1, den_collect_r=1, num_collect_c=1, den_collect_c=1, **_common ), nlFBW_safe=Bunch( gain=CodingGain, delay=CodingDelayNL, num_r=CodingRealnlBW, num_c=CodingnlFnlBW, den_r=CodingRealnlBW, den_c=CodingnlFnlBW, num_r_u=CodingRealBW, num_c_u=CodingFBW, den_r_u=CodingRealBW, den_c_u=CodingFBW, num_collect_r=1, den_collect_r=1, num_collect_c=1, den_collect_c=1, **_common ), # TODO, not ready, gotta be able to deal with roots at 0 SOS=Bunch( gain=CodingGain, delay=CodingDelayNL, num_r=CodingSOS, num_c=CodingSOS, den_r=CodingSOS, den_c=CodingSOS, num_r_u=None, num_c_u=None, den_r_u=None, den_c_u=None, num_collect_r=2, den_collect_r=2, num_collect_c=1, den_collect_c=1, **_common ), SOSnl=Bunch( gain=CodingGain, delay=CodingDelayNL, num_r=CodingSOSnl, num_c=CodingSOSnl, den_r=CodingSOSnl, den_c=CodingSOSnl, num_r_u=CodingSOSnl, num_c_u=CodingSOSnl, den_r_u=CodingSOSnl, den_c_u=CodingSOSnl, num_collect_r=2, den_collect_r=2, num_collect_c=1, den_collect_c=1, **_common ), SOSnlpoles=Bunch( gain=CodingGain, delay=CodingDelayNL, num_r=CodingSOS, num_c=CodingSOS, den_r=CodingSOSnl, den_c=CodingSOSnl, num_r_u=CodingSOS, num_c_u=CodingSOS, den_r_u=CodingSOSnl, den_c_u=CodingSOSnl, num_collect_r=2, den_collect_r=2, num_collect_c=1, den_collect_c=1, **_common ), SOSsafe=Bunch( gain=CodingGain, delay=CodingDelayNL, num_r=CodingSOSnl, num_c=CodingSOSnl, den_r=CodingSOSnl, den_c=CodingSOSnl, num_r_u=CodingSOS, num_c_u=CodingSOS, den_r_u=CodingSOS, den_c_u=CodingSOS, num_collect_r=2, den_collect_r=2, num_collect_c=1, den_collect_c=1, **_common ), )