我正在尝试使用MATLAB的filter()函数生成AR(2)过程,如图here:
A=[1 -2.7607 3.8106 -2.6535 0.9238];
% AR(4) coefficients
y=filter(1,A,0.2*randn(1024,1));
% Filter a white noise input to create AR(4) process
[ar_coeffs,nv] =arburg(y,4);
%compare the results in ar_coeffs to the vector A.
我有一个时间序列数据集,并且希望大致匹配模拟数据集中数据的“总”方差。当我在第二行代码中使用nv代替0.2时,我得到的模拟方差太小了。
任何人都可以帮助我纠正这种情况,以生成类似模拟的AR(N)数据集吗?
谢谢,
标记
答案 0 :(得分:0)
如果您在此示例中查看nv
,则为0.0392,这是差异。要创建方差为a ^ 2的白噪声,您需要将该序列乘以a。如果a ^ 2 = 0.392则a为0.198(非常接近0.2)。所以Colin T是对的,你需要将你的randn(1024,1)乘以sqrt(nv)
而不是nv
。