]> AND Private Git Repository - cours-mesi.git/blob - tel/TPmatlab/integration/TP3c/gener_signal.m
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
ajout de partiels
[cours-mesi.git] / tel / TPmatlab / integration / TP3c / gener_signal.m
1 function [X,Z,T_th]=gener_signal(ampl,nb_int)\r
2 % génère un signal sinusoidal aléatoire\r
3 %\r
4 % variables d'entrée\r
5 % ampl désigne l'amplitude maximale du signal;\r
6 % nb_int désigne le nombre d'intervalles entre mesures;\r
7 % ainsi le vecteur des abscisses X comporte nb_int+1 valeurs.\r
8 % Dans cette application on le minore à 500, en réalité\r
9 % on acquiert 10000 mesures en 0.8 secondes environ!\r
10 %\r
11 % variables de sortie\r
12 % X est le vecteur des abscisses\r
13 % réparties sur 1,2 période environ comme dans l'application\r
14 % industrielle qui a fondé ce développement; ce paramètre sera\r
15 % global aux blocs qui le nécessitent sous le nom etendue.\r
16 % Z est le vecteur des images associé à X défini par\r
17 % Z= a*sin(omega*x+phi)\r
18 % où a,omega et phi sont pseudo-aléatoires, définis plus loin.\r
19 % T_th désigne la valeur théorique de période, sortie à des fins de\r
20 % vérification. Elle n'a pas de sens dans l'application industrielle\r
21 % puisqu'elle n'est pas connue!\r
22 %\r
23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
24 %                       Fonctions connexes appelées\r
25 %\r
26 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
27 \r
28 % Tests d'entrée\r
29 if nargin~=2\r
30     error('Nombre de champs incorrects');\r
31 end\r
32 if (ampl>0)*(nb_int>500)==0\r
33     error('Champs incorrects. Voir tests d''entrée');\r
34 end\r
35 \r
36 global etendue\r
37 % valeur modifiable mais attention aux effets éventuels; la méthode\r
38 % est pensée pour cette valeur, conforme au problème initial.\r
39 \r
40 format long e;\r
41 \r
42 % Génération du signal "aléatoire"\r
43 % remplacé dans le réel par les données des capteurs\r
44 % renvoyées au format matlab choisi ci-dessous.\r
45 % Si t est élement de [0,1] comme les renvoie rand, alors\r
46 % T=(b-a)t+a est élément de [a,b].\r
47 \r
48 aleas=rand(1,3);\r
49 if aleas(2)==0\r
50     aleas(2)=1;\r
51 end\r
52 \r
53 % définition de l'amplitude a choisie entre ampl/2 et ampl,\r
54 % pour assurer la visibilité du signal produit.\r
55 a=ampl/2*aleas(1)+ampl/2;\r
56 % détermination de phi et omega\r
57 omega=abs(aleas(2));\r
58 % période théorique\r
59 T_th=2*pi/omega;\r
60 % phi est ramené dans [O,T_th]\r
61 phi=T_th*aleas(3);\r
62 \r
63 % fabrication du vecteur X\r
64 pas_X=etendue*T_th/nb_int;\r
65 i=0:nb_int;\r
66 X=pas_X.*i;\r
67 \r
68 % fabrication de Z\r
69 Z=a.*sin(omega.*X+phi);\r
70 \r
71 \r
72 \r
73 \r
74 \r
75 \r