- refactored
This commit is contained in:
Executable
+48
@@ -0,0 +1,48 @@
|
||||
% 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
|
||||
Reference in New Issue
Block a user