- refactored
This commit is contained in:
Executable
+53
@@ -0,0 +1,53 @@
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% %
|
||||
% LMS Algorithm %
|
||||
% %
|
||||
% Written By: Sundar Sankaran and A. A. (Louis) Beex %
|
||||
% DSP Research Laboratory %
|
||||
% Dept. of Electrical and Comp. Engg %
|
||||
% Virginia Tech %
|
||||
% Blacksburg VA 24061-0111 %
|
||||
% %
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
|
||||
|
||||
randn('seed', 0) ;
|
||||
rand('seed', 0) ;
|
||||
|
||||
NoOfData = 8000 ; % Set no of data points used for training
|
||||
Order = 32 ; % Set the adaptive filter order
|
||||
|
||||
Mu = 0.01 ; % Set the step-size constant
|
||||
|
||||
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 LMS
|
||||
|
||||
w = zeros(Order,1) ;
|
||||
|
||||
% LMS Adaptation
|
||||
|
||||
for n = Order : NoOfData
|
||||
D = x(n:-1:n-Order+1) ;
|
||||
d_hat(n) = w'*D ;
|
||||
e(n) = d(n) - d_hat(n) ;
|
||||
w = w + Mu*e(n)*D ;
|
||||
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') ;
|
||||
Reference in New Issue
Block a user