时移信号互相关的计算

时间:2012-10-15 21:42:15

标签: matlab signal-processing

有2个信号A(t),B(t)代表输出功率。 A是延时输出。如何实现这个公式

 Cross_cor(delay)=[A(t + delay) − <A(t)>]*[B(t) − <B(t)>] / {[A(t)-<A(t)]^2 * [B(t)-<B(t)]^2} ^2
  1. 我不明白分子的含义是什么?
  2. 如何绘制彩色地图或类似冲浪图的内容,从而可以看到不同颜色的不同区域。
  3. 如何获得作为延迟移位时间(延迟X轴,Y轴上的Cross_corr)函数的互相关图,以便可以看到峰值?

1 个答案:

答案 0 :(得分:0)

我要说[X]是X的平均值:

  

R(dt)= [(A(t + dt) - [A(t)])*(B(t) - [B(t)])] /(std(A)* std(B) )

分子采用两个函数A(t)和B(t)并使它们居中,这就是减去均值所做的。我可以创建两个新功能,使这一切看起来更容易一些:

  

C(t)= A(t) - [A(t)]   D(t)= B(t) - [B(t)]

然后:

  

R(dt)= [C(t + dt)* D(t)] /(std(C)* std(D))

现在我将这两个功能结合起来并采取平均值。如果这两个函数彼此精确地移动,则这将是1,这意味着正相关。

您可以通过执行以下操作在Matlab中执行此操作:

a = randn(1,50);
b = randn(1,50);

x1 = mean((a - mean(a)) .* (b - mean(b)))/(std(a) * std(b))

这给了我dt = 0的crosscor,另一个dt do:

x2 = mean((a(2:50) - mean(a(2:50))) .* (b(1:49) - mean(b(1:49))))/(std(a) * std(b))