1

MATLAB의 기능을 사용하여 샘플링 주파수 1000Hz의 이산 시간 신호 700ms의 전력 스펙트럼 밀도 추정 (PSD)을 계산하려고합니다. 이 함수는 PSD 추정값을 산출하는 데 사용 된 자동 회귀 모델의 모델 순서를 필요로합니다.자동 회귀 (AR) 모델의 모델 순서를 계산하십시오

적합성의 정확성을 예측하기 위해이 모델 순서를 어떻게 추정 할 수 있습니까? AIC, BIC, GIC과 같은 기준은 모델 순서를 추정하는 데 사용할 수 있지만 matlab에서 사용하는 방법을 찾을 수 없다는 것을 알게되었습니다. 누구든지 도와 줄 수 있습니까? 입력 시간 신호는 [700 129]입니다.

고맙습니다.

답변

0

신호가 안정적이라면 ACF가 감쇠하기 시작할 때 각 시험의 자기 상관 함수를보고 지연 시간을 설정하십시오.

autocorr(Y); 

당신이 (아마 째려 129 개 신호를 일반화보다 쉽습니다)보다 양적 적합을 얻고 싶다면

. 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 

이제 가장 낮은 것을 골라 내고 싶은 BIC 점수가 있습니다. 이 경우 평균 신호를 사용합니다. 실제 분포에주의하고 조밀 한 분포로
중간 값을 선택하십시오. AIC를 사용하여 평가할 수도 있습니다.

[~,order_ind] = min(mean(bic,1)); 
order = bound(order_ind);