如何在Matlab中测试时间序列是否是白噪声?
问题描述:
如何测试时间序列x(t) (t=1,2...n)
是否是Matlab中的白噪声?如何在Matlab中测试时间序列是否是白噪声?
x(t)
不一定是高斯。 kstest()
将不起作用。 autocorr(X)
只测试自相关;它并不显示每个t的均值为零。
由于
答
对于白噪声,条件不意味着= 0在每个t
,它是用于序列的总体平均值。每个t
的值需要独立,总体平均值需要为零。
在x(t)
针对不同t
给定的顺序,它没有意义谈论平均每t
(因为在每一个t
只有一个值)
答
您可以使用autocorr()来找出如果信号是白噪声或没有。 连续白噪声信号的自相关在t = 0处具有强峰值(狄拉克δ函数),并且对于所有t不等于0而言是0.
假设您有一个离散信号,我假设结果这个有限的离散序列看起来更像高斯信号,但随着信号长度的增加,自动点()将更接近地类似于狄拉克脉冲。
您提到的另一个条件,零均值可以被测试,但不是无限精确的,因为您只有有限数量的元素...但是如果Matlab给出了一个相当接近零的平均值,它是一个强烈的指标你有一个噪音信号。
技术上的值只需要是不相关的是白噪声。 – StrongBad