在Matlab中,噪声和信号之间的相关性不接近于零

时间:2015-09-26 00:48:53

标签: matlab

我是Matlab的初学者。 我有一个问题,为什么下面的相关out_cor(m)不接近零?我的理解是否有任何问题:随机噪声信号与确定的信号无关,即使N非常大。 谢谢你的hlep。 问候 杰夫

N=1024*4;
f0=1e3;
fs=64*f0;
n=1:N;x=0.01*randn(1,N);
y=sin(2*pi*f0*n/fs);
figure(1)
plot(n,x,n,y);
out_cor=xcorr(x-mean(x),y);
figure(2)
plot(out_cor);

1 个答案:

答案 0 :(得分:1)

没有缩放选项的 xcorr 的输出将为您提供一个相关序列,该序列不会被样本数量标准化。你可以看到,如果你绘制这个:

xcorr(y, y)

您的矢量 y 为零均值,因此自相关序列的最大值应等于 y 的方差。在这种情况下,您只需要将相关序列除以 N-1 以查看正确缩放的值。

如果你想看到两个信号如何相互关联,你需要一个参照系。一种方法是将互相关与每个单独信号的自相关值进行比较。更好的方法是测量相关系数,它是序列的标准化值,范围从-1到1.只需传递一个额外的参数,就可以使用 xcorr 执行此操作:

xcorr(x, y, 'coeff')

系数1是完美匹配,-1是完全相反(相关 x -x 会得到这个),0表示信号是完全不相关。