scipy.signal.bilinear¶
- scipy.signal.bilinear(b, a, fs=1.0)[源代码]¶
- 使用双线性变换从模拟过滤返回数字IIR过滤。 - 使用Tustin的方法将一组极点和零点从模拟s平面转换到数字z平面,该方法替换 - (z-1) / (z+1)为- s保持频率响应的形状。- 参数
- barray_like
- 模拟过滤传递函数的分子。 
- aarray_like
- 模拟过滤传递函数的分母。 
- fs浮动
- 采样率,与普通频率相同(例如,赫兹)。在此函数中不执行任何预翘曲。 
 
- 退货
- zndarray
- 变换后的数字过滤传递函数的分子。 
- pndarray
- 变换后的数字过滤传递函数的分母。 
 
 - 参见 - 示例 - >>> from scipy import signal >>> import matplotlib.pyplot as plt - >>> fs = 100 >>> bf = 2 * np.pi * np.array([7, 13]) >>> filts = signal.lti(*signal.butter(4, bf, btype='bandpass', ... analog=True)) >>> filtz = signal.lti(*signal.bilinear(filts.num, filts.den, fs)) >>> wz, hz = signal.freqz(filtz.num, filtz.den) >>> ws, hs = signal.freqs(filts.num, filts.den, worN=fs*wz) - >>> plt.semilogx(wz*fs/(2*np.pi), 20*np.log10(np.abs(hz).clip(1e-15)), ... label=r'$|H_z(e^{j \omega})|$') >>> plt.semilogx(wz*fs/(2*np.pi), 20*np.log10(np.abs(hs).clip(1e-15)), ... label=r'$|H(j \omega)|$') >>> plt.legend() >>> plt.xlabel('Frequency [Hz]') >>> plt.ylabel('Magnitude [dB]') >>> plt.grid() 