⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 burg.m

📁 在MATLAB上实现burg算法
💻 M
字号:
function a = burg(x,ORDER)
% MADE BY H.X.GUAN,2008/12/18
% BURG ALGORITHEM,AR model

%%%%% Initial %%%%%%
N = length(x);
f = x; % 前向
g = x; % 后向
% 假设x为行向量
P0 = x*x'/N;
PM = P0;
m = 2;
if ORDER>N
    disp('阶数超过向量长度无法计算');
    a = 0;
    return;
end
a = zeros(1,ORDER+1);
am = a;
a(1) = 1;
am(1) = 1;
%%%%%%%%%%%%%%%%%%%%
while ( m <= ORDER+1 )
    sum1 = 0;
    sum2 = 0;
    for n=m:N
        sum1 = sum1 + f(n)*g(n-1);
        sum2 = sum2 + f(n)*f(n) + g(n-1)*g(n-1);
    end
    Km = -1.0*sum1 / (sum2*0.5);
    for i=2:m
        am(i) = a(i) + Km*a(m-i+1);
    end
%    am(m) = Km;
    for i=2:m
        a(i) = am(i);
    end
    PM = (1-Km*Km)*PM;
    for n=2:N
        fm(n) = f(n) + Km*g(n-1);
        gm(n) = Km*f(n) + g(n-1);
    end
    f = fm;
    g = gm;
    m = m + 1;
end

⌨️ 快捷键说明

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