2016-12-06 6 views
1

Iが機能的な形態であるラグ2の移動平均モデルを実装する行動フィルタ()関数について:Matlabの:異なる

y[n] = h1*x[n] + h2*x[n-1] + h3*x[n-2] 

は係数、h_true = [h1, h2, h3]を有します。

出力はスカラー値のnです。 MatlabはMAまたはARモデルを実装するために使用できるfilter()関数を持っています。しかし、式をそのまま実装した場合と、filter()関数を使用した場合の出力は異なります。正しい方法は何ですか?コードを以下で見つけてください。用語のいくつかはi<3のために消えないが

N = 10; 
x = rand(1,N); 
h_true = [1, 0.6, 0.3]; %h1 = 1, h2 = 0.6; h3 = 0.3 
y(1) = 0.0; 
y(2) = 0.0; 
for i =3 : N 
     y(i) = h_true(1)*x(i) + h_true(2)*x(i-1) + h_true(3)*x(i-2); 

    end 

filtered_y = filter(h_true,1,x); 

yfiltered_y

答えて

1

異なり、すべての用語は、実際にはありません。したがって、yを計算する際には、それらの非消滅条件を考慮してください:

y(1) = h_true(1)*x(1); 
y(2) = h_true(1)*x(2) + h_true(2)*x(1); 
for i =3 : N 
    y(i) = h_true(1)*x(i) + h_true(2)*x(i-1) + h_true(3)*x(i-2); 
end 
関連する問題