saisie puis adaptez l’exemple donné. L’éditeur de Mathematica propose en ligne une très
grande partie des fonctionnalités de Mathématica. Pour chaque fit, indiquez le coefficient
de corrélation R2. Conclure
Nota : vous pouvez éventuellement faire des mesures avec des valeurs de Nplus grandes, par
exemple la série de valeurs N∈[50,100,150,200] donne de meilleures résultats, mais cela prend
beaucoup plus de temps...
La fonction rand16 utilisera un générateur aléatoire à congruence linéaire :
y=f(x)=(ax +b)mod c(1)
avec a, b, c premiers entre eux (on pourra prendre a= 11,b= 13,c= 17).
Dans la suite on utilisera le tri par sélection comme tri de référence.
3 Médian classique
Plutôt que de faire un filtrage classique (FIR) sur un voisinage de taille k, nous allons utiliser
un filtre d’ordre : ici un filtre médian.
L’algorithme classique du filtre médian repose sur l’utilisation d’un algorithme de tri. Soit un
tableau de kvaleurs à trier. La valeur médiane est la valeur se trouvant au milieu du tableau, en
k/2. Dans toute la suite, ksera égal à 9. Pour produire la case Y[i], on copie kvaleurs centrées
en X[i]: les cases X[i−k/2] àX[i+k/2] sont copiées dans kvariables elles mêmes copiées dans
un tableau interne (de kcases) à la routine de tri). Ce tableau est trié et la routine renvoie le
médian.
1. Ecrire une fonction median9Array qui utilise l’algorithme de tri par sélection et qui renvoie
la valeur médiane. Le prototype de la fonction est :
int16 median9(int16 a, int16 b, int16 c, int16 d, int16 e, int16 f, int16 g, int16
h, int16 i) ;. Pour chaque case
2. Valider l’algorithme (en mode Debug) avec comme valeurs de test les valeurs suivantes :
9,7,8,3,1,2,6,4,5.
3. Mesurer les performances de votre implantation (en mode Release) via le filtrage d’un
tableau Xde N= 100 valeurs générées aléatoirement via la fonction void rand16(int16
*T, int n) ;. Le nom du tableau source sera Xet le nom du tableau destination sera Y.
Ces tableaux pourront être défini de manière statique int16 X[N], Y[N]. essayez plusieurs
valeurs de Npour calculer un modèle de temps de calcul.
La fonction rand16 utilisera un générateur aléatoire à congruence linéaire :
y=f(x)=(ax +b)mod c(2)
avec a, b, c premiers entre eux (on pourra prendre a= 11,b= 13,c= 17).
4 Médian rapide
4.1 Présentation de l’algorithme
Lorsque kest un carré, il existe un algorithme bien plus astucieux et qui peut être paralléliser par
partie. L’algorithme est le suivant (dans notre cas, nous avons 3×3valeurs à trier). Premièrement,
ces 3×3valeurs sont représentées en 2D.
Soient les 9valeurs suivantes à trier représentée en 2D :
2