invschur.m

来自「统计智能信号处理的matlab源程序,也不知道网站里有没有。发上来请站长审阅吧」· M 代码 · 共 34 行

M
34
字号
function r = invschur(k,PM)
% Inverse Schur Algorithm (Lattice form to Autocorrelation Conversion)
% --------------------------------------------------------------------
% Usage: r = invschur(k,PM)
%  r = Autocorrelation values
%  k = Lattice filter coefficients (reflection coefficients)
% P0 = Final error variance
%
%-----------------------------------------------------------
% Copyright 2000, by Dimitris G. Manolakis, Vinay K. Ingle,
% and Stephen M. Kogon.  For use with the book
% "Statistical and Adaptive Signal Processing"
% McGraw-Hill Higher Education.
%-----------------------------------------------------------

% Initialization

M = length(k);
r = zeros(M+1,1);
xib = zeros(M,M+1); xif = xib;
xib(1,1) = PM/prod((1-k.*conj(k)));
xif(1,2) = -k(1)*xib(1,1);
xib(1,2) = xif(1,2);

for m = 1:M-1
   xib(m+1,m+1) = xib(m,m) + k(m)*xif(m,m+1);
   xif(m+1,m+2) = -k(m+1)*xib(m+1,m+1);
   for l = m-1:-1:0
      xif(l+1,m+2) = xif(l+2,m+2) - conj(k(l+1))*xib(l+1,m+1);
      xib(l+2,m+2) = k(l+1)*xif(l+1,m+2) + xib(l+1,m+1);
   end
   xib(1,m+2) = xif(1,m+2);
end
r = xib(1,:);

⌨️ 快捷键说明

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