Light Polarization and Stokes Parameters

Manipulate[
Module[{a,b,Δϕ,α,Imax,sx,sy,sz,sxy,ellipse,principalAxes,psaxes,poincareSphere,equators,stokesVector,circles},
Imax=(DOLP+1)/2;
α=orientation (π/180.0);
a=(Sqrt[Imax ((Cos[α])^2)+(1-Imax) ((Sin[α])^2)]);
b=(Sqrt[1-(a^2)]);
Δϕ=If[Imax==1&&α==0,0,Switch[handedness,"right",2π-ArcTan[Sin[2α](2 Imax-1),2 (Sqrt[Imax(1-Imax)])],"left",ArcTan[Sin[2α](2 Imax-1),2 (Sqrt[Imax(1-Imax)])]]];
{sx,sy,sz}={(a^2)-(b^2),2 a b Cos[Δϕ],2 a b Sin[Δϕ]};
sxy=(Sqrt[(sx^2)+(sy^2)]);
ellipse=ParametricPlot[{a Cos[t], b Cos[t+Δϕ]},{t,0,2Pi},Mesh->False,PlotStyle->{Darker[Blue],Thickness[0.01]},Epilog->{Darker[Blue],Thick,Arrowheads[.1],Arrow[{(Sqrt[1-Imax])({Sin[α],-Cos[α]}-Switch[handedness,"right",-1,"left",+1]0.1{Cos[α],Sin[α]}),(Sqrt[1-Imax])({Sin[α],-Cos[α]}+Switch[handedness,"right",-1,"left",+1]0.1{Cos[α],Sin[α]})}]}];
principalAxes=Graphics[{{Darker[Blue],Thin,Line[{(Sqrt[Imax]){-Cos[α],-Sin[α]},(Sqrt[Imax]){Cos[α],Sin[α]}}]},
{Darker[Blue],Thin,Line[{(Sqrt[1-Imax]){-Sin[α],Cos[α]},(Sqrt[1-Imax]){Sin[α],-Cos[α]}}]}}];
poincareSphere=Graphics3D[{{Black,PointSize[0.02],Point[{0,0,1}],Point[{0,0,-1}],Point[{1,0,0}],Point[{-1,0,0}],Point[{0,1,0}],Point[{0,-1,0}]},{Opacity[0.6],Sphere [{0,0,0},1]}}];
psaxes=Graphics3D[{Line[ps{{-1,0,0},{1,0,0}}],Line[ps{{0,-1,0},{0,1,0}}],Line[ps{{0,0,-1},{0,0,1}}],Text["(Subscript[S, x])",{lp,0,0}],Text["(Subscript[S, y])",{0,lp,0}],Text["(Subscript[S, z])",{0,0,lp}]}/.{ps-> 1.15,lp->1.3}];
equators={ParametricPlot3D [Evaluate[{Cos[t],Sin[t],0}],{t,0,2 π},PlotStyle->{Black,Thin}],ParametricPlot3D [Evaluate[{Cos[t],0,Sin[t]}],{t,0,2 π},PlotStyle->{Black,Thin}],ParametricPlot3D [Evaluate[{0,Cos[t],Sin[t]}],{t,0,2 π},PlotStyle->{Black,Thin}]};
circles={ParametricPlot3D [Evaluate[{Cos[2α] Cos[t],Sin[2α] Cos[t],Sin[t]}],{t,0,2 π},PlotStyle->{Red,Thin}],ParametricPlot3D [Evaluate[{sxy Cos[t],sxy Sin[t],sz }],{t,0,2 π},PlotStyle->{Red,Thin}]};
stokesVector=Graphics3D[{Red,Sphere [{sx,sy,sz},0.06],Thickness[0.012]}];
Grid[
{{Text@Style["polarization ellipse",16],Text@Style["Poincaré sphere",16]},
{Pane[Show[ellipse,principalAxes,Frame->False,PlotRange->1,BaseStyle->{Medium},AxesLabel->{"(Subscript[E, H])","(Subscript[E, V])"},ImageSize->260],{280,280},Alignment->{Center,Top}],Pane[Show[poincareSphere,equators,stokesVector,circles,psaxes,Axes->False,PlotRange->1.2,BaseStyle->{Medium},Boxed->False,ViewPoint->{1.3,2.4,1},ImageSize->340],{300,300},Alignment->{Center,Top}]},
{Pane["",Alignment->Center],Pane[Row[Text/@{Style["(Subscript[S, x])=",Italic],NumberForm[sx//Chop,{2,2}],Style[",  (Subscript[S, y])=",Italic],NumberForm[sy//Chop,{2,2}],Style[",  (Subscript[S, z])=",Italic],NumberForm[sz//Chop,{2,2}]}],BaseStyle->{14},Alignment->{Center,Top}]}
}] 
],
{{DOLP,0.6,"degree of linear polarization (0 ≤ DOLP ≤ 1)"},0,1,Appearance->"Labeled"},
{{orientation,20,"orientation of ellipse (0 ≤ α ≤ 180°)"},0,180,Appearance->"Labeled"},
{{handedness,"left","handedness"},{"left","right"}}]

CAPTION

The polarization state of an electromagnetic wave can conveniently be described by a set of Stokes parameters. On the left, the polarization ellipse describes the motion of the optical electric field ((Subscript[E, H]), (Subscript[E, V])(e^(iΔϕ))) in a plane transverse to the light propagation direction. On the right are the corresponding Stokes parameters defined in terms of intensity difference measurements

(Subscript[S, x])=(Subscript[I, H])-(Subscript[I, V])=((Subscript[E, H])^2)-((Subscript[E, V])^2),

(Subscript[S, y])=(Subscript[I, -45°])-(Subscript[I, +45°])=2(Subscript[E, H])(Subscript[E, V])cos(Δ ϕ),

(Subscript[S, z])=(Subscript[I, L])-(Subscript[I, R])=2(Subscript[E, H])(Subscript[E, V])sin(Δ ϕ),

where the intensities of the polarization components (H: horizontal, V: vertical, ±45°: along diagonals, L: circular left, R: circular right) are normalized to the total light intensity. The parameters that you can vary are the orientation of the ellipse, its degree of linear polarization DOLP=(((Subscript[I, max])-(Subscript[I, min]))/((Subscript[I, max])+(Subscript[I, min]))), where (Subscript[I, max]) and (Subscript[I, min]) are the intensities measured along the major and minor axes, and its handedness (direction of rotation). For 100% polarized light, the endpoint of the Stokes vector (OverVector[S])=((Subscript[S, x]),(Subscript[S, y]),(Subscript[S, z])) lies on a unit sphere called the Poincaré sphere.

THIS NOTEBOOK IS THE SOURCE CODE FROM

"Light Polarization and Stokes Parameters" from the Wolfram Demonstrations Project
 http://demonstrations.wolfram.com/LightPolarizationAndStokesParameters/

Contributed by: Gianni Di Domenico and Antoine Weis

A full-function Wolfram Mathematica system (Version 6 or higher) is required to edit this notebook.
GET WOLFRAM MATHEMATICA »

© Wolfram Demonstrations Project & Contributors   |   Terms of Use   |   Make a new version of this Demonstration »