In this code, a linear equation is used to generate sample data using a slope and bias. Later a Gaussian noise is added to the desired output. The noisy output and original input is used to determine the slope and bias of the linear equation using constrain-LMS algorithm. This implementation of constrain-LMS is based on batch update rule of gradient decent algorithm in which we use the sum of error instead of sample error. You can modify this code to create sample based update rule easily. There are three options of constrain I implemented in this code 'None', 'L1', and 'L2'. You can also change input/noise signal distributions as well to see which constrain work best for which type of signal/noise.
Shujaat Khan (2020). Constrain Least Mean Square Algorithm (https://www.mathworks.com/matlabcentral/fileexchange/72899-constrain-least-mean-square-algorithm), MATLAB Central File Exchange. Retrieved .
Inspired by: Least Mean Square (LMS)