|
|
|
|
La lumière d'une source monochromatique située à gauche du plan opaque (x0y) est diffractée par une ouverture située dans ce plan. On observe une image de diffraction sur un écran situé dans le plan (XOY) situé à une distance z du plan de l'ouverture. On désigne respectivement par l et par n la longueur d'onde et la fréquence de la source. On pose : |
U(x,y) désignant l'amplitude du champ en un point m(x,y) de l'ouverture, l'amplitude du champ V(X,Y) au point M(X,Y) est alors donné par l'expression:
|
|
|
D'après le principe de Kirchhoff, U=0 en dehors de l'ouverture. |
|
2- Approximation de Fresnel
On ne s'intéresse par la suite qu'à la partie de l'image diffractée située à proximité de l'axe des Z.
Ainsi le facteur
est à peu près égal à 1.
Si bien que :
.
D'autre part, on pose:
.
On obtient pour h l'approximation dite de Fresnel:
.
V(X,Y) apparaît alors au facteur
près comme le produit
de convolution de U(x,y) et de
:
![]()
En développant la partie quadratique de l'intégrale double, on obtient:
.
On reconnaît à un facteur près la transformée de Fourier de
.
Si la distance z du plan d'observation est grande relativement
aux dimensions de l'ouverture, c'est à dire si pour tout point m(x,y) de l'ouverture
on a
, alors on peut
poser
et l'expression de V(X,Y) devient:
.
On reconnaît à droite une intégrale qui est à un facteur près la transformée de Fourier de U(x,y).
On suppose maintenant que l'ouverture est un rectangle centré à l'origine et de dimensions respectives a et b suivant les axes (Ox) et (Oy). Si l'onde lumineuse est monochromatique, d'incidence normale au plan (xOy) et si son amplitude est uniformément égale à 1, alors U est égale à la transmittance en amplitude :
.
La transformée de Fourier de
étant
, on en déduit que :
.
L' intensité lumineuse I(X,Y) est alors donnée par:
.
Vous pouvez modifier le contraste(variable ctr ) et
l'intensité lumineuse(variable lumino).
Les variables a et b correspondent aux dimensions de l'ouverture.
Pour visualiser l'intensité lumineuse sur l'axe des x, supprimez les # du programme pour compiler les lignes suivantes:
|
view([xmin,xmax],[-5,130]); axes; setcolor(0,255,255); plot({f2},[xmin,xmax]); |

| Programme | Commentaires |
#----------------------------------------------------- # Diffraction de Fraunhofer - Ouverture circulaire - # # par Gérard Chevet le 12/02/98 # # Intruction densityplot en coordonnées polaires #----------------------------------------------------- var xmin,xmax,ymin,ymax,ctr,dec,lumino,d,z,k; var gridR,gridTeta,lambda; function bess1(var t,y1,y2); begin return(y2); end; function bess2(var t,y1,y2); begin if t=0 then return(0); else return(-(t*y2+(t*t-1)*y1)/t/t); end; function J1Bessel(var t); begin gctrace:=2; if t=0 then return(0); else if t < 0.7 then rgk({bess1,bess2},{1,2},{gc1,gc2},[gc0,t],0.0001,2); else rgk({bess1,bess2},{1,2},{gc1,gc2},[gc0,t],0.001,2); return(gc1); end; function Intens(var r); var it; begin if r<=0 then return(k*k*d*d*d*d/64/z/z); else it:=d*J1Bessel(k*d*r/2/z)/2/r; return(it*it); end; function IXY(var x,y); begin return(Intens(sqrt(x*x+y*y))); end; function IR(var r); begin return(IXY(x,0)); end; #------------------------------------------- # Programme principal begin lambda:=0.001; k:=2*pi/lambda; #Dimensions de l'écran de projection xmin:=-1;xmax:=-xmin; ymin:=xmin;ymax:=xmax; #-------- distance entre le trou et l'écran de projection ------------ z:=1.5; # ----------------Diamètre de l'ouverture circulaire d:=0.005; #----------------Règlages lumière -------------------- ctr:=0.42;# Règlage du contraste dec:=0;# Choix de la couleur d'affichage: 0=noir et blanc 7=bleu 6=rouge lumino:=20000;# Règlage de la luminosit #--------------------------------------------- #Définition de la grille : 1=très fin , 4=moyen gridR:=1; gridTeta:=2; # à 1 pour ôter l'effet de moire #--------------------------------------------- clear; view([xmin,xmax],[ymin,ymax]); #axes; #----------Variables gc pour initialiser le système diff de Bessel----------------- gc0:=0; gc1:=0; gc2:=0.5; writeln(d); densityplot({IXY},{gridR,gridTeta},[0,xmax*sqrt(2)],[0,2*Pi],ctr,dec,lumino,2); #------------------ Intensité lumineuse ------------------------------------------------------------------------ view([xmin,xmax],[-0.0002,0.0002]); axes; setcolor(0,0,255); gc0:=0; gc1:=0; gc2:=0.5; plot({IR},[0,xmax]); end...... |
La fonction J1 de Bessel est obtenue par la résolution d'une équation différentielle du second ordre: ![]() avec n=1. On utilise,ici, une méthode de Runge-Kutta. L'intérêt de ce procédé est d'utiliser le calcul pas à pas de la méthode RGK et d'obtenir les valeurs de J1 pour des x croissants. A chaque appel de la procédure RGK, on transmet comme conditions initiales les résultats de l'appel précédent. |