<p dir="auto">This is on scipy 0.13.0:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="from scipy.signal import lti
import matplotlib.pyplot as plt

for zeta in [0.99999, 1.00000, 1.00001]:
    H = lti([1],[1,2*zeta,1])
    t,y = H.step()
    plt.figure()
    plt.plot(t,y)"><pre class="notranslate"><code class="notranslate">from scipy.signal import lti
import matplotlib.pyplot as plt

for zeta in [0.99999, 1.00000, 1.00001]:
    H = lti([1],[1,2*zeta,1])
    t,y = H.step()
    plt.figure()
    plt.plot(t,y)
</code></pre></div>
<p dir="auto">The zeta = 0.99999 and 1.00001 cases give expected results, but with zeta = 1.00000 the output zooms off to infinity.</p>
<p dir="auto">A 6th order analog filter appears very distorted in scipy.signal.step compared to Octave:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="z = array([], dtype=float64)
p = array([-2.8576, -2.8576, -2.8576, -2.8576, -2.8576, -2.8576])
k = 544.49693870986994
t_s, y_s = step((z, p, k), T=t)
plot(t_s, y_s)"><pre class="notranslate"><code class="notranslate">z = array([], dtype=float64)
p = array([-2.8576, -2.8576, -2.8576, -2.8576, -2.8576, -2.8576])
k = 544.49693870986994
t_s, y_s = step((z, p, k), T=t)
plot(t_s, y_s)
</code></pre></div>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/ea9028439e65210f5e02b6c8be9a974834a241bbcf92c292768785d819512af1/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f35383631312f3834363331362f35383539376330632d663430622d313165322d386537612d3761356337393263366233312e706e67"><img src="https://camo.githubusercontent.com/ea9028439e65210f5e02b6c8be9a974834a241bbcf92c292768785d819512af1/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f35383631312f3834363331362f35383539376330632d663430622d313165322d386537612d3761356337393263366233312e706e67" alt="scipy 6th order step response screwed up" data-canonical-src="https://f.cloud.github.com/assets/58611/846316/58597c0c-f40b-11e2-8e7a-7a5c792c6b31.png" style="max-width: 100%;"></a></p>
<p dir="auto">vs Octave:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="z = []
p = [-2.8576  -2.8576  -2.8576  -2.8576  -2.8576  -2.8576]
k = 544.49693870986994
step(zpk(z, p, k), 8)"><pre class="notranslate"><code class="notranslate">z = []
p = [-2.8576  -2.8576  -2.8576  -2.8576  -2.8576  -2.8576]
k = 544.49693870986994
step(zpk(z, p, k), 8)
</code></pre></div>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/b5a54696c614fab49409e13555fef1bf03ec226d34fa0b2ad1cb6c8e774d0682/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f35383631312f3834363331312f33303537323164322d663430622d313165322d396632632d6634646534393832646338332e706e67"><img src="https://camo.githubusercontent.com/b5a54696c614fab49409e13555fef1bf03ec226d34fa0b2ad1cb6c8e774d0682/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f35383631312f3834363331312f33303537323164322d663430622d313165322d396632632d6634646534393832646338332e706e67" alt="octave step response" data-canonical-src="https://f.cloud.github.com/assets/58611/846311/305721d2-f40b-11e2-9f2c-f4de4982dc83.png" style="max-width: 100%;"></a></p>
<p dir="auto">Even 4th order filters are visibly inaccurate, settling at 1.02 instead of 1.00, which is not a very high-order filter</p>