示例#1
0
 def zplane(self, a, b):
     # Fix axes
     ax = plt.gca()
     ax.spines['left'].set_position('zero')
     ax.spines['bottom'].set_position('zero')
     ax.spines['right'].set_visible(False)
     ax.spines['top'].set_visible(False)
     # Draw circle
     circle = patches.Circle((0, 0),
                             radius=1,
                             color='black',
                             ls='dashed',
                             fill=False)
     ax.add_patch(circle)
     # Make a and b of equal length
     a = numpy.append(a, numpy.repeat(0, max(len(a), len(b)) - len(a)))
     b = numpy.append(b, numpy.repeat(0, max(len(a), len(b)) - len(b)))
     # Plot poles
     p = numpy.roots(a)
     plt.plot(p.real, p.imag, 'kx', ms=7)
     # Plot zeros
     z = numpy.roots(b)
     plt.plot(z.real, z.imag, 'ko', ms=7)
     plt.axis('scaled')
     plt.show()
示例#2
0
 def stepz(self, signal_in, a, b):
     step = numpy.repeat(0., len(signal_in))
     step[numpy.where(signal_in >= 0)] = 1.
     response = signal.lfilter(b, a, step)
     return response
示例#3
0
 def impz(self, signal_in, a, b):
     impulse = numpy.repeat(0., len(signal_in))
     impulse[numpy.where(signal_in == 1)] = 1.
     response = signal.lfilter(b, a, impulse)
     return response