1 function visu_integ(X,Z,ind_int_nulle)
\r
2 % fonction qui visualise la recherche de période d'une fonction
\r
3 % sinusoidale par calcul d'intégrale.
\r
6 % X et Z désignent respectivement abscisses et ordonnées
\r
7 % des points représentatifs de la fonction traitée.
\r
8 % ind_int_nulle désigne l'indice du vecteur X pour lequel
\r
9 % l'intégrale nulle est atteinte.
\r
10 % Autrement dit, la période est X(ind_int_nulle)-X(1).
\r
11 % Cet indice est produit par determin_periode.
\r
12 % La fonction visu_integ produit des images
\r
13 % qu'on pourra bien sur capter.
\r
15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\r
16 % Fonctions connexes appelées
\r
18 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\r
22 error('Nombre de champs incorrect');
\r
24 if sum(size(X)~=size(Z))>0
\r
25 error('Champs incorrects. Voir controle des champs.');
\r
29 % Voir remarques dans gener_signal ou demo_tp3C
\r
31 % paramètres généraux
\r
37 % pour les fenetres 1 et 2.
\r
38 ampl1=etendue*max(Z);
\r
39 lim1=[X(1) X(lgr) -ampl1 ampl1];
\r
41 % outil intermédiaire : calcul de l'intégrale sur une demi-période
\r
42 % détermination du deuxième changement de signe de Z.
\r
43 % Peut etre remplacé par un passage de ces données issues
\r
44 % de determin_periode, ce qui éviterait leur calcul ici.
\r
46 chgt=find(diff(positifs));
\r
49 abs(simpson(pas_X,Z,chgt(1),chgt(2)+mod(chgt(2)-chgt(1),2)));
\r
50 lim3=[-ampl3 ampl3 -3 4];
\r
53 % tracé du signal brut
\r
57 legend('Signal acquis',0);
\r
59 % tracé de l'intégrale en cours de calcul
\r
61 % choix de la finesse de découpe de l'intégrale à calculer
\r
62 % à modifier éventuellement.
\r
63 nb_iterations=50; unite=10/nb_iterations;
\r
64 pas=floor((lgr-chgt(2))/nb_iterations);
\r
66 % initialisation pour la deuxième fenetre
\r
68 title('Evolution de l''intégrale du signal');
\r
69 deb=1;fin=chgt(2)+mod(chgt(2)-deb,2);
\r
70 area(X(deb:fin),Z(deb:fin));
\r
74 % initialisation de la troisieme fenetre
\r
76 set(h_3,'YTick',[]);
\r
77 title('Evolution de la valeur de l''intégrale');
\r
78 integ0=simpson(pas_X,Z,deb,fin);
\r
79 area([0 integ0],[1 1]);axis(lim3);
\r
83 % initialisations avant boucle
\r
84 deb=fin;fin=deb+pas+mod(pas,2);
\r
85 ajout=simpson(pas_X,Z,deb,fin);
\r
88 while integ*integ0>=0
\r
90 % visualisation de l'intégrale en cours de calcul
\r
91 rx2=X(deb:fin);rz2=Z(deb:fin);
\r
93 title('Evolution de l''intégrale du signal');
\r
94 area(rx2,rz2);axis(lim1);
\r
97 % visualisation de la valeur de l'intégrale
\r
99 set(h_3,'YTick',[]);
\r
100 title('Evolution de la valeur de l''intégrale');
\r
102 area([0 integ],[1 1]);axis(lim3);
\r
104 % préparation de boucle suivante
\r
106 deb=fin;fin=deb+pas+mod(pas,2);
\r
107 ajout=simpson(pas_X,Z,deb,fin);
\r
110 % traitement particulier de fin de boucle
\r
111 if fin>ind_int_nulle
\r
114 rx2=X(1:ind_int_nulle);rz2=Z(1:ind_int_nulle);
\r
116 title('Evolution de l''intégrale du signal');
\r
118 area(rx2,rz2);axis(lim1);
\r
120 h_3=subplot(3,1,3);
\r
121 set(h_3,'YTick',[]);
\r
122 title('Evolution de la valeur de l''intégrale');
\r
124 area([0 ampl3/100],[1 1]);axis(lim3);
\r