def test_precheck(self):
     """Test function for simulateDSM_* preliminary 1/1"""
     from deltasigma._utils import _get_zpk
     zeros, poles, _ = _get_zpk(self.H)
     assert np.allclose(cplxpair(zeros), self.zeros, atol=1e-6, rtol=1e-4)
     assert np.allclose(cplxpair(poles), self.poles, atol=1e-6, rtol=1e-4)
     assert np.allclose(self.ABCD, self.ABCD_ref, atol=1e-5, rtol=1e-3)
     assert np.allclose(self.u, self.u_ref, atol=1e-5, rtol=1e-3)
示例#2
0
 def test_precheck(self):
     """Test function for simulateDSM_* preliminary 1/1"""
     from deltasigma._utils import _get_zpk
     zeros, poles, _ = _get_zpk(self.H)
     assert np.allclose(cplxpair(zeros), self.zeros, atol=1e-6, rtol=1e-4)
     assert np.allclose(cplxpair(poles), self.poles, atol=1e-6, rtol=1e-4)
     assert np.allclose(self.ABCD, self.ABCD_ref, atol=1e-5, rtol=1e-3)
     assert np.allclose(self.u, self.u_ref, atol=1e-5, rtol=1e-3)
示例#3
0
def test_get_zpk():
    """Test function for _get_zpk()"""
    from scipy.signal import zpk2ss
    z = (.4, )
    p = (.9, .1 + .2j, .1 - .2j)
    k = .4
    zt, pt, kt = _get_zpk(zpk2ss(z, p, k))
    assert np.allclose(zt, z, atol=1e-8, rtol=1e-5)
    assert np.allclose(pt, p, atol=1e-8, rtol=1e-5)
    assert np.allclose((kt, ), (k, ), atol=1e-8, rtol=1e-5)
    zt, pt, kt = _get_zpk(zpk2tf(z, p, k))
    assert np.allclose(zt, z, atol=1e-8, rtol=1e-5)
    assert np.allclose(pt, p, atol=1e-8, rtol=1e-5)
    assert np.allclose((kt, ), (k, ), atol=1e-8, rtol=1e-5)
    zt, pt, kt = _get_zpk(lti(z, p, k))
    assert np.allclose(zt, z, atol=1e-8, rtol=1e-5)
    assert np.allclose(pt, p, atol=1e-8, rtol=1e-5)
    assert np.allclose((kt, ), (k, ), atol=1e-8, rtol=1e-5)
示例#4
0
def test_get_zpk():
    """Test function for _get_zpk()"""
    from scipy.signal import zpk2ss
    z = (.4,)
    p = (.9, .1 + .2j, .1 - .2j)
    k = .4
    zt, pt, kt = _get_zpk(zpk2ss(z, p, k))
    assert np.allclose(zt, z, atol=1e-8, rtol=1e-5)
    assert np.allclose(pt, p, atol=1e-8, rtol=1e-5)
    assert np.allclose((kt, ), (k, ), atol=1e-8, rtol=1e-5)
    zt, pt, kt = _get_zpk(zpk2tf(z, p, k))
    assert np.allclose(zt, z, atol=1e-8, rtol=1e-5)
    assert np.allclose(pt, p, atol=1e-8, rtol=1e-5)
    assert np.allclose((kt, ), (k, ), atol=1e-8, rtol=1e-5)
    zt, pt, kt = _get_zpk(lti(z, p, k))
    assert np.allclose(zt, z, atol=1e-8, rtol=1e-5)
    assert np.allclose(pt, p, atol=1e-8, rtol=1e-5)
    assert np.allclose((kt, ), (k, ), atol=1e-8, rtol=1e-5)
示例#5
0
def test_minreal():
    """Test function for minreal()"""
    from scipy.signal import zpk2ss
    z = np.array([0, 1])
    p = np.array([1, .5 + .5j, .5 - .5j])
    k = 1
    zt = z[:-1]
    pt = p[1:]
    pt.sort()
    inobj = (z, p, k)
    ltiobj = minreal(inobj)
    zeros, poles, gain = _get_zpk(ltiobj)
    poles.sort()
    assert np.allclose(zeros, zt, atol=1e-8, rtol=1e-5)
    assert np.allclose(poles, poles, atol=1e-8, rtol=1e-5)
    assert np.allclose((k, ), (gain, ), atol=1e-8, rtol=1e-5)
    inobj = zpk2tf(z, p, k)
    ltiobj = minreal(inobj)
    zeros, poles, gain = _get_zpk(ltiobj)
    poles.sort()
    assert np.allclose(zeros, zt, atol=1e-8, rtol=1e-5)
    assert np.allclose(poles, poles, atol=1e-8, rtol=1e-5)
    assert np.allclose((k, ), (gain, ), atol=1e-8, rtol=1e-5)
    inobj = zpk2ss(z, p, k)
    ltiobj = minreal(inobj)
    zeros, poles, gain = _get_zpk(ltiobj)
    poles.sort()
    assert np.allclose(zeros, zt, atol=1e-8, rtol=1e-5)
    assert np.allclose(poles, poles, atol=1e-8, rtol=1e-5)
    assert np.allclose((k, ), (gain, ), atol=1e-8, rtol=1e-5)
    inobj = lti(z, p, k)
    ltiobj = minreal(inobj)
    zeros, poles, gain = _get_zpk(ltiobj)
    poles.sort()
    assert np.allclose(zeros, zt, atol=1e-8, rtol=1e-5)
    assert np.allclose(poles, poles, atol=1e-8, rtol=1e-5)
    assert np.allclose((k, ), (gain, ), atol=1e-8, rtol=1e-5)
示例#6
0
def test_minreal():
    """Test function for minreal()"""
    from scipy.signal import zpk2ss
    z = np.array([0, 1])
    p = np.array([1, .5 + .5j, .5 - .5j])
    k = 1
    zt = z[:-1]
    pt = p[1:]
    pt.sort()
    inobj = (z, p, k)
    ltiobj = minreal(inobj)
    zeros, poles, gain = _get_zpk(ltiobj)
    poles.sort()
    assert np.allclose(zeros, zt, atol=1e-8, rtol=1e-5)
    assert np.allclose(poles, poles, atol=1e-8, rtol=1e-5)
    assert np.allclose((k,), (gain,), atol=1e-8, rtol=1e-5)
    inobj = zpk2tf(z, p, k)
    ltiobj = minreal(inobj)
    zeros, poles, gain = _get_zpk(ltiobj)
    poles.sort()
    assert np.allclose(zeros, zt, atol=1e-8, rtol=1e-5)
    assert np.allclose(poles, poles, atol=1e-8, rtol=1e-5)
    assert np.allclose((k,), (gain,), atol=1e-8, rtol=1e-5)
    inobj = zpk2ss(z, p, k)
    ltiobj = minreal(inobj)
    zeros, poles, gain = _get_zpk(ltiobj)
    poles.sort()
    assert np.allclose(zeros, zt, atol=1e-8, rtol=1e-5)
    assert np.allclose(poles, poles, atol=1e-8, rtol=1e-5)
    assert np.allclose((k,), (gain,), atol=1e-8, rtol=1e-5)
    inobj = lti(z, p, k)
    ltiobj = minreal(inobj)
    zeros, poles, gain = _get_zpk(ltiobj)
    poles.sort()
    assert np.allclose(zeros, zt, atol=1e-8, rtol=1e-5)
    assert np.allclose(poles, poles, atol=1e-8, rtol=1e-5)
    assert np.allclose((k,), (gain,), atol=1e-8, rtol=1e-5)