Supposons deux fonctions et exprimant le flux en fonction de la longueur d'onde. La corrélation croisée multiplie la transformée de Fourier de ces fonctions sur tout le domaine de fréquence spatiale. Le résultat est une fonction dont la position du pic central est une mesure du décalage en longueur d'onde (vitesse radiale) et la hauteur, une mesure de la similarité des deux spectres.
La corrélation croisée de deux fonctions réelles échantillonnées à intervalle régulier est donnée par
Une forme équivalente, fournie par le théorème de corrélation discrète, est
où G et H sont les transformées de Fourier de g et h données par
N n'est pas exactement le nombre de pixels le long de l'axe de dispersion d'un spectre. En effet, l'analyse de Fourier ne s'applique vraiment qu'aux fonctions périodiques. Il faut donc remplir de zéros (padder) les extrémités d'un spectre non-périodique d'un nombre plus grand ou égal au nombre de points dans le spectre. Ainsi, N est le nombre total de points, dont moins de la moitié appartiennent au spectre lui-même.
Puisque les spectres ne sont pas exactement échantillonnés à un intervalle régulier (la relation pixel-longueur d'onde n'est pas parfaitement linéaire [jusqu'à 2 pixels d'écart]), il faut rééchantillonner le spectre. On utilise de préférence un intervalle petit pour perdre le moins d'information possible du spectre original.
J'ai utilisé la routine correl dans Numerical Recipes in C
qui calcule la fonction de corrélation de deux fonctions selon l'équation
par la méthode des FFT (Fast Fourier Transform) qui
effectue les transformées des équations
et
simultanément.