Common polarization elements and states


A set of functions that return Jones matrices and Mueller matrices for common polarization elements and Jones vectors and Stokes vectors for some common polarization states.

Include files:

#include "mueller.h"

Source code:

jmatrix.cpp
mueller.cpp

See also:

SCATMECH Home,   Conventions,   JonesMatrix,   MuellerMatrix,   JonesVector,   StokesVector

Definition of functions:

JonesMatrix JonesZero();
JonesMatrix JonesLinearRetarder(double phase, double angle=0);
JonesMatrix JonesCircularRetarder(double phase);
JonesMatrix JonesRotator(double angle);
JonesMatrix JonesLinearPolarizer(double angle=0,double diattenuation=1);
JonesMatrix JonesCircularPolarizer(double diattenuation=1);
JonesMatrix JonesGeneralized(const JonesVector& a,const JonesVector& b,
                             const complex<double>& ma, const complex<double>& mb);

MuellerMatrix MuellerZero();
MuellerMatrix MuellerDepolarizer(double transmittance=1.,double depolarization=1.); 
MuellerMatrix MuellerUnit(double transmittance=1.);
MuellerMatrix MuellerPartialLinearPolarizer(double tmax,double tmin,double angle);

JonesVector JonesVectorUnitS();
JonesVector JonesVectorUnitP();
JonesVector JonesVectorUnitLinear(double eta);
JonesVector JonesVectorUnitRCP();
JonesVector JonesVectorUnitLCP();
JonesVector JonesVectorUnitGeneral(double eta,double DOCP);

StokesVector StokesVectorUnitUnpol();
StokesVector StokesVectorUnitS();
StokesVector StokesVectorUnitP();
StokesVector StokesVectorUnitLinear(double eta);
StokesVector StokesVectorUnitRCP();
StokesVector StokesVectorUnitLCP();
StokesVector StokesVectorUnitGeneral(double eta,double DOCP=0.,double DOP=1.);

JonesMatrix JonesZero()

The function JonesZero() returns a zero Jones vector.

Example:

JonesMatrix j = JonesZero();

Top of Page

JonesMatrix JonesLinearRetarder(double phase, double angle=0)

The function JonesLinearRetarder returns the JonesMatrix of a retarder having a retardation phase (where PI is a half-wave retarder) and fast axis rotated by angle in a clockwise fashion when looking into the beam. For angle=0, the fast axis corresponds to p-polarization.

Example:

double time;
JonesMatrix halfwave=JonesLinearRetarder(PI);
JonesMatrix quarterwave=JonesLinearRetarder(PI/2,PI/4);
JonesMatrix modulator=JonesLinearRetarder(time,PI/4);

Top of Page

JonesMatrix JonesCircularRetarder(double phase)

The function JonesCircularRetarder returns the JonesMatrix of a circular retarder having a retardation phase (where PI is a half-wave retarder).

Example:

JonesMatrix cr = JonesCircularRetarder(PI/2.);

Top of Page

JonesMatrix JonesRotator(double angle)

The function JonesRotator returns a JonesMatrix that rotates the polarization state by angle in a clockwise fashion viewing into the beam.

Example:

JonesMatrix rotator=JonesRotator(PI/2);

Top of Page

JonesMatrix JonesLinearPolarizer(double angle=0, double diattenuation=1)

The function JonesLinearPolarizer returns the JonesMatrix for a linear polarizer rotated by angle in a clockwise fashion viewing into the beam. For imperfect polarizers, the diattenuation is less than unity.

Example:

JonesMatrix polarizer=JonesLinearPolarizer(0);

Top of Page

JonesMatrix JonesCircularPolarizer(double diattenuation=1)

The function JonesCircularPolarizer returns the JonesMatrix for a circular polarizer. For imperfect polarizers, the diattenuation is less than unity.

Example:

JonesMatrix polarizer=JonesCircularPolarizer();

Top of Page

JonesMatrix JonesGeneralized(JonesVector& a, JonesVector& b, complex<double>& ma, complex<double>& mb)

