LPOB73 : Interféromètres
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()