2012-10-17 164 views
0

我試圖產生AR(2)過程中使用MATLAB的濾波器()函數適當地縮放的AR過程,如圖here:生成用MATLAB濾波器()

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

我可能是完全錯誤的(這就是爲什麼這是一個評論,而不是一個答案),但是不應該用'sqrt(nv)'而不是'nv'預乘'randn'? 'nv'是一個方差嗎?我簡單地應用了身份Var(c * X)= c^2 * Var(X)。 –

+0

D'oh。對了謝謝! –

回答

0

如果您在本例中爲0.0392看nv,這就是變化。要創建方差爲a^2的白噪聲,您需要將該序列乘以a。如果a^2 = 0.392那麼a是0.198(非常接近0.2)。所以科林T是正確的,你需要乘以你的randn(1024,1)sqrt(nv)而不是nv