脉冲响应
与matlab中的filter函数相对应,在python中scipy库提供了求解滤波器幅频响应的函数,可以方便的用该函数来求系统的脉冲响应
python
import numpy as np
from scipy import signal
import matplotlib.pyplot as plt
python
N = 50
t = np.linspace(0,50,50)
xn = signal.unit_impulse(N)
b = np.array([1])
a = np.array([1.0, -0.9])
zi = signal.lfilter_zi(b, a)
y, _ = signal.lfilter(b, a, xn, zi=zi*xn[0])
python
fig,ax = plt.subplots()
ax.stem(t, y)
fig.savefig('脉冲响应(离散).png',dpi=500)
也可以输出为连续的曲线
python
fig,ax = plt.subplots()
ax.plot(t, y)
fig.savefig('脉冲响应曲线(连续).png',dpi=500)