informatique - S1
partiel janvier 2014
département Mesures Physiques - IUT1 - GrenobleLes relevés expérimentaux des variations d’une grandeur physique se présentent souvent sous forme bruitée.
Pour « lisser » ces valeurs on souhaite leur appliquer un filtre numérique : lefiltre moyenne glissante.
Cela consiste à remplacer chacune des valeurs relevées par la moyenne de cette valeur avec ses deux voisines de gauche et ses deux voisines de droite : par exemple, on remplacey10par la moyenne y8+y9+y10+y11+y12
5 .
1. Écrire une fonctionrelecturequi prend comme paramètre un nom de fichier (chaîne de caractères), un tableau de réels, puis qui place dans le tableau les valeurs présentes dans le fichier (à raison d’une valeur par ligne), et qui renvoie le nombre de valeur lues.
2. Écrire une fonctionecriturequi prend comme paramètre un nom de fichier, un tableau de réels et un nombre entier net qui écrit dans le fichier lesnpremières valeurs contenues dans le tableau.
3. Écrire une fonctionfiltrequi prend en paramètres deux tableaux X etY et un nombrende valeurs, et qui place dans les cases deY la moyenne des valeurs de la case correspondante deX, des deux valeurs à gauche et des deux valeurs à droite.
Quand le calcul s’avère impossible (donc pour les deux premières et les deux dernières cases du tableau), on n’applique pas de filtre c’est- à-dire que l’on prendra simplementY[i] =X[i].
4. Ecrire la fonctionmainqui utilise ces fonctions pour : - lire des données brutes dans le fichier
X:\Données\Spectre.txt
- écrire les valeurs filtrées dans un fichier de votre répertoire Z:\Spectre_Filtre.txt
- tracer dans une même zone graphique le graphe des données brutes et le graphe des données filtrées (on placera les données en ordonnées, avec des abscisses 0, 1, 2, . . .)
Le graphe obtenu ressemblera à ceci :
-15000 -10000 -5000 0 5000 10000 15000 20000 25000 30000
0 20 40 60 80 100 120 140 160 180
"Spectre_Filtre"
"Spectre"
-15000 -10000 -5000 0 5000 10000 15000 20000 25000 30000
0 20 40 60 80 100 120 140 160 180
"Spectre_Filtre"
"Spectre"
-15000 -10000 -5000 0 5000 10000 15000 20000 25000 30000
0 20 40 60 80 100 120 140 160 180
"Spectre_Filtre"
"Spectre"
-15000 -10000 -5000 0 5000 10000 15000 20000 25000 30000
0 20 40 60 80 100 120 140 160 180
"Spectre_Filtre"
"Spectre"
-15000 -10000 -5000 0 5000 10000 15000 20000 25000 30000
0 20 40 60 80 100 120 140 160 180
"Spectre_Filtre"
"Spectre"
-15000 -10000 -5000 0 5000 10000 15000 20000 25000 30000
0 20 40 60 80 100 120 140 160 180
"Spectre_Filtre"
"Spectre"
-15000 -10000 -5000 0 5000 10000 15000 20000 25000 30000
0 20 40 60 80 100 120 140 160 180
"Spectre_Filtre"
"Spectre"
-15000 -10000 -5000 0 5000 10000 15000 20000 25000 30000
0 20 40 60 80 100 120 140 160 180
"Spectre_Filtre"
"Spectre"
-15000 -10000 -5000 0 5000 10000 15000 20000 25000 30000
0 20 40 60 80 100 120 140 160 180
"Spectre_Filtre"
"Spectre"
-15000 -10000 -5000 0 5000 10000 15000 20000 25000 30000
0 20 40 60 80 100 120 140 160 180
"Spectre_Filtre"
"Spectre"