python - Python中精确的信号延迟计算

标签 python signals lag correlation

我正在尝试使用互相关计算 Python 中两个信号之间的滞后。除了非常小的时滞外,这两个信号几乎相同。我已经尝试过 numpy.correlate 和 scipy.convolve(快很多)并且两者都工作得很好但给出了一个小错误。我开始怀疑错误是 Python/scipy/numpy 在某处截断 float 的结果。有没有人能够在 Python 中进行高精度信号延迟计算?

最好的问候 弗雷德里克

最佳答案

根据两个信号的功率谱,您确实会得到一个小误差,这是因为互相关在每个滞后没有正确归一化。这是我使用的一个小功能;它标准化了每个滞后的重叠区域,我发现它给出了准确的结果:

def NormCrossCorrSlow(x1, x2,
                  nlags=400):
res=[]
for i in range(-(nlags/2),nlags/2,1):
    if i<0:
        xx1=x1[:i]
        xx2=x2[-i:]
    elif i==0:
        xx1=x1
        xx2=x2
    else:
        xx1=x1[i:]
        xx2=x2[:-i]
    res.append( (xx1*xx2).sum() /( (xx1**2).sum() *(xx2**2).sum() )**0.5)
return numpy.array(res)

关于python - Python中精确的信号延迟计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3825360/

相关文章:

python - 在 Python 中将 GET 请求代理到不同的站点

c - pthread_kill 异步信号在 Linux 上安全吗?

python - 忽略错误代码 141 的 Bash pipefail

c - C 中的 Gtk+ 3。无法在回调函数中正确转换

r - 如何使用R滞后一个整数变量?

Python 游戏服务器 - 优化网络

python - Django:Celery Worker 未启动(没有任何错误)

python - 仅针对图中曲线的子集显示图例

python - 为每个文件运行 Airflow DAG

flash - 在 FF 中,按键滞后于鼠标