Probleme algorithme des moindres sous matlab

zmeryem Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
 Mouhamed Aoun -
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
A voir également:

4 réponses

sfel Messages postés 1640 Date d'inscription   Statut Membre Dernière intervention   430
 
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
 
c pa logik , il faut bien reviser le cour de l'AIP ! merci MR Dhawi
0
zmeryem Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   1
 
ca na pa marché :(
1
qsdfqs
 
???

marche pô
1
linda
 
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