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


Python SciPy signal.sweep_poly用法及代码示例


本文简要介绍 python 语言中 scipy.signal.sweep_poly 的用法。

用法:

scipy.signal.sweep_poly(t, poly, phi=0)#

Frequency-swept 余弦发生器,具有与时间相关的频率。

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

参数

t ndarray

评估波形的时间。

poly 一维 数组 或 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_poly ndarray

一个 numpy 数组,其中包含在t与请求的time-varying 频率。更准确地说,函数返回cos(phase + (pi/180)*phi),其中阶段是积分(从 0 到 t)2 * pi * f(t);f(t)定义如上。

注意

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

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

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

f(t) = poly(t)

最后,输出 s 是:

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

其中阶段是从 0 到的积分t2 * pi * f(t),f(t)如上定义。

例子

计算瞬时频率的波形:

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

在 0 <= t <= 10 的区间内。

>>> import numpy as np
>>> 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()
scipy-signal-sweep_poly-1.png

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.signal.sweep_poly。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。