天天看点

二维光场表示

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