1

我正在尝试使用pmcov()MATLAB 的函数来计算 700 ms 长、采样频率为 1000 Hz 的离散时间信号的功率谱密度估计 (PSD)。此函数需要用于生成 PSD 估计的自回归模型的模型阶数。

如何估计此模型顺序以预测拟合的正确性?我知道很少有像AIC,BIC之类的标准GIC可用于估计模型阶数,但在 matlab 中找不到如何使用它们。任何人都可以帮忙吗?我的输入时间信号是一个[700 129]矩阵。

非常感谢!

4

1 回答 1

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);
于 2017-05-16T17:32:07.513 回答