Bon soir;
je n'arrive pas à simuler le programme suivant (égalisation):

function [e_zf]=ffe_zf(y,sym,M,c,nom_canal)
%syntaxe :e_zf=ffe_zf(y,sym,M,c,nom_can al)
%description : calcule de la réponse impulsionnelle d’un égaliseur par zf
%ENTREE :
%- y : signal observé
%- sym : séquence de symbole
%- M : longueur de l’égaliseur
%- c : réponse impulsionnelle du canal
%- nom_canal : nom du canal
%SORTIE :
%- e_zf : RI de l’égaliseur
%initialisation :
N=length(c); %longueur du canal
Q=zeros(N+M-1,M); %initialisation de Q
Delta=zeros(N+M-1,1); %definition de ?(n-R)
R=(N+M)/2;
Delta (R)=1;
%définition de la matrice Q
For i=1 :N+M-1
For j=max (1,:-N+1) :min(M,i)
Q(i,j)=(i-j+1);
End
%inversion du système
e_zf=pinv(Q)*delta
%pour vérification calcul de la sortie Z de l’égaliseur et de la decision associée, et comparaison à la séquence des symboles
Z=filter(e_ZF,1,y) ;
N=50
Figure ;
Subplot(211);plot(symb(1:N));t itle('séquence de symboles')
Subplot(212);plot(1:N,z(1+R:N+ R),'-',1:N,sign(z(1+R:N+R)),':');
Title(['egalisation ZF du canal' nom_canal])

est ce que doit je définir le canal? et comment?