The function JonesGeneralized returns a JonesMatrix whose eigenvalues are ma and mb, with respective eigenJonesVectors a and b.

Example:

JonesMatrix quarterwave = JonesGeneralized(JonesVector(1,0),
                                           JonesVector(0,1),
                                           complex<double>(1,0),
                                           complex<double>(0,1));

Top of Page

MuellerMatrix MuellerZero()

This function returns a MuellerMatrix whose elements are all zero.

Example:

MuellerMatrix zero=MuellerZero();

Top of Page

MuellerMatrix MuellerDepolarizer(double transmittance=1.,double depolarization=1.)

This function returns a MuellerMatrix whose elements are all zero except the upper-left element, which is set to transmittance. If depolarization is set to less than unity, the other diagonal elements are nonzero, too.

Example:

MuellerMatrix depolarizer=MuellerDepolarizer(1.);

Top of Page

MuellerMatrix MuellerUnit(double transmittance=1.)

This function returns a MuellerMatrix whose off-diagonal elements are all zero, and whose diagonal elements are all transmittance.

Example:

MuellerMatrix unit=MuellerUnit(1.);

Top of Page

MuellerMatrix MuellerPartialLinearPolarizer(double tmax,double tmin,double angle)

This function returns a MuellerMatrix corresponding to a partial polarizer whose transmittance is tmax along an axis oriented an angle angle from s-polarized and tmin along an axis perpendicular to that axis.

Example:

MuellerMatrix polarizer=MuellerPartialLinearPolarizer(1.,0.,0.);

Top of Page

JonesVector JonesVectorUnitS()
JonesVector JonesVectorUnitP()
JonesVector JonesVectorUnitLinear(double eta)
JonesVector JonesVectorUnitRCP()
JonesVector JonesVectorUnitLCP()
JonesVector JonesVectorUnitGeneral(double eta,double DOCP)

A set of functions which return unit Jones vectors for specific polarization states:

  • JonesVectorUnitS() returns a Jones vector for s-polarized light.
  • JonesVectorUnitP() returns a Jones vector for p-polarized light.
  • JonesVectorUnitRCP() returns a Jones vector for right-circularly-polarized light.
  • JonesVectorUnitLCP() returns a Jones vector for left-circularly-polarized light.
  • JonesVectorUnitLinear(double eta) returns a Jones vector for linearly polarized light whose electric field is an angle eta from s-polarized.
  • JonesVectorUnitGeneral(double eta,double DOCP) returns a Jones vector for light whose principal axis is an angle eta from s-polarized, and whose degree of circular polarization is DOCP.

Top of Page

StokesVector StokesVectorUnitUnpol()
StokesVector StokesVectorUnitS()
StokesVector StokesVectorUnitP()
StokesVector StokesVectorUnitLinear(double eta)
StokesVector StokesVectorUnitRCP()
StokesVector StokesVectorUnitLCP()
StokesVector StokesVectorUnitGeneral(double eta,double DOCP=0.,double DOP=1.)

A set of functions which return unit Stokes vectors for specific polarization states:

  • StokesVectorUnitUnpol() returns the Stokes vector for unpolarized polarized light.
  • StokesVectorUnitS() returns the Stokes vector for s-polarized light.
  • StokesVectorUnitP() returns the Stokes vector for p-polarized light.
  • StokesVectorUnitRCP() returns the Stokes vector for right-circularly-polarized light.
  • StokesVectorUnitLCP() returns the Stokes vector for left-circularly-polarized light.
  • StokesVectorUnitLinear(double eta) returns the Stokes vector for linearly polarized light for which the electric field is an angle eta from s-polarized.
  • StokesVectorUnitGeneral(double eta,double DOCP,double DOP) returns the Stokes vector for light whose principal axis is an angle eta from s-polarized, whose degree of circular polarization is DOCP, and whose degree of polarization is DOP.

Top of Page


For More Information

SCATMECH Technical Information and Questions
Sensor Science Division Home Page
Sensor Science Division Inquiries
Website Comments

Current SCATMECH version: 7.22 (April 2021)