如何在Matlab中测试时间序列是否为白噪声?

时间:2013-10-06 03:15:27

标签: matlab noise

如何在Matlab中测试时间序列x(t) (t=1,2...n)是否为白噪声?

x(t)不一定是高斯。 kstest()无效。 autocorr(X)仅测试自相关;它没有显示每个t的均值为零。

由于

2 个答案:

答案 0 :(得分:1)

对于白噪声,每个t的条件不是均值= 0,它是序列的整体均值。每个t的值必须是独立的,整体平均值必须为零。

在针对不同x(t)的{​​{1}}的给定序列中,在每个t上讨论均值是没有意义的(因为每个{{1}只有一个值})

答案 1 :(得分:0)

您可以使用autocorr()来查明信号是否为白噪声。 连续白噪声信号的自相关在t = 0时具有强峰值(狄拉克δ函数),并且对于所有t不等于0都是0。

假设您有一个离散信号,我认为这个有限的离散序列的结果看起来更像是高斯,但随着信号长度的增加,autocorr()将更接近于dirac脉冲。

你提到的另一个条件,零均值可以测试,但不是无限精确,因为你只有有限数量的元素......但如果Matlab给你一个相当接近零的均值,它是一个强有力的指标,你有一个噪音信号。

另外:http://en.wikipedia.org/wiki/Autocorrelation