如何在Matlab中测试时间序列x(t) (t=1,2...n)
是否为白噪声?
x(t)
不一定是高斯。 kstest()
无效。 autocorr(X)
仅测试自相关;它没有显示每个t的均值为零。
由于
答案 0 :(得分:1)
对于白噪声,每个t
的条件不是均值= 0,它是序列的整体均值。每个t
的值必须是独立的,整体平均值必须为零。
在针对不同x(t)
的{{1}}的给定序列中,在每个t
上讨论均值是没有意义的(因为每个{{1}只有一个值})
答案 1 :(得分:0)
您可以使用autocorr()来查明信号是否为白噪声。 连续白噪声信号的自相关在t = 0时具有强峰值(狄拉克δ函数),并且对于所有t不等于0都是0。
假设您有一个离散信号,我认为这个有限的离散序列的结果看起来更像是高斯,但随着信号长度的增加,autocorr()将更接近于dirac脉冲。
你提到的另一个条件,零均值可以测试,但不是无限精确,因为你只有有限数量的元素......但如果Matlab给你一个相当接近零的均值,它是一个强有力的指标,你有一个噪音信号。