fri*_*its 7 python numpy scipy resampling
我有一个未等距采样的信号; 需要进一步处理.我以为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()
Run Code Online (Sandbox Code Playgroud)
War*_*ser 13
即使给出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()
Run Code Online (Sandbox Code Playgroud)
生成这个情节:

检查interp1d用于控制插值的选项的文档字符串,还检查其他插值类.
| 归档时间: |
|
| 查看次数: |
7090 次 |
| 最近记录: |