scipy.signal.sweep_poly

scipy.signal.sweep_poly(t, poly, phi=0)[源代码]

扫频余弦发生器,频率随时间变化。

此函数生成瞬时频率随时间变化的正弦函数。时间的频率 t 由多项式给出 poly

参数
tndarray

评估波形的时间。

poly一维array_like或numpy.poly1d的实例

用多项式表示的期望频率。如果 poly 是长度为n的列表或ndarray,则 poly 是多项式的系数,瞬时频率是

f(t) = poly[0]*t**(n-1) + poly[1]*t**(n-2) + ... + poly[n-1]

如果 poly 是numpy.poly1d的实例,则瞬时频率为

f(t) = poly(t)

phi浮动,可选

相位偏移(以度为单位),默认值:0。

退货
sweep_polyndarray

一个Numpy数组,该数组包含在 t 具有所请求的时变频率。更准确地说,该函数返回 cos(phase + (pi/180)*phi) ,在哪里 phase 是的整数(从0到t) 2 * pi * f(t)f(t) 是上面定义的。

参见

chirp

注意事项

0.8.0 新版功能.

如果 poly 是长度的列表或ndarray n 的元素,则 poly 是多项式的系数,瞬时频率为:

f(t) = poly[0]*t**(n-1) + poly[1]*t**(n-2) + ... + poly[n-1]

如果 poly 是一个实例,它是 numpy.poly1d ,则瞬时频率为:

f(t) = poly(t)

最后,输出 s 是:

cos(phase + (pi/180)*phi)

哪里 phase 是从0到 t2 * pi * f(t)f(t) 如上所述。

示例

使用瞬时频率计算波形::

f(t) = 0.025*t**3 - 0.36*t**2 + 1.25*t + 2

在间隔0≤t≤10上。

>>> from scipy.signal import sweep_poly
>>> p = np.poly1d([0.025, -0.36, 1.25, 2.0])
>>> t = np.linspace(0, 10, 5001)
>>> w = sweep_poly(t, p)

绘制它:

>>> import matplotlib.pyplot as plt
>>> plt.subplot(2, 1, 1)
>>> plt.plot(t, w)
>>> plt.title("Sweep Poly\nwith frequency " +
...           "$f(t) = 0.025t^3 - 0.36t^2 + 1.25t + 2$")
>>> plt.subplot(2, 1, 2)
>>> plt.plot(t, p(t), 'r', label='f(t)')
>>> plt.legend()
>>> plt.xlabel('t')
>>> plt.tight_layout()
>>> plt.show()
../../_images/scipy-signal-sweep_poly-1.png