以下是一个简单的Python代码示例,用于计算两个地震波形的互相关:

import numpy as np

def cross_correlation(x, y):
    '计算两个数组的互相关'
    # 如果数组长度不相等,则用较短的数组进行零填充
    if len(x) != len(y):
        n = max(len(x), len(y))
        x = np.pad(x, (0, n - len(x)), 'constant')
        y = np.pad(y, (0, n - len(y)), 'constant')
    # 计算互相关
    corr = np.correlate(x, y, mode='full')
    # 将互相关结果向左移动一半,使其与原始数组对齐
    corr = np.roll(corr, len(corr) // 2)
    return corr

# 示例用法
x = np.array([1, 2, 3, 4, 5])
y = np.array([0, 1, 0, -1, 0])
corr = cross_correlation(x, y)
print(corr)

在此示例中,我们使用numpy库中的correlate函数来计算互相关。我们还使用numpy的roll函数将结果向左移动一半,以使其与原始数组对齐。请注意,如果两个数组长度不相等,则我们使用numpy的pad函数将较短的数组进行零填充以使其与较长的数组长度相等。

Python地震波形互相关计算代码示例

原文地址: https://www.cveoy.top/t/topic/nH5J 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录