www.pudn.com > yuyinxinhaochulisuanfa.rar > ld.m


function [a,varargout]=ld(r,M) 
% Levinson-Durbin算法程序,返回指定迭代后的滤波器系数以及记录误差变量 
% 的向量 
% 
% 调用格式 
%  [a,e]=ld(r,M) 
%      a=迭代指定次数M后的滤波器系数向量 
%      e=误差向量,记录每次迭代次数后的误差 
%      r=自相关向量,r(1)为偏移量为0的自相关函数值 
%      M=迭代次数 
%  
% 注意:本程序中的r(1)是公式中的r(0),其余以此类推 
% 
 
% 作者:张智林 
% 版本:v1.1 
% 最初编写于2003年3月20日,最后修改于3月22日2:06AM 
% 
% 参考: 
%     龚耀寰,自适应信号处理,P40 
%------------------------------------------------------------- 
 
% 初始化 
e=zeros(1,M); 
a=zeros(1,M); 
 
% 一阶递推 
k=-1*r(2)/r(1); 
a(1)=k; 
e(1)=(1-k^2)*r(1); 
 
 
for m=2:M                  %第二阶到第M阶递推 
    k=-1*[r(m+1)+a(1:m-1)*r(m:-1:2)']/e(m-1); 
    a(m)=k; 
    a(1:m-1)=a(1:m-1)+k*a(m-1:-1:1); 
    e(m)=(1-k^2)*e(m-1); 
end