回 帖 发 新 帖 刷新版面

主题:[讨论]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,:)

回复列表 (共2个回复)

沙发

关于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,:)

我来回复

您尚未登录,请登录后再回复。点此登录或注册