git-svn-id: http://moon:8086/svn/matlab/trunk@153 801c6759-fa7c-4059-a304-17956f83a07c
71 lines
1.9 KiB
Matlab
Executable File
71 lines
1.9 KiB
Matlab
Executable File
%===================================================================
|
|
%-------------------------------------------------------------------
|
|
%
|
|
% Adaptive Filter
|
|
%
|
|
% Simulationen
|
|
%
|
|
% [E,W,w,inv_R]=rls(N,X,D,w_start,rho)
|
|
%
|
|
% RLS-Algorithmus
|
|
%
|
|
% E = Fehlersignal E[.]
|
|
% W = Filterkoeffizienten im zeitlichen Verlauf
|
|
% w = Filterkoeffizienten am Ende der Adaption
|
|
% inv_R = Inverse deterministische Korrelationsmatrix
|
|
% nach Adaptionsende
|
|
% N = Anz. Filterkoeffizienten = Filterordnung+1
|
|
% X = Filtereingang X[.]
|
|
% D = erwuenschtes Signal D[.]
|
|
% w_start = Startwerte Filterkoeffizienten
|
|
% rho = Vergessensfaktor
|
|
%
|
|
%-------------------------------------------------------------------
|
|
|
|
%
|
|
% author: Markus Hofbauer
|
|
% ISI, ETH Zuerich (Switzerland)
|
|
%
|
|
% created: 7/2000
|
|
%
|
|
%
|
|
%-------------------------------------------------------------------
|
|
%
|
|
% File : rls.m
|
|
%
|
|
% Startfile: simX.m
|
|
%
|
|
%-------------------------------------------------------------------
|
|
%===================================================================
|
|
|
|
function [E,W,w,inv_R]=rls(N,X,D,w_start,rho)
|
|
|
|
p0=1000000; % Initialisierung von
|
|
inv_R=p0*eye(N); % inv_R
|
|
|
|
adaptlen=length(X);
|
|
w= w_start;
|
|
W=zeros(N,adaptlen);
|
|
E=zeros(adaptlen,1);
|
|
|
|
%-------------------------------------------------------------------
|
|
% RLS Update Loop
|
|
%-------------------------------------------------------------------
|
|
|
|
for i=N:adaptlen
|
|
|
|
W(:,i)=w;
|
|
|
|
x = X(i:-1:i-N+1); % Eingangsvektor (x[k],x[k-1],..,x[k-N+1])
|
|
y=x'*w; % Filterausgang
|
|
e=D(i)-y; % Fehler
|
|
|
|
c=1/(rho+x'*inv_R*x);
|
|
inv_R=1/rho*(inv_R-c*inv_R*x*x'*inv_R); % Aufdatierung von inv_R
|
|
w=w+inv_R*e*x; % Aufdatierung von w
|
|
|
|
E(i)=e;
|
|
end;
|
|
|
|
|
|
|