2021-11-24 python互相关函数xcorr

def xcorr(a,b,mode ='coef'):
    fa = np.fft.fft(a,n=len(a)*2-1)
    fb = np.fft.fft(b,n=len(a)*2-1)
    xx = fa*np.conj(fb)
    xcc = np.fft.fftshift(np.fft.ifft(xx))
    aa = fa*np.conj(fa)
    xaa = np.fft.fftshift(np.fft.ifft(aa))
    bb = fb*np.conj(fb)
    xbb = np.fft.fftshift(np.fft.ifft(bb))
    if mode == 'coef':
        xcc = xcc/np.sqrt(xaa[len(a)-1]*xbb[len(b)-1])
    return np.real(xcc)

以上为政宏老哥写的xcorr函数,对应numpy或者scipy的为

cc = np.correlate(lope1, lope, mode='full')/np.sqrt(np.correlate(lope,lope,mode='valid')[0]
                                                                *np.correlate(lope1,lope1,mode='valid')[0])

速度提升巨大,lgnb,感谢🙏

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容