我有以下两个时间序列信号:
import numpy as np
x = np.cos(2*np.pi*np.power(3*(np.linspace(1, 1000, 1000))/1000, 2))
y = np.cos(2*np.pi*(9*(np.linspace(1, 399, 399))/400))
所以x和y的形状分别是(1000,)和。(399,)我想用fastdtwpython 包做以下两个动态时间扭曲:
x是参考信号(较长的信号):
我想映射y到更长的信号形状 ( x.shape=(1000,))。它由以下代码完成:
from scipy.spatial.distance import euclidean
from fastdtw import fastdtw
distance, path = fastdtw(x, y, dist=euclidean) # x:reference signal
inds = [ind[1] for ind in path]
y_warped = y[inds]
在这种情况下,上面的代码可以正常工作并映射y:(399,)到y_warped:(1000,).
y是参考信号(较短的信号):
我想映射x到较短的信号形状 ( y.shape=(399,))。
from scipy.spatial.distance import euclidean
from fastdtw import fastdtw
distance, path = fastdtw(y, x, dist=euclidean) # y:reference signal
inds = [ind[1] for ind in path]
x_warped = x[inds]
但在这种情况下,我x_warped的形状与 相同x,但我希望得到x.shape=(399,)。如何将较长的信号变形为较短的信号?提前致谢!