资源简介
RLS算法中,权矢量随迭代次数的增长而变化的收敛情况
代码片段和文件信息
% RLS算法
randn(‘seed‘ 0) ;
rand(‘seed‘ 0) ;
NoOfData = 8000 ; % Set no of data points used for training
Order = 32 ; % 自适应滤波权数
Lambda = 0.98 ; % 遗忘因子
Delta = 0.001 ; % 相关矩阵R的初始化
x = randn(NoOfData 1) ;%高斯随机系列
h = rand(Order 1) ; % 系统随机抽样
d = filter(h 1 x) ; % 期望输出
% RLS算法的初始化
P = Delta * eye ( Order Order ) ;%相关矩阵
w = zeros ( Order 1 ) ;%滤波系数矢量的初始化
% RLS Adaptation
for n = Order : NoOfData ;
u = x(n:-1:n-Order+1) ;%延时函数
pi_ = u‘ * P ;%互相关函数
k = Lambda + pi_ * u ;
K = pi_‘/k;%增益矢量
e(n) = d(n) - w‘ * u ;%误差函数
w = w + K * e(n) ;%递归公式
PPrime = K * pi_ ;
P = ( P - PPrime ) / Lambda ;%误差相关矩阵
w_err(n) = norm(h - w) ;%真实估计误差
end ;
% 作图表示结果
figure ;
plot(20*log10(abs(e))) ;%| e |的误差曲线
title(‘学习曲线‘) ;
xlabel(‘迭代次数‘) ;
ylabel(‘输出误差估计‘) ;
figure ;
semilogy(w_err) ;%作实际估计误差图
title(‘矢量估计误差‘) ;
xlabel(‘迭代次数‘) ;
ylabel(‘误差权矢量‘) ;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1008 2011-07-24 12:36 RLS算法.m
评论
共有 条评论