【发布时间】:2015-08-25 09:16:36
【问题描述】:
我有 2 个不同长度的信号,其中较短的信号与移位的较长 n 个样本相同。我想找到这两个信号之间的最大归一化互相关。由于它是标准化的,应该给出 1。xcorr 函数滞后从 -441 到 441 个样本不等。
这将在稍后用于稍微不同的信号,但现在我正在尝试使用相同的信号。
零填充(正如我在图像中所做的那样)给我一个错误的相关性,因为零成为相关性计算的一部分。
任何想法如何做到这一点?
【问题讨论】:
-
hmmm,我不认为零填充应该给你错误的解决方案,你使用matlab xcorr吗?
-
这不是超级正确的,但是:假设你有信号 A 和 B,每个尺寸(B 是你图片中的蓝色),你可以
xcorr(A(A~=0), B(A~=0)) -
"xcorr" 与 'coef' 选项打开提供 0.52 而不是 1 的相关性(在这种特定情况下),我假设这是因为 zeropadding 不“允许”最大相关性为 1。@RobertStettler,所以基本上你只是在相关性计算中不包括零值?
-
是的,这就是为什么我说“不是超级骗子正确”,如果很清楚,前 n 和最后 m 条目总是为零,那么您可以使用
find(..., 'first')和 @ 987654326@
标签: matlab signal-processing cross-correlation