使用scipy.signal.resamp重新采样时间

2024-06-01 08:51:22 发布

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

我有一个不是等距采样的信号,为了进一步处理它需要。我以为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()

Tags: 代码importsignal信号plotasnp时间
1条回答
网友
1楼 · 发布于 2024-06-01 08:51:22

即使给出x坐标(对应于t参数),也^{}假设采样是一致的。

考虑使用^{}中的一个单变量插值函数。

例如,此脚本:

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

检查^{}的docstring以获取控制插值的选项,并检查其他插值类。

相关问题 更多 >