• Aucun résultat trouvé

Des données brutes aux données extraites

3.1 Extraction des données

3.1.1 Des données brutes aux données extraites

Nous allons ici tirer parti du fait que le filtrage de Fourier permet de diminuer grande- ment le volume des données. La figure 50, montre cela. Avant la transformée de Fourier, le signal est réparti sur les 800 points de l’échelle des délais. Après la transformée de Fourier, nous allons procéder à un filtrage et le signal utile ne sera réparti que sur environ 50 points de l’échelle des fréquences. On pourra donc ne conserver que ces points et ainsi grandement diminuer le volume des données à traiter par la suite. Cette opération de fenêtrage revient à une démodulation dans le domaine temporel.

Les données extraites prendront donc la forme d’un tableau 3d représentant le terme s(r, ω) issu du filtrage de Fourier. Nous allons nommer cette matrice s0[x, y, ω]. La figure 51

Chapitre 3. Mise en oeuvre du traitement des données TERMITES

Délai (fs)

Intens ité normalis ée

Intens

ité

(unité ar

bitr

aire

)

Fréquence (rad/fs)

50 points

800 points

a

b

Figure 50 – Cadre a : Signal TERMITES en un point spatial, réparti sur 800 points de l’échelle des délais. Cadre b : Transformée de Fourier des données du cadre a, le signal utile n’est réparti dans ce domaine que sur 50 points.

Chapitre 3. Mise en oeuvre du traitement des données TERMITES

x100

2.

TF

1. Chargement

3.

Filtrage

4.

Fenêtrage

Données brutes

Données extraites

4000

4000

40

50

50

4000

4000

x y x x x y y x y y

Figure 51 – Schéma récapitulatif de l’extraction de s[x, y, ω]. On part des données brutes qui consistent en une série de 800 images. L’extraction des données se fait sous-partie spatiale par sous-partie spatiale comme indiqué dans les parenthèses. A la fin de l’extrac- tion on dispose des données extraites sous la forme d’un tableau 3d qui contient toute l’information pertinente.

Chapitre 3. Mise en oeuvre du traitement des données TERMITES

On ne peut pas charger massivement toutes les images dans 12 Go de RAM pour effec- tuer le filtrage de Fourier. Néanmoins, l’ensemble de ces images peut se concevoir comme un volume 3d (x, y, τ ) de données. Le traitement de Fourier que nous allons effectuer, peut être fait position spatiale par position spatiale.

L’algorithme découpe le volume des données en sous-régions spatiales et il effectue le filtrage de Fourier successivement sur chacune d’elles. Ainsi on économise des accès au disque dur. Pour procéder de cette manière les données brutes sont enregistrées sous un format binaire. Cela permet d’accéder directement à des sous-zones d’une image enregistrée sur un fichier sur le disque, sans avoir à la charger en entier. Le format propriétaire .mat de Matlab convient à cet usage.

Dans le format .mat, une matrice est enregistrée sous la forme d’un vecteur qui est formé par la concaténation des colonnes successives de cette matrice. L’accès aux données sur le disque est rapide lorsqu’on cherche à lire des éléments contigus. En d’autres termes, lorsqu’on procède à un accès mémoire, il faut éviter de sauter des cases. Lorsqu’on cherche à accéder à des sous-zones d’une matrice, on a donc interêt à lire une ou plusieurs colonnes successives car elles vont correspondre à un ensemble de cases mémoires contiguës.

On a donc choisi de charger les données par zones spatiales successives ayant la forme de bandes verticales de 40 pixels de large. La cellule CCD a la forme d’un rectangle de rapport d’aspect 3/2, le faisceau étant rond, il n’occupe pas toute la cellule selon la dimension horizontale. Pour optimiser le volume des données et le temps de calcul, on ne traite pas les zones spatiales où il n’y a pas de signal. La zone à traiter est donc un carré de côté la largeur de la cellule, soit environ 4000 pixels.

Dans l’algorithme de traitement, le chargement en RAM et le filtrage de Fourier sous- zone spatiale par sous-zone spatiale se fait à l’aide d’une boucle "for" qui balaie les données. Sur la figure 51 cette boucle est schématisé entre les deux parenthèses.

Chaque itération de la boucle "for" traite une sous-zone donnée. L’itération commence par le chargement de cette sous-zone sur chaque image de la mesure. Ces données sont concaténées dans un tableau 3d M1[x, y, τ ]. On effectue une transformée de Fourier rapide

sur M1[x, y, τ ] selon la dimension représentant le délai τ (étape 2. sur la figure 51) pour calculer le tableau M2[x, y, ω]. Une coupe 2d (x, ω) de l’amplitude de M2[x, y, ω] à une

position y0 est tracée sur la figure 52. On distingue le pic central et les deux pics latéraux

décrits dans la section 1.3.

L’échelle de délai τ est issue du déplacement physique de la platine et donc ne peut pas stricto sensu être considéré comme linéaire. Pour corriger cela, on pourrait utiliser une méthode d’interpolation après zero-padding comme décrit dans [58]. Cependant cela nécessiterait beaucoup de temps de calcul et les défauts de linéarité de l’échelle τ sont très faibles (cf. 2.3).

L’étape suivante consiste à multiplier point à point le tableau M2[x, y, ω] par un filtre

gaussien centré sur la fréquence centrale du laser ω0 (étape 3. sur la figure 51) pour obtenir le tableau M3[x, y, ω]. Une coupe 2d (x, ω) de l’amplitude de M3[x, y, ω] à une position y0

est tracée sur la figure 52. Un pic latéral a été filtré.

Une fois le filtrage effectué, en dehors du pic latéral filtré le tableau M3[x, y, ω] est

composée uniquement de zéros, comme on peut le voir sur la figure 53. Sans perdre d’infor- mation, on peut donc fenêtrer cette matrice autour du pic latéral sur une certaine gamme de fréquence plus réduite et calculer le tableau M4[x, y, ω] (étape 4.). De cette manière, on

Chapitre 3. Mise en oeuvre du traitement des données TERMITES

Figure 52 – Coupe (x, ω) du tableau M2 en échelle logarithmique issue d’une mesure sur

le laser UHI-100.

Figure 53 – Coupe (x, ω) du tableau M3 issue d’une mesure sur le laser UHI-100. Les

Chapitre 3. Mise en oeuvre du traitement des données TERMITES

passe de 800 points à environ 50 dans la dimension fréquentielle. Les tableaux M4[x, y, ω]

calculés à chaque itération de la boucle sont ensuite concaténés dans un tableau s0[x, y, ω]

qui représente le terme s(x, y, ω).

Le tableau s0 représente un volume 3d de 4000×4000×50 points. En codant ses valeurs

avec des nombres complexes à virgule flottante en simple précision (8 octets), on obtient une matrice de 4000×4000×50×810243 = 6.9 Go, contenant autant d’information pertinente pour

le traitement que les données brutes qui occupaient 42.3 Go d’espace disque. Sous la forme du tableau s0, le volume des données extraites est donc inférieur à 12 Go. Elles peuvent

donc être stockées en RAM.

On peut maintenant enregistrer s0 sur le disque dur pour être en mesure de recom- mencer le traitement sans avoir à retraiter les données brutes. La durée de cette étape du traitement est d’environ 20 min.