互相关和插值以选择最相似的信号

Cross-Correlation and Interpolation to choose the most similar signal

我正在使用 Matlab 执行一些信号处理,我有一个关于互相关和插值以选择最相似信号的问题。

假设我有两个信号 K1 和 K2,采样频率为 30Hz,第三个信号 Q,采样频率为 100Hz。我执行的第一步是对信号 K1 和 K2 进行 样条插值 ,以获得 100Hz 的采样频率。然后,我对所有信号执行 振幅归一化 以便它们具有可比性。

所以现在,我有三个采样频率为 100Hz 的信号,它们都有 不同的长度 。现在我的主要问题是:最后我想选择哪个信号,K1 或 K2,与 Q 更相似,我希望它们具有相同的长度。我考虑了两个假设:

1 - 我内插三个信号到相同的长度,然后我执行互相关并选择具有最大值的信号互相关

2 - 我执行互相关,选择具有最大值互相关的信号,然后我内插这两个信号(Q 和选择的信号)

我的疑问是,在第一个选项中,当我对三个信号进行插值时,我将对具有不同采样频率但相同长度的信号执行互相关。在第二个选项中,我对具有相同采样频率但不同长度的信号执行互相关,然后进行插值。
我不确定这样做的正确方法是什么,或者即使它是无关紧要的。

我使用函数 spline 和 ppval 进行插值,使用函数 xcorr 进行互相关。

1) Spline 可能不是一个足够好的上采样插值器。它非常适合打印和轻量级计算,但不会最大限度地减少失真。最好使用 http://www.mathworks.com/help/signal/ref/intfilt.html

2) 互相关必须对相同采样频率的信号进行。

3)互相关不需要等长的信号,如果Q小于Kn,相关系数为windows的Kn,大小为Q。