% LMS-Algorithmus % --------------- % function [ys,e,wf,fpo] = lms(x,d,N,mu,wi) % % Parameter: % x : Eingangssignal % d : erwünschtes Signal (Referenzsignal) % N : Filterordnung % mu : konstante Schrittweite % wi : Startwerte der Filterkoeffizienten im Zeitbereich % % Rückgabewerte: % ys : Schätzung des erwünschten Signals d aus x % e : Fehler d - y % wf : Filterkoeffizienten am Ende der Adaption im Zeitbereich % fpo : Anzahl benötigten der Floating-Point Operationen % ------------------------------------------------------------------------- % Datum : 20.7.2001 % Autor : Jens Ahrensfeld % Thema : Diplomarbeit % Datei : lms.m % Benötigte Dateien: keine % % ------------------------------------------------------------------------- function [ys,e,wf,fpo] = lms(x,d,N,mu,wi) % ------------------------------------------------------------------------- % Initialisierung LMS % ------------------------------------------------------------------------- wf = wi; y = zeros(length(x),1); e = zeros(length(x),1); flops(0); % ------------------------------------------------------------------------- % LMS Adaptation % ------------------------------------------------------------------------- for n = N : length(x) xs = x(n:-1:n-N+1); ys(n) = xs'*wf; e(n) = d(n) - ys(n); wf = wf + mu*e(n)*xs; end ; fpo = flops; % ------------------------------------------------------------------------- % Ende lms.m