rls自适应滤波.txt

来自「基于RLS算法matlab小程序」· 文本 代码 · 共 48 行

TXT
48
字号
% RLS 算法 
randn('seed', 0) ; 
rand('seed', 0) ; 

NoOfData = 8000 ; % Set no of data points used for training 
Order = 32 ; % Set the adaptive filter order 

Lambda = 0.98 ; % Set the forgetting factor 
Delta = 0.001 ; % R initialized to Delta*I 

x = randn(NoOfData, 1) ;% Input assumed to be white 
h = rand(Order, 1) ; % System picked randomly 
d = filter(h, 1, x) ; % Generate output (desired signal) 

% Initialize 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 ; 

% Plot results 

figure ; 
plot(20*log10(abs(e))) ; 
title('Learning Curve') ; 
xlabel('Iteration Number') ; 
ylabel('Output Estimation Error in dB') ; 

figure ; 
semilogy(w_err) ; 
title('Weight Estimation Error') ; 
xlabel('Iteration Number') ; 
ylabel('Weight Error in dB') ;

⌨️ 快捷键说明

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