gpt4 book ai didi

python - 使用 scipy.signal.resample 重采样时间

转载 作者:太空狗 更新时间:2023-10-29 21:26:43 27 4
gpt4 key购买 nike

我有一个信号不是等距采样的;为了进一步处理它需要。我以为 scipy.signal.resample 会做,但我不明白它的行为。

信号在 y 中,相应的时间在 x 中。重采样预计在 yy 中进行,所有相应的时间都在 xx 中。有谁知道我做错了什么或如何实现我的需要?

此代码不起作用:xx 不是时间:

import numpy as np
from scipy import signal
import matplotlib.pyplot as plt

x = np.array([0,1,2,3,4,5,6,6.5,7,7.5,8,8.5,9])
y = np.cos(-x**2/4.0)
num=50
z=signal.resample(y, num, x, axis=0, window=None)
yy=z[0]
xx=z[1]
plt.plot(x,y)
plt.plot(xx,yy)
plt.show()

最佳答案

即使您给出 x 坐标(对应于 t 参数),resample假设采样是均匀的。

考虑使用 scipy.interpolate 中的一个单变量插值器.

例如,这个脚本:

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

x = np.array([0,1,2,3,4,5,6,6.5,7,7.5,8,8.5,9])
y = np.cos(-x**2/4.0)

f = interpolate.interp1d(x, y)

num = 50
xx = np.linspace(x[0], x[-1], num)
yy = f(xx)

plt.plot(x,y, 'bo-')
plt.plot(xx,yy, 'g.-')
plt.show()

生成此图:

plot

检查 interp1d 的文档字符串用于控制插值的选项,并查看其他插值类。

关于python - 使用 scipy.signal.resample 重采样时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20889501/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com