burg.m

来自「AR模型的Burg算法的matlab程序! 只要把程序里面的K的值改为所求问题」· M 代码 · 共 33 行

M
33
字号

%用Burg法计算AR模型的参数!
%下面是一个例子:大家如果遇见其他的题的话,
%可以直接把滤波器的阶次K和数据矢量改变一下,就可以求出参数!
%非常方便!
K=2; %有待输入
x=[1 2 3 4 5];%有待输入

N=max(size(x));
r=[];
%初始化。
ef(1,:)=x;
eb(1,:)=x;
sigma(1)=sum(x.^2)/N;
a=zeros(K+1,K+1);
a(:,1)=1;
for p=2:K+1;
    r(p-1)=2*(ef(p-1,[p:N])*eb(p-1,[p-1:N-1])')/(ef(p-1,[p:N])*ef(p-1,[p:N])'+eb(p-1,[p-1:N-1])*eb(p-1,[p-1:N-1])');
    sigma(p)=(1-r(p-1).^2)*sigma(p-1);
     
    for i=2:p-1
        a(p,i)=a(p-1,i)-r(p-1)*a(p-1,p-i+1);        
    end
    a(p,p)=-r(p-1); 
    for n=2:N
        ef(p,n)=ef(p-1,n)-r(p-1)*eb(p-1,n-1);
        eb(p,n)=-r(p-1)*ef(p-1,n)+eb(p-1,n-1);
    end    
end
r
a=a([2:K+1],[2:K+1])
sigma

⌨️ 快捷键说明

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