Programme LMS (Least-Mean Square)
mi_k_l
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
ref -
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
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:
- Programme LMS (Least-Mean Square)
- Programme demarrage windows - Guide
- Lms gratuit - Télécharger - Divers Web & Internet
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
- Programme word gratuit - Guide
3 réponses
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.
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.
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
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