Python地震波形互相关计算代码示例
以下是一个简单的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函数将较短的数组进行零填充以使其与较长的数组长度相等。
原文地址: https://www.cveoy.top/t/topic/nH5J 著作权归作者所有。请勿转载和采集!