当前位置: 首页>>代码示例>>用法及示例精选>>正文


python scipy signal.cheb1ord用法及代码示例

用法:

scipy.signal.cheb1ord(wp, ws, gpass, gstop, analog=False, fs=None)

Chebyshev I型过滤器订单选择。

返回最低阶数字或模拟Chebyshev I型滤波器的阶次,该阶通滤波器在通带中损耗不超过gpass dB,在阻带中至少具有gstop dB衰减。

参数:

wp, wsfloat

通带和阻带边频率。

对于数字滤波器,它们的单位与fs相同。默认情况下,fs为2 half-cycles /sample,因此将它们从0标准化为1,其中1是奈奎斯特频率。 (因此,wp和ws在half-cycles /样本中。)例如:

  • Lowpass: wp = 0.2, ws = 0.3

  • Highpass: wp = 0.3, ws = 0.2

  • Bandpass: wp = [0.2, 0.5], ws = [0.1, 0.6]

  • Bandstop: wp = [0.1, 0.6], ws = [0.2, 0.5]

对于模拟滤波器,wp和ws是角频率(例如rad /s)。

gpassfloat

通带中的最大损耗(dB)。

gstopfloat

阻带中的最小衰减(dB)。

analogbool, 可选参数

如果为True,则返回一个模拟滤波器,否则返回一个数字滤波器。

fsfloat, 可选参数

数字系统的采样频率。

1.2.0版的新函数。

返回值:

ord整型

符合规格的Chebyshev I型滤波器的最低顺序。

wnndarray或float

切比雪夫固有频率(“ 3dB频率”)用于cheby1给出过滤结果。如果指定了fs,则其单位相同,并且还必须将fs传递给cheby1

例子:

设计一个数字低通滤波器,使通带在3 dB以内,最高可达0.2 *(fs /2),而在高于0.3 *(fs /2)的范围内至少要抑制-40 dB。绘制其频率响应,以灰色显示通带和阻带约束。

>>> from scipy import signal
>>> import matplotlib.pyplot as plt
>>> N, Wn = signal.cheb1ord(0.2, 0.3, 3, 40)
>>> b, a = signal.cheby1(N, 3, Wn, 'low')
>>> w, h = signal.freqz(b, a)
>>> plt.semilogx(w / np.pi, 20 * np.log10(abs(h)))
>>> plt.title('Chebyshev I lowpass filter fit to constraints')
>>> plt.xlabel('Normalized frequency')
>>> plt.ylabel('Amplitude [dB]')
>>> plt.grid(which='both', axis='both')
>>> plt.fill([.01, 0.2, 0.2, .01], [-3, -3, -99, -99], '0.9', lw=0) # stop
>>> plt.fill([0.3, 0.3,   2,   2], [ 9, -40, -40,  9], '0.9', lw=0) # pass
>>> plt.axis([0.08, 1, -60, 3])
>>> plt.show()
../_images/scipy-signal-cheb1ord-1.png

源码:

scipy.signal.cheb1ord的API实现见:[源代码]

相关用法

注:本文由纯净天空筛选整理自 scipy.signal.cheb1ord。非经特殊声明,原始代码版权归原作者所有,本译文的传播和使用请遵循“署名-相同方式共享 4.0 国际 (CC BY-SA 4.0)”协议。