Berikut adalah fungsi LMS dalam bahasa pemrograman MATLAB yang memungkinkan Anda untuk mengimplementasikan algoritma Least Mean Squares (LMS). 
Fungsi ini menerima parameter learning_rate, num_weights, serta input lainnya seperti input_signal dan desired_signal.
function [weights, error_signal, output_signal] = LMS(input_signal, desired_signal, learning_rate, num_weights)
    % Fungsi LMS untuk meminimalkan kesalahan antara sinyal input dan sinyal yang diinginkan
    %
    % input_signal: Sinyal input (vektor)
    % desired_signal: Sinyal yang diinginkan (vektor)
    % learning_rate: Laju pembelajaran (skalar)
    % num_weights: Jumlah bobot yang digunakan dalam filter
    %
    % weights: Bobot yang dihasilkan oleh algoritma LMS
    % error_signal: Sinyal kesalahan yang dihasilkan selama proses pembelajaran
    % output_signal: Sinyal output yang dihasilkan oleh filter adaptif
    
    % Inisialisasi variabel
    num_samples = length(input_signal);       % Jumlah sampel dalam sinyal input
    weights = zeros(num_weights, 1);          % Inisialisasi bobot awal
    error_signal = zeros(num_samples, 1);     % Inisialisasi sinyal kesalahan
    output_signal = zeros(num_samples, 1);    % Inisialisasi sinyal output
    
    % Loop melalui sinyal input
    for n = num_weights:num_samples
        % Ambil vektor input yang sesuai dengan bobot
        x = input_signal(n:-1:n-num_weights+1);  % Sinyal input yang dilipat
        
        % Hitung sinyal output
        output_signal(n) = weights' * x;
        
        % Hitung sinyal kesalahan
        error_signal(n) = desired_signal(n) - output_signal(n);
        
        % Perbarui bobot berdasarkan sinyal kesalahan
        weights = weights + learning_rate * error_signal(n) * x;
    end
end
Penjelasan Fungsi:
- Parameter Input: - input_signal: Sinyal input ke filter adaptif.
- desired_signal: Sinyal yang diharapkan atau sinyal target.
- learning_rate: Laju pembelajaran (- mu), yang menentukan seberapa besar pembaruan bobot dilakukan di setiap iterasi.
- num_weights: Jumlah bobot (koefisien filter) yang digunakan dalam model.
 
- Variabel Keluaran: - weights: Bobot akhir setelah proses pembelajaran selesai.
- error_signal: Sinyal kesalahan di setiap iterasi, yang menunjukkan perbedaan antara sinyal yang diinginkan dan output filter.
- output_signal: Sinyal output yang dihasilkan oleh filter adaptif.
 
- Proses: 
- Looping dilakukan untuk setiap sampel dalam sinyal input setelah jumlah bobot tercapai.
- Dalam setiap iterasi, sinyal input saat ini dan beberapa sampel sebelumnya digunakan untuk menghitung output filter.
- Bobot diperbarui secara iteratif berdasarkan kesalahan yang dihitung di setiap langkah.
Contoh Penggunaan:
% Contoh sinyal input dan sinyal yang diinginkan
input_signal = randn(1000, 1);        % Sinyal input acak
desired_signal = filter([1, -0.5], 1, input_signal) + 0.1*randn(1000, 1); 
% Sinyal target
% Parameter LMS
learning_rate = 0.01;
num_weights = 4;
% Panggil fungsi LMS
[weights, error_signal, output_signal] = LMS(input_signal, desired_signal, learning_rate, num_weights);
% Plot hasil
figure;
subplot(3,1,1); plot(input_signal); title('Sinyal Input');
subplot(3,1,2); plot(desired_signal); title('Sinyal Target');
subplot(3,1,3); plot(output_signal); title('Sinyal Output oleh LMS');
Kode ini memberikan implementasi dasar dari algoritma LMS yang dapat disesuaikan lebih lanjut sesuai kebutuhan spesifik aplikasi pengendalian Anda.