当前位置:首页 > Matlab插值模拟在光的偏振中的应用
Matlab插值模拟在光的偏振中的应用
姓名:刘胜 学号:2013302540209
摘要:在光的偏振试验中,由于对数据处理比较多,所以,在查阅资料和在请教同学的基础上,自行编写了一组程序,来模拟光的偏振中的实验图谱。 关键词:matlab,插值法,马吕斯定律,光的椭圆偏振。 正文:
实验内容及其步骤如下: 验证马吕斯定律
如果光源中的任一波列(用振动平面E表示)投射在起偏器P上(如下图), 只有相当于它的成份之一的Ey(平行于光轴方向的矢量)能够通过,另一成份
Ex(=E cosθ)则被吸收。与此类似,若投射在检偏器A上的线偏振光的振幅为E0,则透过A的振幅为E0 cosθ(这里θ是P与A偏振化方向之间的夹角)。由于光强与振幅的平方成正比,可知透射光强I随θ而变化的关系为
这就是马吕斯定律。
这是利用matlab写的程序,运行结果如下: >> clear all;
>> x=[0:pi/9:2*pi];
>> y=[134 135 104 50 16 9 23 68 118 138 124 99 53 16 9 24 67 115 140]; >> xi=[0:pi/720:2*pi];
>> yi=interp1(x,y,xi,'spline'); >> plot(x,y,'*',xi,yi);
并且总结了几点心得: 1. 关于插值的应用。 clear all;
>> x=[0:pi/9:2*pi];
>> y=[134 135 104 50 16 9 23 68 118 138 124 99 53 16 9 24 67 115 140]; >> xi=[0:pi/180:2*pi];
>> yi=interp1(x,y,xi,'spline'); >> plot(x,y,'*',xi,yi);
注意:1.矩阵坐标只能用弧度表示;
2. 对应矩阵的数目一定要对称;interp函数的调用格式yi=interp1(x,Y,xi);yi=interp1(Y,xi); 3. yi=interp1(x,y,xi,method);
4. 利用星号在plot中做数据的标记,spline是三次条样插值。
刘胜 201330254020914012010080604020001234567结果如下:
14012010080604020001234567
4. 波片
(1) 预备知识1:两个互相垂直的、同频率的简谐振动的合成 两简谐振动的位移方程分别为
x?A1cos(?t??1)y?A2cos(?t??2) (3)
合成的运动是两个分运动之和,消去参数t,得到轨迹方程
x2y2xy??2cos(?2??1)?sin2(?2??1)22A1A2A1A2 (4)
上式表明,一般情况下,合振动矢量末端运动轨迹是椭圆,该椭圆在2A1?2A2的矩形范围内。如果(3)式是两线偏振光,则叠加后一般成为椭圆偏振光。下面讨论相位差????2??1为几种特殊值的价况。
① ???2k? (k=0, ±1, ±2, …),(4)式变为
xy?A1A2 (5)
合振动矢量末端运动轨迹是上述矩形的对角线,与y轴的夹角为?(请想一想:?=?)。这就是说,相互垂直的、同相位的两线偏振光合成后仍为线偏振光,但E振动有新的取向。
② ???(2k?1)? (k=0, ±1, ±2, …),(4)式变为
xy??A1A2 (6)
(6)式表明,相互垂直的、相位相反的两线偏振光合成后也是线偏振光,E振动方向与y轴的夹角也是?,但在y轴的另一侧。
③
???(2k?1)?2 (k=0, ±1, ±2, …),(4)式变为
x2y2?2?12A1A2 (7)
此时,合振动矢量末端运动轨迹是正立在上述矩形内的椭圆。即相互垂直的、相位差是?2的两线偏振光合成为椭圆偏振光,椭圆的长半轴和短半轴分别等于两线偏振光的振幅。
④ 根据情况③且A1?A2?A,(4)式变为
x2?y2?A2 即振幅相等的、相互垂直的、相位差是?2的两线偏振光合成为圆偏振光。 下面是实验后的数据处理:
>> clear all;
>> a=[0:pi/9:2*pi];
>> m=[59 75 84 74 54 37 19 21 35 52 68 82 75 55 33 21 21 35 58]; >> b=ones(size(m)); >> ix=87; >> iy=17.5; >> for t=1:19; k=1;
E(k)=sqrt((ix*iy)/(ix+iy-m(t))); b(t)=E(k); k=k+1; end
>> polar(a,b); >>
刘胜 201330254020990120 10 860 6150 430 21800210330240300270(8)
刘胜 201330254020912015090 10 8 6 4 218003060210240270300330
>> clear all;
>> x=[0:pi/9:2*pi];
>> m=[59 75 84 74 54 37 19 21 35 52 68 82 75 55 33 21 21 35 58]; >> y=ones(size(m)); >> ix=87; >> iy=17.5; >> for t=1:19; k=1;
E(k)=sqrt((ix*iy)/(ix+iy-m(t))); y(t)=E(k); k=k+1; end
>> ai=[0:pi/180:2*pi];
>> bi=interp1(x,y,ai,'spline'); >> polar(x,y,'*'); >> hold on; >> polar(ai,bi); >> hold off;
90120 8 6150 4 2180030 1060210330240270300
注意:
(1) hold on可以将两个图像相结合。
(2) 极坐标条件下最好给出范围,不能像plot的一次性描点,for循环蛮好用。 (3) 数组的替换注意。 总结:经过这次试验让我更加深刻认识物理实验的乐趣和提高了我的动手能力,以后的实验中我也会好好应用学过的知识来学习。 参考文献:《matlab仿真技术与应用》《matlab图形处理》《matlab数学计算范例教程》。
共分享92篇相关文档