2 Partie Matlab 1 - sous-programme Matlab : calcul de l’itération de l’algorithme de minimisation de la distance de structure function [new_hm] = iteration_minimisation_distance_de_structure(hm,e,eps,lambda) new_hm= hm-((lambda*eps)/(e'*e))*e; 2 – programme Matlab : calcul de l’itération de l’algorithme de minimisation de la distance de structure clear load E.mat load Yo.mat p=3 lambda=1; L=length(E); E=[zeros(p-1,1);E];%concaténation de E hm=zeros(p,1); EPS = eps; H = hm'; for k=0:L-1 e=flipud(E(k+1:k+p)); ym=e'*hm; eps=ym-Yo(k+1); hm = iteration_minimisation_distance_de_structure(hm,e,eps,lambda); H = [H ; hm']; EPS = [EPS;eps]; end %graphe de l'évolution de hm(k) figure(1),plot(H),grid ; xlabel('k'); ylabel('hm(k)') ; title('Graphe de hm(k), avec p=3); %graphe p=3 évolution de epsilon de k figure(2),plot(EPS),grid ; xlabel('k'); ylabel('epsilon(k)') ; title('Graphe de epsilon(k), avec p=3); -9- Tracé de l’évolution de hm(k) Pour k = [0 ; L-1] L = 250 - 10 - P = {2, 3, 4, 5} L’ordre de la réponse impulsionnelle ho On remarque que hm converge à l’ordre 3 et tend vers 0 au dessus de l’ordre 3. - 11 - Tracé de l’évolution de ε(k) Pour k = [0 ;L-1] L = 250 - 12 - P=3 3 – Tracé de hm(k) Pour λ = {0.5,1.5} P=3 - 13 - On remarque que Pour λ = 0.5, hm converge à k = 20 Pour λ = 1, hm converge à k = 16 Pour λ = 1.5, hm converge à k = 40 D’où la vitesse de convergence est plus importante pour λ = 1 ; viens ensuite λ = 0.5, puis λ=1.5 4 – sous-programme Matlab : calcul d’une itération de l’algorithme des moindres carrés récursifs (minimisation de la distance d’état) function [hm,N]=iteration_minimisation_mcr(hm,N,e,eps) x=N*e; gamma = 1/(1+e'*x); K=gamma*x; N = N -K*x'; hm = hm - K*eps; 5 – programme Matlab : identification de la réponse impulsionnelle ho clear load E.mat load Yo.mat p=3; lambda=1; Q=0; N=10^5*eye(p); L=length(E); E=[zeros(p-1,1);E];%concaténation de E hm=zeros(p,1); EPS = eps; H = hm'; for k=0:L-1 e=flipud(E(k+1:k+p)); ym=e'*hm; eps=ym-Yo(k+1); [hm,N] = iteration_minimisation_mcr(hm,N,e,eps); Q=Yo(k+1)-e; H = [H ; hm']; EPS = [EPS;eps]; end %graphe de l'évolution de hm(k) figure(1),plot(H),grid; xlabel('k'); ylabel('hm(k)'); title('Graphe de hm(k), p=3'); text(255,1.35,'1.35'); - 14 - text(255,0.7,'0.7'); text(255,-1.1,'-1.1'); %text(255,0,'0'); %graphe p=3 évolution de epsilon de k figure(2),plot(EPS),grid; xlabel('k'); ylabel('epsilon(k)'); title('Graphe de epsilon(k), p=3'); %graphe de Q figure(3),plot(Q),grid; xlabel('k'); ylabel('Q(k)'); title('Graphe de Q(k), p=3'); Tracé de l’évolution hm(k) Pour k = [0 ;L-1] L = 250 - 15 - P = {2, 3, 4, 5} - 16 - L’ordre de la réponse impulsionnelle ho On remarque que hm converge à l’ordre 3 et tend vers 0 au dessus de l’ordre 3. Tracé de l’évolution ε(k) Pour k = [0 ;L-1] L = 250 - 17 - P=3 Tracé de l’évolution Q(k) Pour k = [0 ;L-1] L = 250 P=3 Comparaison des vitesses de convergence Pour l’algorithme de minimisation des distances de structure, la vitesse de convergence se situe aux alentours de 20 échantillons et le coût calculatoire est relativement peu élevé. Pour l’algorithme des moindres carrés récursifs, la vitesse de convergence se situe aux alentours de 5 échantillons et le coût calculatoire est plus élevé. La méthode la moins coûteuse est celle utilisant l’algorithme de minimisation des distances de structure et la méthode qui converge le plus rapidement est celle utilisant l’algorithme des moindres carrés récursifs. - 18 -