如何绘制信号随时间变化的积分?

2024-09-24 06:21:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个时间依赖的信号。

我想绘制它随时间的积分,时间是x轴,积分值是y轴。

Python有什么方法可以做到这一点吗?

更具体地说:

我有一个时间数组,time,还有一个信号数组,signal。它们的尺寸是一样的。

我需要在time上与scipy.integrate.trapz()集成signal

我不想得到最终的积分,而是希望看到积分随着时间的推移而变化。


Tags: 方法signaltime信号尺寸时间绘制scipy
2条回答

更好的答案是使用可选的"initial"参数。下面是一个完整的示例:

import scipy.integrate as it
import numpy as np 
import matplotlib.pyplot as plt
t=np.linspace(0,1, 100)
y=t**2
y_int = it.cumtrapz(  y  ,  t, initial=0.0)  # y_int is same size as t
plt.plot(t, y_int)
plt.show()

这避免了像time[:-1]这样的奇怪索引

尝试使用scipy.integrate.cumtrapz()代替:

plt.plot(time[:-1], scipy.integrate.cumtrapz(signal, x=time))
plt.show()

它计算包含累积积分值的数组。

http://docs.scipy.org/doc/scipy-0.10.1/reference/generated/scipy.integrate.trapz.html

相关问题 更多 >