我是这个论坛的新手。我只是想了解如何使用互相关函数计算两个信号之间的延迟(以样本为单位)。为了理解这一点,我编写了一个小的 Matlab 代码。但我发现很难理解结果。
clc;
fm = 1000; //message signal
fs = 10 * fm; //sampling frequency
ts = 1 /fs;
t = 0:ts:1-ts;
x=sin(2*pi*fm*t);
y=cos(2*pi*fm*t);
[r,s] = xcorr(x,y);
subplot(2,1,1);
plot(r);
subplot(2,1,2);
plot(s);
使用此代码获得的结果如下。
从图中,我们可以观察到峰值出现在大约 10,000 个样本处。那么,可以将 10,000 个样本视为两个信号之间的延迟(以样本为单位)吗?在这种情况下,相应的时间延迟是否为 10000 * 1/10000 = 1 秒?