天天看點

二維光場表示

1 單色光的表達

由于光的頻率非常高,在對實際光振動的探測時間間隔内,通常測量到的是在探測時間内經曆了大數量周期振動的光強度平均值,時間因子對描述光場的空間分布不起作用。可以用下式對光場進行描述:

U ~ ( x , y , z ) = U 0 ( x , y , z ) e x p [ j φ ( x , y , z ) ] \widetilde U(x,y,z) =U_{0}(x,y,z)exp[j \varphi(x,y,z)] U

(x,y,z)=U0​(x,y,z)exp[jφ(x,y,z)]

這是一個與時間無關的複函數,它表征了光波場所存在空間中各點的振幅和相對相位。稱為複振幅(complex amplitude)。即複振幅是以光振動的振幅為模(modulus),初始相位為幅角(phase angle)的複函數,給定複振幅,就能完全确定光場的空間分布。

對于振幅為1,相位不斷變化的光場,其光強恒為1,為了觀察其相位分布,可以通過與一個振幅為1的垂直入射相幹光幹涉,将相位的分布轉化為幹涉條紋的明暗來觀察。由于振幅為1的垂直入射相幹光在觀察面上的相位為常數,是以,可以簡單地用1表示該垂直入射相幹光。兩束光幹涉後的光強分布可用下式計算:

I ( x , y , z ) = [ U ~ ( x , y , z ) + 1 ] [ U ~ ( x , y , z ) + 1 ] ∗ I(x,y,z) =[\widetilde U(x,y,z)+1] [\widetilde U(x,y,z)+1]^{\ast} I(x,y,z)=[U

(x,y,z)+1][U

(x,y,z)+1]∗

1.1 球面波的複振幅

點光源發出(或會聚為一點)的光波其波陣面為球面,成為球面波。

發散球面波: U ~ ( x , y , z ) = U 0 ( x , y , z ) r ( x , y , z ) e x p ( j k r ) \widetilde U(x,y,z) =\frac{U_{0}(x,y,z)}{r}(x,y,z)exp(j kr) U

(x,y,z)=rU0​(x,y,z)​(x,y,z)exp(jkr)

會聚球面波: U ~ ( x , y , z ) = U 0 ( x , y , z ) r ( x , y , z ) e x p ( − j k r ) \widetilde U(x,y,z) =\frac{U_{0}(x,y,z)}{r}(x,y,z)exp(-j kr) U

(x,y,z)=rU0​(x,y,z)​(x,y,z)exp(−jkr)

U 0 U_0 U0​為r等于1個機關處光波的振幅。

從點源 S ( x 0 , y 0 , z 0 ) S(x_0,y_0,z_0) S(x0​,y0​,z0​)發出的球面波,在給定觀察面 ( x , y , z ) (x,y,z) (x,y,z)上的複振幅分布。

U ~ ( x , y , z ) = a 0 z e x p ( j k r ) e x p ( j k 2 z [ ( x − x 0 ) 2 + ( y − y 0 ) 2 ] ) \widetilde U(x,y,z) =\frac{a_{0}}{z}exp(jkr)exp(\frac{jk}{2z}[(x-x_0)^2+(y-y_0)^2] ) U

(x,y,z)=za0​​exp(jkr)exp(2zjk​[(x−x0​)2+(y−y0​)2])

如果是會聚球面波,則為:

U ~ ( x , y , z ) = a 0 z e x p ( − j k r ) e x p ( − j k 2 z [ ( x − x 0 ) 2 + ( y − y 0 ) 2 ] ) \widetilde U(x,y,z) =\frac{a_{0}}{z}exp(-jkr)exp(\frac{-jk}{2z}[(x-x_0)^2+(y-y_0)^2] ) U

(x,y,z)=za0​​exp(−jkr)exp(2z−jk​[(x−x0​)2+(y−y0​)2])

1.2 平面波的複振幅

平面波的複振幅可表示為

U ~ ( x , y , z ) = A e x p [ j k ( x c o s α + y c o s β ) ] \widetilde U(x,y,z) =Aexp[jk(xcos\alpha+ycos\beta)] U

(x,y,z)=Aexp[jk(xcosα+ycosβ)]

其中 A = U 0 ( x , y , z ) e x p ( j k z ) 1 − c o s 2 α − c o s 2 β A=U_0(x,y,z)exp(jkz)\sqrt{1-cos^2\alpha-cos^2\beta} A=U0​(x,y,z)exp(jkz)1−cos2α−cos2β

​為一複常數。

1.3 程式設計執行個體

1)建構單色發散球面波,并計算相位,觀察相位包裹現象;

2)建構單色會聚球面波,并計算相位,與發散球面波相比較;

3)将發散或會聚球面光波與垂直入射相幹光相幹涉,觀察二維平面上的幹涉條紋,并通過調節點光源的中心位置、平面尺寸、傳播距離和波長等,觀察幹涉條紋的變化;

4)建構單色平面波,與垂直入射相幹光相幹涉,并通過調節平面光的入射角、平面尺寸、傳播距離和波長等,觀察幹涉條紋的變化;

5)計算平面波的頻譜,觀察入射角和波長變化與頻譜位置的關系,了解角譜的概念,以及角譜與平面光入射角、波長的關系。

clc
clear
close all

lamda=6328e-10;                      %波長,機關:米
k=2*pi/lamda;                        %波數
x0=0.001;                             %點光源的x坐标,機關:米
y0=0.001;                            %點光源的y坐标,機關:米
z=0.3;                                %觀察面到點光源的垂直距離,機關:米
L=0.005 ;                             %觀察面的尺寸,機關:米
x=linspace(-L/2,L/2,512);y=x;        %建構x坐标和y坐标
[x,y]=meshgrid(x,y);                 %建構二維坐标網格
U1=exp(1j*k*z).*exp(1j*k.*((x-x0).^2+(y-y0).^2)/2/z);  %發散球面光波
ph1=k.*((x-x0).^2+(y-y0).^2)/2/z;    %發散球面波的實際相位
figure,surfl(ph1),shading interp,colormap(gray) 
phyp1=angle(U1);                     %發散球面波的包裹相位
figure,imshow(phyp1,[])
U2=exp(-1j*k*z).*exp(-1j*k.*((x-x0).^2+(y-y0).^2)/2/z); %會聚球面光波
ph2=-k.*((x-x0).^2+(y-y0).^2)/2/z;   %會聚球面波的實際相位
figure,surfl(ph2),shading interp,colormap(gray) 
phyp2=angle(U2);                     %會聚球面波的包裹相位
figure,imshow(phyp2,[]) 
figure, plot(ph2(257,:),'--')        %實際相位的剖線
hold on                              %保持目前圖像
plot(phyp2(257,:),'r')               %包裹相位的剖線
diff1=U1+1;                          %觀察面上發散球面光與垂直照射平行光的幹涉
I1=diff1.*conj(diff1);               %觀察面上的光強
figure,imshow(I1,[0,max(max(I1))])
diff2=U2+1;                          %觀察面上會聚球面光與垂直照射平行光的幹涉
I2=diff2.*conj(diff2);               %觀察面上的光強
figure,imshow(I2,[0,max(max(I2))])
           
lamda=6328*(10^(-10));         %波長
k=2*pi/lamda;                  %波數
alpha=pi/2.005;                %光與X軸的夾角
beita=pi/2.005;                %光與Y軸的夾角
L=0.004;                        %觀察面的尺寸,機關:米
x=linspace(-L/2,L/2,512);y=x;
[x,y]=meshgrid(x,y);
U=exp(1j.*k.*(x.*cos(alpha)+y.*cos(beita))); %建構入射平行光場
ph=k.*(x.*cos(alpha)+y.*cos(beita)); %直接計算實際相位
figure,surfl(ph),shading interp,colormap(gray)
phyp=angle(U);                %計算光場的相位(包裹相位)
figure,imshow(phyp,[])
figure,plot(ph(257,:) , '--')
hold on,plot(phyp(257,:),'r')
diff=U+1;                     %觀察面上入射平行光與垂直照射平行光的幹涉
I=diff.*conj(diff);           %觀察面上的光強
figure,imshow(I,[])
UFuv=fftshift(fft2(U));       %計算光場的頻譜
figure,imshow(abs(UFuv),[0,max(max(abs(UFuv)))./50]) %光場的頻譜
IFuv=fftshift(fft2(I));       %計算幹涉條紋的頻譜
figure,imshow(abs(IFuv),[0,max(max(abs(IFuv)))./5