📄 durbin.m
字号:
function [a,xi,kappa] = durbin(r,M)% durbin --> Levinson-Durbin Recursion.%% <Synopsis>% [a,xi,kappa] = durbin(r,M)%% <Description>% The function solves the Toeplitz system of equations% % [ r(1) r(2) ... r(M) ] [ a(1) ] = [ r(2) ]% [ r(2) r(1) ... r(M-1) ] [ a(2) ] = [ r(3) ]% [ . . . ] [ . ] = [ . ]% [ r(M-1) r(M-2) ... r(2) ] [ a(M-1) ] = [ r(M) ]% [ r(M) r(M-1) ... r(1) ] [ a(M) ] = [ r(M+1) ]% % (also known as the Yule-Walker AR equations) using the Levinson-% Durbin recursion. Input r is a vector of autocorrelation% coefficients with lag 0 as the first element. M is the order of% the recursion.%% The output arguments are the M estimated LP parameters in the% column vector a, i.e., the AR coefficients are given by [1; -a].% The prediction error energies for the 0th-order to the Mth-order% solution are returned in the vector xi, and the M estimated% reflection coefficients in the vector kappa.%% Since kappa is computed internally while computing the AR coefficients,% then returning kappa simultaneously is more efficient than converting% vector a to kappa afterwards.%% <See Also>% rf2lpc --> Convert reflection coefficients to prediction polynomial.% lpc2rf --> Convert prediction polynomial to reflection coefficients.% <References>% [1] J.R Deller, J.G. Proakis and F.H.L. Hansen, "Discrete-Time% Processing of Speech Signals", IEEE Press, p. 300, (2000).%% <Revision>% Peter S.K. Hansen, IMM, Technical University of Denmark%% Last revised: September 30, 2000%-----------------------------------------------------------------------% Initialization.kappa = zeros(M,1);a = zeros(M,1);xi = [r(1); zeros(M,1)];% Recursion.for (j=1:M) kappa(j) = (r(j+1) - a(1:j-1)'*r(j:-1:2))/(xi(j)+eps); a(j) = kappa(j); a(1:j-1) = a(1:j-1) - kappa(j)*a(j-1:-1:1); xi(j+1) = xi(j)*(1 - kappa(j)^2);end%-----------------------------------------------------------------------% End of function durbin%-----------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -