Probleme algorithme des moindres sous matlab

Fermé
zmeryem Messages postés 3 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 14 janvier 2008 - 13 janv. 2008 à 22:05
 Mouhamed Aoun - 16 avril 2012 à 10:16
Bonjour,
svp j'ai ecris un programme sous matlab (qui concerne traitement de signal ) et lors de compilation il m'indique tout le temps une erreur sur qui concerne la boucle for.
En fait, il s'agit de programmer sous matlab l'algorithme des moindres carrés récursifs :
voici le programme :
N= 500; h=[1 -2.5 1]; RSB=10; L=length(h)-1; delta =10^(-9);
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)+b;
%iinitialisation des parametres de l'algorithme
Q=eye(L+1)/delta; h1=zeros(L+1,1);
for i=1:N-L // probleme
xn(:)=x(i+L:-1:i);
Qx=Q*xn;
Kn=Qx/(1+xn'*Qx); h1=h&+Kn*(y(i+L)-xn*h1');
Q=Q-Kn*(xn'*Q);
e(:,i)=h1-h;
end

merci

4 réponses

sfel Messages postés 1640 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 15 juillet 2009 430
13 janv. 2008 à 22:13
bonsoir,

déjà ne fait pas
// probleme

mais % probleme

sinon, peut-être le N-L

utilise une variable temporaire juste avant, par exemple temp

temp=N-L;
for i=1:temp

1
Mouhamed Aoun
16 avril 2012 à 10:16
c pa logik , il faut bien reviser le cour de l'AIP ! merci MR Dhawi
0
zmeryem Messages postés 3 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 14 janvier 2008 1
13 janv. 2008 à 22:45
ca na pa marché :(
1
???

marche pô
1
essaie ça:

N= 500;
h=[1 -2.5 1];
RSB=10;
L=length(h)-1;
delta =10^(-9);
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)+b;
%iinitialisation des parametres de l'algorithme
Q=eye(L+1)/delta; h1=zeros(L+1,1);

for i=1:N-L %probleme
xn= x(i+L:-1:i);
Qx = Q * xn';
Kn= Qx /(1 + xn*Qx);
h1 = h'+ Kn* y(i+L)-xn*h1;
Q = Q-Kn*(xn*Q);
e(:,i)=h1'-h;
end
0