如何利用Matlab计算图像上两点的空间自相关函数C以及空间自相关长度d及其相关曲线

已有文献通过图一计算出图二的曲线。但是本人试了xcorr2等多种方法无法计算出相同曲线,求各位指点!
文章中给出的公式如图三。
原文链接如下https://doi.org/10.1038/s41563-022-01194-5
希望大家给予指点!
万分感谢!
空间自相关长度就是图一中肉眼可见的螺旋的大小,希望通过计算的方法将其可视化的展现出来。

img

img

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客: 信号相关性学习笔记及matlab分析声波(振动)信号相关性实例中的 matlab中相关性函数xcorr在声波(振动)信号处理中的应用 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    • matlab中xcorr函数的用法
    xcorr(x,y,'option);
    

    其中x,y,表示两个序列,就是所说的信号。在具体应用时可以手动导入,或者使用程序的方法读取;option表示不同的参数,当option是
    "biased"为有偏的互相关函数估计;
    "unbiased"为无偏的互相关函数估计;
    "coeff"为0延时归一化序列的自相关计算;
    "none"为原始的互相关计算

    • 在声波(振动)信号中的应用
      matlab应用程序:
    clc;
    subplot(3,1,1);
    plot(CH1);//绘制手动导入的原始数据
    DATA1=CH1(53540:66060);//截取一个脉冲响应数据
    DATA2=CH1(103700:116220);//再截取一个脉冲响应数据
    t1=TIME(53540:66060);
    t2=TIME(103700:116220);
    subplot(3,1,2);
    plot(t1,DATA1);
    hold on;
    plot(t2,DATA2);//将两个脉冲响应波形绘制在同意坐标系下
    
    [a,b]=xcorr(DATA1,DATA2,'coeff');//采用归一化的相关系数表示相关性分析结果
     subplot(3,1,3);
    plot(b,a);//绘制相关性序列
    
    

    如下图所示为使用示波器采集的振动信号原始波形数据:
    原始声波波形数据
    上图中时一连串的冲击响应,取其中两个冲击响应作为分析他们的相关性,以此为依据研究冲击响应的稳定性。截取的两个响应数据如下图:
    截取的两个冲击响应的数据
    采用xcorr函数分析后的结果如下:
    相关性分析结果
    上图中横坐标为延迟时间,纵坐标为相关系数。
    结果表明两个脉冲信号的相关性达到了0.65左右,有很强的相关程度。证明该冲激响应的稳定性很高。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

你把具体内容发给我看一下