autolpc.m

来自「(源代码)基于计算机的信号处理实践 栾晓明译」· M 代码 · 共 33 行

M
33
字号
function   [A, G, r, a] = autolpc(x, p)
%AUTOLPC      Autocorrelation Method for LPC
%-------            
%   Usage: [A, G, r, a] = autolpc(x, p)
%
%       x : vector of input samples
%       p : LPC model order
%       A : prediction error filter, (A = [1; -a])
%           (NOTE: minus in definition of a_k)
%       G : rms prediction error
%       r : autocorrelation coefficients: lags = 0:p
%       a : predictor coefficients (without minus sign)
%
%--- see also ATOK, KTOA

%---------------------------------------------------------------
% copyright 1994, by C.S. Burrus, J.H. McClellan, A.V. Oppenheim,
% T.W. Parks, R.W. Schafer, & H.W. Schussler.  For use with the book
% "Computer-Based Exercises for Signal Processing Using MATLAB"
% (Prentice-Hall, 1994).
%---------------------------------------------------------------

x = x(:);
L = length(x);
r = zeros(p+1,1);
for i=0:p
   r(i+1) = x(1:L-i)' * x(1+i:L);
end
R = toeplitz(r(1:p));
a = R\r(2:p+1);    %<--- compute inv(R)
A = [1; -a];
G = sqrt(sum(A.*r));

⌨️ 快捷键说明

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