我得到了两个信号S1和S2(两个值数组),我想知道S1是否与S2是同一个信号,但是移位了(S1和S2的图形表示是相同的,但是S1将被移到右边还是左边)
问题是:我的算法包含插值scipy.interpolate.interp1d
,这个函数在数组中输入NaN值。在
当我试图将S1和S2与内部的NaN关联时,相关数组总是[NaN, NaN, NaN, ... , NaN, NaN, NaN]
我的目的是: 1) 检测S1和S2是否是同一信号(如果相关性高于某个阈值,我将认为它们是相同的信号) 2) 如果有,检测它们之间的移动,这样我就可以移除它
为了说明我的算法,我创建了一个简单的代码
import numpy as np
from scipy.signal import correlate
norm = np.linalg.norm
x = np.array([np.nan,1,2,3,0,0,np.nan])
y = np.array([1,2,3,0,0,np.nan,np.nan,np.nan])
corr = correlate(x, y)
print(corr/(norm(x)*norm(y)))
这里的相关函数是scipy.signal.correlate
,但是我尝试了np.关联我也得到了同样的结果
在一个stackoverflow帖子中,我尝试了以下方法:
^{pr2}$但我还是只有NaN值。。在
我做错什么了吗?在
如果任何信号包含NaN,则retusrn将全部为NaN。
使用此方法首先删除NAN,然后使用相关函数:
相关问题 更多 >
编程相关推荐