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