1

MATLABの関数を使用して、サンプリング周波数1000 Hzの離散時間信号700 msのパワースペクトル密度推定値(PSD)を計算しようとしています。この関数は、PSD推定値を生成するために使用される自己回帰モデルのモデル次数を必要とします。自己回帰(AR)モデルのモデル次数を推定する

フィットの正確さを予測するには、このモデルの順序をどのように推定できますか。 AICBICGICのような基準はほとんどないことがわかりましたが、これはモデルの順番を推測するのに使うことができますが、matlabでそれらを使用する方法を見つけることができませんでした。誰も助けることができますか?私の入力時間信号は[700 129]です。

ありがとうございます!

答えて

0

信号が安定していれば、各試行の自己相関関数を見て、ACFが減衰し始めるときの遅れを設定することができます。

より定量的なフィットを得たい場合(これはおそらく、信号を見て、一般化するよりも簡単です)。あなたはARモデルに合うことができます

最初にすることは、評価したいオーダーの範囲を選択することです(私は、いくつかの信号についてACFを見て、ACFには信号が比較的ないところで注文する) 。

bounds = 1:12; % Order bounds 

ここで、各注文の可能性を繰り返し、AIC、BICを計算します。低い値==より良いフィット。

for p = bounds 
    myModel = arima(p,0,0);  % no moving average (I'm not sure about no MA...) 
    for sig_ind = 1:size(sig_mat,2) 
     % Get the log likelihoods 
     [~,~,LL(p,sig_ind)]= estimate(myModel,sig_mat(:,sig_ind)); 
    end 
end 
for sig_ind = 1:size(sig_mat,2) 
    [aic(sig_ind,:),bic(sig_ind,:)] = aicbic(LL(:,sig_ind),bounds,size(sig_mat,1)); 
end 

これで、あなたは最低のものを選びたいと思っています。 この場合、信号全体に平均値を使用します。 本当に注意してください。分布を見て、低い値を選択します
メジアンの分布が狭いです。評価するためにAICを使用することもできます。

[~,order_ind] = min(mean(bic,1)); 
order = bound(order_ind); 
関連する問題