0

我正在尝试使用 MATLAB 的 filter() 函数生成 AR(2) 过程,如下所示

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) 数据集?

谢谢,

标记

4

1 回答 1

0

如果您nv在此示例中查看它是 0.0392,这就是方差。要创建具有方差 a^2 的白噪声,您需要将该序列乘以 a。如果 a^2 = 0.392,则 a 为 0.198(非常接近 0.2)。所以 Colin T 是对的,你需要将你的 randn(1024,1) 乘以sqrt(nv)not 乘以nv

于 2012-10-17T06:48:36.887 回答