Programme LMS (Least-Mean Square)

mi_k_l Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
 ref -
Bonjour,

J'ai écrit un programme en Matlab pour simuler l'algorithme LMS et j'ai un petit problème, si quelqu'un pourrait m'aider...
Le but étant de rechercher la valeur de mu optimal pour lequel la variance est minimale...
Voici mon programme, composé d'une fonction algoLMS.m, et d'une simulation simuLMS.m :


---------------------------------------------------------algoLMS.m--------------------------------------------------------------
% Algorithme Least-Mean Square (LMS)

function [h,variance] = algoLMS(x,y,Q,mu)

N = 500;
delta = 10^-9;
RSB = 100;
h = [1 -0.7 0.5 -0.3];
L = length(h);
x = randn(1,N);
x = x-mean(x);
b = randn(1,N);
b = b-mean(b);
b = (b/std(b))*sqrt(var(x)*10^(-RSB/10));
y = filter(h,1,x);

% conditions initiales
Q = eye(L)/delta;
h = zeros (1,N);

for n = N:L
xn = x(n:-1:n-(N-1));
yn = h'*xn;
bn = yn-y;
mu = 2*mu;
h = h-(mu*bn*xn);
end

plot(b)
variance = var(bn);

---------------------------------------------------------simuLMS.m--------------------------------------------------------------
mu = linspace(0,1,1000);

for k = 1:1000
[h,variance(k)] = algoLMS(xn,yn,Q,mu(k));
end

plot(mu,variance)

-------------------------------------------------------------------------------------------------------------------------------------


et voici mon erreur lorsque je lance la simulation:
>> simuLMS
??? Undefined function or variable "xn".

Error in ==> simuLMS at 4
[h,variance(k)] = algoLMS(xn,yn,Q,mu(k));


Merci d'avance pour votre aide...

mi_k_l
A voir également:

3 réponses

automatique
 
salut tu peux mappleer sur skype alim_2007
0
wahid
 
slt je suis wahid
pour calculer la valeur mu il faut chercher les valeurs propre de ta matrice et aprés la valeur max et min de votre vecteur propre ok, je vais vous montrer :

sous matlab

exemple:

a=[1 2 3;4 5 6;7 8 9];
b=eig(a); elle va vous donner un vecteur

kmax=max(b);
kmin=min(b);

mu=2/(kmax+kmin);

et le problème sera résolu ok bye.
0
maboudi12 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
salut wahid,

j'ai un gros souci, en fait je veux implementer avec matlab un filtre fir least-square, mais je ne sais sincerement comment le faire, j ai fouiller tous les documents possible, mais je ne m en sors pas. alors je suis tombé sur votre intervention concernant le least-Mean Square, alors je me dis que vous pourriez peut être m'aidez.

merci d avance
0
ref
 
salut, vous de vez définir au prmier lieu vos donnés xn, yn,.. avant de lancer le programme
0