主题:[讨论]AR模型burg算法,高手帮我看一下哪里不对,谢谢
clear
close all
x %有待输入
N=max(size(x));
order=5;
ef=zeros(order+1,N);%ef是前项误差
eb=zeros(order+1,N);%bf是后项误差
%mse=zeros(order+1,1);mse是预测误差的均方值
%r=zeros(order+1,1);
a=zeros(order+1,order+1);
a(:,1)=1;
ef(1,:)=x;
eb(1,:)=x;
mse(1)=sum(x.^2)/N;
for k=1:order;
ef_temp=ef(k,k+1:N);
bf_temp=eb(k,k:N-1);
r(k+1)=2*sum(ef_temp.*bf_temp)/sum(ef_temp.*ef_temp+bf_temp.*bf_temp);
mse(k+1)=(1-(r(k+1))^2)*mse(k);
ef(k+1,:)=ef(k,:)+[0,r(k+1)*eb(k,1:N-1)];
eb(k+1,:)=[0,eb(k,1:N-1)]+r(k+1)*ef(k,:);
for i=1:k
a(k+1,i+1)=a(k,i+1)+r(k+1)*a(k,k-i+1);
end
end
mse(order+1)
a(order+1,:)
close all
x %有待输入
N=max(size(x));
order=5;
ef=zeros(order+1,N);%ef是前项误差
eb=zeros(order+1,N);%bf是后项误差
%mse=zeros(order+1,1);mse是预测误差的均方值
%r=zeros(order+1,1);
a=zeros(order+1,order+1);
a(:,1)=1;
ef(1,:)=x;
eb(1,:)=x;
mse(1)=sum(x.^2)/N;
for k=1:order;
ef_temp=ef(k,k+1:N);
bf_temp=eb(k,k:N-1);
r(k+1)=2*sum(ef_temp.*bf_temp)/sum(ef_temp.*ef_temp+bf_temp.*bf_temp);
mse(k+1)=(1-(r(k+1))^2)*mse(k);
ef(k+1,:)=ef(k,:)+[0,r(k+1)*eb(k,1:N-1)];
eb(k+1,:)=[0,eb(k,1:N-1)]+r(k+1)*ef(k,:);
for i=1:k
a(k+1,i+1)=a(k,i+1)+r(k+1)*a(k,k-i+1);
end
end
mse(order+1)
a(order+1,:)