注意
转到末尾 下载完整的示例代码。
激光雷达系统、数据和拟合(数据集 1/2)¶
生成由高斯曲线拟合的数据图表
[ 2.70363341 27.82020742 15.47924562 3.05636228]
import numpy as np
import matplotlib.pyplot as plt
import scipy as sp
def model(t, coeffs):
return coeffs[0] + coeffs[1] * np.exp(-(((t - coeffs[2]) / coeffs[3]) ** 2))
def residuals(coeffs, y, t):
return y - model(t, coeffs)
waveform_1 = np.load("waveform_1.npy")
t = np.arange(len(waveform_1))
x0 = np.array([3, 30, 15, 1], dtype=float)
x, flag = sp.optimize.leastsq(residuals, x0, args=(waveform_1, t))
print(x)
fig, ax = plt.subplots(figsize=(8, 6))
plt.plot(t, waveform_1, t, model(t, x))
plt.xlabel("Time [ns]")
plt.ylabel("Amplitude [bins]")
plt.legend(["Waveform", "Model"])
plt.show()
脚本总运行时间:(0 分钟 0.316 秒)