durbin_method.m

来自「LPC vocoder LPC vocoder with several op」· M 代码 · 共 25 行

M
25
字号
%Function that solves Ra=r using durbin recursion if R is toeplitz
function [alpha,G]=durbin_method(Rn,p)
E(1)=Rn(1); %E(0)=R(0)
for i=1:1:p
    if i==1;
        k(i)=Rn(i+1)/E(i);
        a(i,i)=k(i);
        E(i+1)=(1-(k(i)^2))*E(i);
    else
        partial_sum=0;
        for j=1:1:i-1
            partial_sum=partial_sum+a(i-1,j)*Rn(i-j+1);
        end
        k(i)=(Rn(i+1)-partial_sum)/E(i);
        a(i,i)=k(i);
        for j=1:1:i-1
            a(i,j)=a(i-1,j)-k(i)*a(i-1,i-j);
        end
        E(i+1)=(1-k(i)^2)*E(i);
    end
end
for j=1:1:p
    alpha(j,1)=a(p,j);
end
G=sqrt(Rn(1)-dot(alpha(:,1),Rn(2:p+1))); %determine gain

⌨️ 快捷键说明

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