我对信号处理一无所知。我需要找到两个一维时间序列之间的相似性。我在某处读到光谱相干性可用于查找两个时间序列之间的相似性。但我无法解决如何使用它。有人可以告诉我如何使用它来计算时间序列之间的相似性。
使用光谱相干性计算时间序列数据之间的相似性
信息处理
连贯性
2022-02-01 09:07:12
1个回答
检查时间序列之间相似性的一种方法是使用互相关: 其中是或的平均值,是或的标准差。
这给了我们一个介于 -1(完全反相关)和 +1(完全相关)之间的值。
有时,这并不像我们希望的那样工作,因为有一些与两个时间序列相关的过滤操作,所以虽然两个时间序列之间有很强的关系,但互相关不是很接近 1。
因此,有时会使用光谱相干性: 其中和之间的交叉谱密度。
现在这是频率的函数,在给定频率下它越接近 1,这两个信号的相关性越密切。
我整理了一个简单的例子R
,说明了互相关和(光谱)相干之间的区别。
上图显示了两个时间序列。中图显示互相关小于 1。下图显示频谱相干性作为频率的函数。
您可以看到,时间序列在较高频率下的相似性与在低频下的相似。
有时,这些值的积分会在有限的带宽上使用,以便得到一个相似度数。
下面的R代码
#15466
x1 <- rnorm(1000)
h <- c(1,3,2,1)/7
x2 <- filter(x1,h, circular=TRUE) + rnorm(1000)/10
par(mfrow=c(3,1))
plot(x1,type="l",col="blue")
lines(x2, col="green",lwd=5)
title("Original and filtered noise signals")
ccf(x1,x2)
Ixy <- spectrum(cbind(x1,x2), plot=FALSE,spans=c(5,7))
plot(Ixy$coh)h)
其它你可能感兴趣的问题