3 minute read

Prérequis :

  • Modèle scalaire de la lumière
  • Formule de Fresnel et condition d’obtention d’interférences à deux ondes
  • Différence de marche
  • Notions de cohérence spatiale et temporelle
  • Théorème de Malus

Introduction

Vous connaissez les conditions nécessaires pour obtenir des interférences entre deux ondes. On va les mettre en pratique : il existe plusieurs façons de les obtenir, qui présententautant d’applications. En pratique, on utilise un interféromètre et comme on s’intéresse à des phénomènes de longueurs caractéristiques λ, on va pouvoir faire des mesuresde grandeurs auxquelles on n’a pas accès avec les instruments de mesure de TP habituels. Typiquement, on va voir deux types d’interféromètres, qui0 ont des utilités différentes car leurs caractéristiquent permettent d’observer des phénomènes de cohérence différents.

I Division du front d’onde

On va commencer par un dispositif de division du front d’onde : les deux rayons lumineux qui interfèrent proviennent de la même source mais sont différents.

1) Trous d’Young

Dispositif, différence de marche, éclairement pour une source ponctuelle à l’infini sur l’axe. Montrer la zone où on a interférences, tout un volume, c’est important.

En pratique, vous savez qu’il est rare que la source soit ponctuelle, donc il faut plutôt s’attendre à un résultat un peu différent:

2) Source étendue

Source étendue : on somme les éclairements. On voit que la formule change un peu avec le contraste, définir anticoïncidences.

Le contraste de la figure est différent de 1, donc on va avoir de plus en plus de mal à discerner les franges brillantes des franges sombres.

3) Application : étoile double

Code python pour Ns=2 on montre anticoïncidence, et application

Premier a pour anticoïncidence : étoile double Sigma Orionis AB séparée de 0.25arcsec (1”=pi/(3600*180)rad), a=22.7cm. https://astro.swarthmore.edu/~emartel1/sigoriab.htm

Transition : code pour source étendue, si on a beaucoup de sources, donc source étendue, on passe à N= beaucoup, pose problème en TP notemment car on utilise des lampes spectrales ou QI qui sont grandes. Il existe un type d’interféromètres qui s’affranchit de ce problème

II Division d’amplitude

1) Théorème de localisation

p79, Hprépa : optique ondulatoire édition de 2004. Indispensable pour le théorème de localisation, pas mal d’exemples et de d’exercices corrigés.

Explication : popur s’affranchir de l’extension de la source, il faut s’assurer que deux rayons qui interfèrent proviennent du même point source. Donc on regarde à l’endroit où le rayon séparé d’un même point source se recroise ! C’est pour ça que l’on parle de localisation : c’est valable à un endroit particulier : infini pour la lame, sur les miroirs pour le coin.

2) Exemple de dispositif : Michelson

https://www.geogebra.org/m/Z8uYWzh4

Calcul de la différence de marche en lame d’air, avec shémas équivalent au tableau, théorème de Malus, retour inverse de la lumière.

Conditions expérimentales pour éclairer : on veut tous les angles, on veut observer à l’infini (théorème d localisation, insister sur le lien).

3) Utilité

On a vu qu’on s’affranchit de la cohérence spatiale. On peut donc aisément se concentrer sur la cohérence temporelle sans être gêné : doublet sodium.

Conclusion

Supports

Calcul deux sources :Lien du PDF

Théorème de localisation : Lien du PDF

Code pour les sources multiples :

import matplotlib.pyplot as plt
import scipy as sp
import numpy as np
import scipy.integrate as integrate
from matplotlib.widgets import Slider

a=200
D=1e7# distance écran trous qui est la même que source trous
lamb=0.550

### Nombre de source ponctuelles

Ns=2

###
I0=1

bmaxi=3*D*lamb/a


def delta(xs,x):
    return a*x/D + xs*a/D

def I1(bmax,x):
    liste_xs=np.linspace(-bmax/2,bmax/2,Ns)
    xs=liste_xs[0]
    return 2*I0*(1+np.cos(2*np.pi*delta(xs,x)/lamb))


def I2(bmax,x):
    liste_xs=np.linspace(-bmax/2,bmax/2,Ns)
    xs=liste_xs[1]
    return 2*I0*(1+np.cos(2*np.pi*delta(xs,x)/lamb))

def Ik(bmax,x,k):
    liste_xs=np.linspace(-bmax/2,bmax/2,Ns)
    xs=liste_xs[k]
    return 2*I0*(1+np.cos(2*np.pi*delta(xs,x)/lamb))


def Itot(x,bmax):
    liste_xs=np.linspace(-bmax/2,bmax/2,Ns)
    Itot=0
    for k in range(len(liste_xs)):
        Itot+=Ik(bmax,x,k)
    return Itot

interf=lamb*D/a
liste_x=np.linspace(-2.3*interf,2.3*interf,500)


if Ns==2:
    fig = plt.figure(figsize=(10,8))
    ax = fig.add_subplot(111)
    ax_X = fig.add_axes([0.3, 0.89, 0.4, 0.05])
    ax_X.spines['top'].set_visible(True)
    ax.grid(True)

    It,=ax.plot(liste_x,Itot(liste_x,0),label='$I_{tot}$',c='red')
    I1p,=ax.plot(liste_x,I1(0,liste_x),'--',label='$I_1$',c='blue')
    I2p,=ax.plot(liste_x,I2(0,liste_x),'--',label='$I_2$',c='green')
    ax.set_xlabel('Position [10$^{-4}$m]',fontsize=20)
    ax.set_ylabel('Intensité [$I_0$]',fontsize=20)
    s_X = Slider(ax=ax_X,label=' ', valmin=0, valmax=bmaxi,valinit=0, facecolor='gray')

    def update(val):
        b= s_X.val
        It.set_data(liste_x,Itot(liste_x,b))
        I1p.set_data(liste_x,I1(b,liste_x))
        I2p.set_data(liste_x,I2(b,liste_x))
        fig.canvas.draw_idle()
    s_X.on_changed(update)
    plt.title('b $[10^{-4}m]$',fontsize=20)
    plt.grid(True)
    ax.legend(fontsize=20)
    plt.show()

else:
    fig = plt.figure(figsize=(10, 8))
    ax = fig.add_subplot(111)
    ax_X = fig.add_axes([0.3, 0.89, 0.4, 0.05])
    ax_X.spines['top'].set_visible(True)
    ax_X.spines['right'].set_visible(True)

    It,=ax.plot(liste_x,Itot(liste_x,0),label='$I_{tot}$',c='red')
    ax.grid(True)
    #I1p,=ax.plot(liste_x,I1(0,liste_x),'--',label='$I_1$',c='blue')
    #I2p,=ax.plot(liste_x,I2(0,liste_x),'--',label='$I_2$',c='green')
    ax.set_xlabel('Position [10$^{-4}$m]',fontsize=20)
    ax.set_ylabel('Intensité [$I_0$]',fontsize=20)
    s_X = Slider(ax=ax_X,label=' ', valmin=0, valmax=bmaxi,valinit=0, facecolor='gray')

    def update(val):
        b= s_X.val
        It.set_data(liste_x,Itot(liste_x,b))
        #I1p.set_data(liste_x,I1(b,liste_x))
        #I2p.set_data(liste_x,I2(b,liste_x))
        fig.canvas.draw_idle()
    s_X.on_changed(update)
    plt.title('b $[10^{-4}m]$',fontsize=20)

    ax.legend(fontsize=20)
    plt.show()