码迷,mamicode.com
首页 > 其他好文 > 详细

Matlab模拟双点光源干涉

时间:2015-05-21 14:07:50      阅读:335      评论:0      收藏:0      [点我收藏+]

标签:

一. 数学模型

设空间两定点S1、S2在同一介质中向一切方向发出两个相同频率的这样的波,振源振动可表示为
E01=A1Cos(ωt+?01)
E02=A2Cos(ωt+?02)
若用r1,r2分别表示任意空间的观察点P到点光源S1,S2的距离,当两列波达到P点时,振动可以表达为
E1=A1Cos(ωt+?01?kr1)
E2=A2Cos(ωt+?02?kr2)
其中 k=2π/λ,
假定两束光在空间任意点P的偏振方向一致,则在P点上两束光的叠加强度为:

I=|E1|2+|E2|2+2|E1E2|cos(kr2?kr1??)=I1+I2+2I1I2????cosδ

其中?=?02??01,假定I1=I2=I0,S1,S2的辐射是同相位的,即?=0,δ=k(r2?r1),则
I=2I0(1+cosδ)=4I0cos2(δ/2)

因此,当空间点满足r2?r1=(2N)λ2时,干涉相长;r2?r1=(2N+1)λ2时,干涉相消;
(N=0,±1,±2,?)
以强度相同为特征的空间点的轨迹是以S1,S2为轴线的双叶旋转双曲线.如果光屏在空间任意位置放置,得到的干涉条纹则不一定是等间距的直条纹.

二. Matalb 代码

  1. function dbpiont(dd,Lamda,A,B,C,D)
  2. %%
  3. % 参数: A,B,C,D 像平面 Ax+By+Cz+D=0
  4. % dd: 光源距离
  5. % Lambda: 光波长
  6. % dbpiont(2,0.0006328,1,-10,0,1000)
  7. %%
  8. axis([-10 10 -10 10 -10 10]);
  9. grid on
  10. x1 = dd/2;
  11. x2 = -dd/2;
  12. y1=0;y2=0;
  13. z1=0;z2=0; %确定点光源位置
  14. L=200; %观察窗口 LxL平面
  15. x=linspace(-10,10,L);%确定观察窗口的大小和位置
  16. y=x;
  17. NCLevels=256;
  18. [X,Y]=meshgrid(x,y);%创建L@L个点阵的平面
  19. %根据输入的平面Ax+By+Cz+D=0的参数ABCD,确定平面上与观察窗口对应部分的L@L个点阵平面的三维坐标
  20. if A==0 & B==0
  21. Z=(-D/C)*ones(L);
  22. else if B==0 & C==0
  23. Z=X;
  24. X=(-D/A)*ones(L);
  25. else if A==0 & C==0
  26. Z=Y;
  27. Y=(-D/B)*ones(L);
  28. else if C==0
  29. Z=Y;
  30. Y=(-D-X.*A)./B;
  31. else
  32. Z=(-D-X.*A-Y.*B)./C;
  33. end
  34. end
  35. end
  36. end
  37. %计算点阵平面任意点到两光源的距离差并存储于一个L@L矩阵中
  38. for i=1:L
  39. for j=1:L
  40. d1=sqrt((X(i,j)-x1)^2+(Y(i,j)-y1)^2+(Z(i,j)-z1)^2);
  41. d2=sqrt((X(i,j)-x2)^2+(Y(i,j)-y2)^2+(Z(i,j)-z2)^2);
  42. d(i,j)=d2-d1;
  43. end
  44. end
  45. %计算平面上各点的光强
  46. I=cos((d.*pi)./Lamda).^2;
  47. colormap(gray(NCLevels));
  48. Ir=I.*NCLevels;
  49. %绘制给定平面干涉条纹的图形
  50. mesh(X,Y,Z,Ir)
  51. hold on
  52. %绘制点光源
  53. plot3(x1,y1,z1,‘r.‘);
  54. plot3(x2,y2,z2,‘r.‘);

两光源取在x轴上关于原点对称相距为2mm,波长K=63218nm,平面为-x-10g+1000=0,观察窗口宽度为20X20

  1. dbpiont(2,0.0006328,1,-10,0,1000)

技术分享

可以看出平面中间部分为等间距干涉条纹,两边为弧形条纹;

若取平面x=250mm时得到一组同心圆条纹。

  1. dbpiont(2,0.0006328,1,0,0,-250)

技术分享

如果改变输入参数即任意改变平面的位置,及改变观察窗口的位置和大小,将得到三维空间任意位置的干涉图

三. 进一步讨论

若考虑双点光源发射的是球面光波,光场各处的光强随着传播距离增大而变小,则程序中光强计算式为

I=1r21+1r22+2r1r2cosd





Matlab模拟双点光源干涉

标签:

原文地址:http://www.cnblogs.com/crossmind/p/4519534.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!