# MATLAB model for equalizer using LMS algorithm adaptive filter and unexpected output curve

The MATLAB code below is for equalizer using lms algorithm adaptive filter and then plotting MSE (Mean Square Error) Vs Iteration numbers

%% Channel Equalization using Least Mean Square (LMS) algorithm
% Author: SHUJAAT KHAN
clc;clear all;close all;
%% Channel and noise level
h = [0.9 0.3 0.5 -0.1]; % Channel
SNRr = 10;              % Noise Level
%% Input/Output data
N = 1000;               % Number of samples
Bits = 2;               % Number of bits for modulation (2-bit for Binary modulation)
data = randi([0 1],1,N);        % Random signal
d = real(qammod(data,Bits));    % BPSK Modulated signal (desired/output)
r = filter(h,1,d);              % Signal after passing through channel
x = awgn(r, SNRr);              % Noisy Signal after channel (given/input)
%% LMS parameters
epoch = 50;        % Number of epochs (training repmiotion)
mio = 1e-3;         % Learning rate / step size
order=12;           % Order of the equalizer
U = zeros(1,order); % Input frame
W = zeros(1,order); % Initial Weigths
%% LMS Algorithm
for k = 1 : epoch
for n = 1 : N
U(1,2:end) = U(1,1:end-1);  % Sliding window
U(1,1) = x(n);              % Present Input

y = (W)*U';             % Calculating output of LMS
e(n) = d(n) - y;           % Instantaneous error
W = W +  mio * e(n) * U ;  % Weight update rule of LMS
J(k,n) = e(n) * e(n)';        % Instantaneous square error
end
end
%% Calculation of performance parameters
MJ = mean(J,2);     % Mean square error
%% Plots
figure % MSE
plot(10*log10(MJ),'linewidth',lw)
hg=legend('MSE','Location','Best');
grid minor
xlabel('Epochs iterations');
ylabel('Mean squared error (dB)');
title('Cost function');


But the curve plotted is unexpected, as the MSE should have fluctuations across iterations and to be very smooth like that as it LMS algorithm is used

That's because it doesn't take the Expectation in the adaptive equation.

The curve plotted is as the following:

[

Where the expected plot is as the following:

• Looks plausible to me. What exactly did you expect and how is it different from what you see ? – Hilmar Dec 17 '20 at 13:48
• @Hilmar The curve plotted is very smooth and it should contain fluctuations as the algorithm used is LMS algorithm. – Aren dg Dec 18 '20 at 0:30
• Isn't it because of the added noise? – megasplash Dec 18 '20 at 8:45
• @megasplash even without the noise, the same. But my question the curve is so smooth while the expected output cost function to have many fluctuations. – Aren dg Dec 18 '20 at 12:02