使用外推图Python

时间:2017-06-20 12:01:00

标签: python arrays numpy matplotlib

我有一个包含XY数据的2D numpy数组。轴X包含分辨率为纳秒的时间信息。我的问题出现了,因为我需要比较simulated signalreal signalsimulated signal的问题在于,具有优化目的的模拟器具有不同的步长,如图2所示。 1。

Fig 1 - Simulated Data

另一方面,我的实际数据是通过一个振荡器获得的,你的数据在记录的每个点之间有1 ns的差异。因此,我需要在X轴上使用相同的比例来进行正确的比较。我怎样才能获得额外的积分来使我的数据在点之间保持恒定的步长?

编辑1

我需要这个新点填充我的数组以使模拟数据具有恒定步长,如图2中所示。 Fig 2

绿点显示从外推数据中提取的数据示例。

2 个答案:

答案 0 :(得分:0)

执行此操作的常用方法是简单地复制一些点(添加具有相同平均值的点不会修改大部分统计值)
因此,每次更改比例时都必须更改数据集。每次换模都要花很多时间,但这很容易。如果您不必过多地改变比例,可以试试。

答案 1 :(得分:0)

使用scipy interpolate模块解决了此问题。例如

<强> interpolate.py

import matplotlib.pyplot as plt
from scipy import interpolate as inter
import numpy as np


Fs = 0.1
f = 0.01
sample = 10

x = np.arange(sample)
y = np.sin(2 * np.pi * f * x / Fs)

inte = inter.interp1d(x,y)

new_x = np.arange(0,9,0.1)
new_y = inte(new_x)
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.scatter(new_x,new_y,s=5,marker='.')
ax1.scatter(x,y,s=50,marker='*')

plt.show()

此代码给出以下结果。

enter image description here