使用matlab对两个信号进行互相关

信息处理 matlab 互相关
2022-02-19 18:59:45

我正在尝试测量两个信号之间的相似性,并且我正在使用互相关来实现这一点。

遵循matlab 示例,我似乎已经完成了这一点,但是,我不明白我得到的情节。在 matlab 示例中给出的解释是:第一个子图表明信号和模板 1 的相关性较低,而第二个子图中的高峰值表明信号存在于第二个模板中。

我的问题是峰值如何表明信号有更多共同点?当它们之间的距离更小时,这两个信号不应该更相关吗?

此外,当我使用我的两个信号进行尝试时,我收到了以下图像:在此处输入图像描述与示例中的图像相比,它看起来非常奇怪,因为我有多个峰值和一条相对较长的直线。

编辑

我添加了两个产生相对相同结果的示例信号。正如评论中所建议的那样,我尝试不对信号进行上采样并使它们的长度相等,但是,结果也并不吸引人。此外,例如,如果峰值在 10 秒,这是否表明信号在第 10 秒是相似的?如果峰值在负时区(t<0s)怎么办?

1个回答

xcorr函数(Matlab 的)计算两个序列之间的互相关x[n]y[n]长度M每个。如果xy随机过程(联合 WSS)然后xcorr返回一个估计值

r^xy[m]=1Mn=0M1x[n]y[n+m]
在两个随机向量上计算xy, 两个随机过程之间的理论互相关XY
rxy[m]=E{X[n]Y[n+m]}
(请注意,可以修改实际估计计算(总和的范围和比例)以使其成为无偏估计并处理超出范围的条目......)

当两个序列属于确定性信号时,则称为确定性互相关,从实际角度计算本质上是相同的,但其解释要视情况而定。

在信号处理理论和信号检测理论中,相关卷积匹配滤波的操作在某个点合并。没有更多细节,可以观察到给定两个序列xy,计算机制和三个操作的结果将是相同的(参数的方向略有修改)

匹配滤波,本质上是将测试信号与目标信号进行卷积,测试信号及时反转。可以看出,如果目标信号内部包含测试信号的副本,则匹配滤波器输出会出现一个独特的峰值。从理论的角度来看,直觉告诉我们,如果目标和测试信号是不相关的(结果是正交的,对于零均值过程),它们的互相关应该产生与正交向量之间的内积一致的低值。但是,当目标信号在某个点包含测试信号的副本时,目标和测试信号之间将存在高度相关性,在输出端接近那些将产生峰值的偏移。

然而,有一些微妙的细节,例如测试信号是否包含多次,多个测试信号是否重叠,以及测试信号是否不是纯粹包含而是通过一些(不可避免的)转换,这使得比较更加困难或更少可靠,除非这些转换是已知的并正确回滚。

在大多数实际场景中,目标信号将由噪声或无关信号加上测试信号组成。对于那些将测试信号与噪声部分进行比较的滞后,输出将是任意的(在理想情况下,当噪声属于零均值白色随机过程时,输出应趋于零,因为总和将依次相加当测试信号属于零均值(遍历)过程时,减去将产生大约为零的测试信号样本。并且当目标信号和测试信号比较时,延迟对应于测试信号在目标信号中的位置,计算应该产生一个较大的值,因为总和本质上是计算测试信号的能量二、总和x[n]2价值观。

注意当信噪比低时;与嵌入在目标信号中的测试信号相比,噪声部分具有较大的幅度,则上述段落变为无效,并且预期峰值隐藏在由于测试信号与包含在其中的噪声之间的不相关计算而产生的随机峰值中目标信号。