ls-ar.m

来自「自编函数实现AR模型的最小二乘估计(AR阶数=4)」· M 代码 · 共 49 行

M
49
字号
%自编函数实现AR模型的最小二乘估计
%-----------------------------------------
close all;
clear all;
clc;
N=128;
n=1:128;
a1=sqrt(20);
a2=sqrt(2);
w=randn(128,1);
x=a1*sin(2*pi*0.2*n)+a2*sin(2*pi*0.213*n)+w';%数据源序列
%xcorr
xxcorr=xcorr(x,'unbiased');

%-----------------------------------------
%ls
% Matrix---R4x4阶自相关矩阵
p=4;%AR阶数4
q=20;%q>=p
%matrix
for i=1:p
    for j=1:p
        recorr(i,j)=xxcorr(q+i+j-1-p);%生成自相关序列
    end
end
disp('自相关序列的维数=');%4维
recorrlegnth=size(recorr);
%r

for i=1:p %i=1,2,3,4
    r(i)=xxcorr(q+i);
end
disp('r的维数=');
rlength=size(r)
r=-r';%因为Ra=-r
yyy=(inv(recorr'*recorr)*recorr')*r;
disp('求解序列的维数');
yylength=length(yyy)
for i=1:yylength
    %--------------a=[ap,...,a1]
    yyy1(i)=yyy(yylength+1-i);%序列反转
    %--------------a=[a1,...,ap]
end
figure(1);
freqz(1,yyy1,1024,1);
title('自编函数实现AR模型的最小二乘估计');
legend('AR阶数=4');
grid on;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?