2014年11月1日土曜日

MATLABで偏光のシミュレーション


光は波の性質と量子の性質がある。波としての光は電磁波として解釈される。
(というか、光波は電磁波であり、周波数帯の違いによって勝手に人間が分類している)
光波は、磁界と電界の振幅が直交した形でそれらと垂直の方向へ伝搬する(マックスウェルの方程式とそれから導ける波動の微分方程式で明らかなように)横波である。
そして、光が横波である以上、空間を伝搬するときに、縦と横の二つのモード(偏光)がある。
所謂、P偏光、S偏光というものである。

最近、私は授業で、こういうことを教えているのだが、中々偏光の仕組みについて理解させるのは大変である。P偏光とS偏光の位相のずれによって、円偏光、直線偏光、そして楕円偏光になるということを見ておもらうために、Matlabを使って偏光の仕組み(ベクトルの和を計算する)動画を作ったので紹介する。(結構、忙しい時期なので、作るのは大変だったが、結果的にうまくできたので良かった)

円偏光の説明動画



P偏光とS偏光の位相差がπ/2(波長の4分の1)ずれているときに生じる偏光である。

また、参考にMATLABのコードを示す(MATLAB関連の記事はクリック数が私のブログの中で最も多いので、これもきっとどこかで役に立つだろう)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear
set(gca,'nextplot','replacechildren');
set(gcf, 'color', 'black');
set(gca, 'color', 'black');
set(gcf, 'InvertHardCopy', 'off');
set(gca,'XColor','w')
set(gca,'YColor','w')
set(gca,'ZColor','w')

t=1:1000;
hold on
view([21 24 ])
plot3(t,t*0,t*0,'w');
plot3(0*t,(t-500)/500,0*t,'w');
plot3(0*t,0*t,(t-500)/500,'w');
axis off

for k=1:1000;
    a1=[cos(2*pi*k/250); cos(2*pi*k/250-pi/2)];
    a2=[cos(2*pi*k/250); cos(2*pi*k/250)];
    a3=[cos(2*pi*k/250); cos(2*pi*k/250+pi/4)];
    a=a1;
    plot3(k,a(1),a(2),'ro-',k,a(1),k*0,'b.-',k,k*0,a(2),'g.-');
    axis([0 1000 -1 1 -1 1])

    M(k) = getframe(gcf);
end
for k=1001:1100
     
       view([21+60/100*(k-1000)  24-16/100*(k-1000) ])
    M(k)=getframe(gcf);
end
hold off
%%%%%%%%%%%%%%%%%%%%%%%%%%%以上

説明やコメントは面倒なので書いてません。理解したい人は勉強してください!

0 件のコメント: