#include <ocsReduPolarizer.hh>
Public Member Functions | |
ReduPolarizer (ReduOptSignal *oReduOptSignalTmp) | |
void | SetPolarization (double S1PolarizerTmp, double S2PolarizerTmp, double S3PolarizerTmp) |
Sets a new polarization splitting vector in Stokes space. | |
void | PolarizeOptSignal () |
Polarizes the reduced optical signal. | |
Private Attributes | |
ReduOptSignal * | oReduOptSignal |
double * | SPolarizer |
Adapted by John Zweck (Jan 2006) from code written by Ivan Lima See doumentation for ReduPolarizer::PolarizeOptSignal() for details.
ReduPolarizer::ReduPolarizer | ( | ReduOptSignal * | oReduOptSignalTmp | ) |
Constructor. Sets default polarization splitting vector in Stokes space to be the horizontal state (1,0,0).
References oReduOptSignal, SetPolarization(), and SPolarizer.
void ReduPolarizer::PolarizeOptSignal | ( | ) |
Polarizes the reduced optical signal.
We derive an approximate formula in Stokes space for the action of a polarizer on a reduced signal, based on the theory documented in Polarizer::PolarizeOptSignal(). The approximation relies on the assumption that the time integral of product of u(t) and v(t) is zero, whenever u,v are a pair of OptSignals that respresent the signal in two different channels, noise in two different channels, or signal and noise in a channel (or two different channels). This assumption underlies the entire Wang_Menyuk reduced model (see for example eqs (6) and (15) of the paper JLT19p487.
The formula is derived from Polarizer::PolarizeOptSignal() using Gordon and Kogelnick Eq 3.11.
For the signal and noise in each channel, we separately set
S_out = 0.5InnerProduct(SPolarizer,S_in)SPolarizer
where all Stokes parameters in the above formula are 4x1 vectors and SPolarizer = (1,UnitThreeVector).
References ReduOptSignal::GetNumChannels(), InnerProduct(), oReduOptSignal, SPolarizer, ReduOptSignal::StokesNoise, and ReduOptSignal::StokesSignal.
Referenced by Polarizer::PolarizeOptSignal().
void ReduPolarizer::SetPolarization | ( | double | S1PolarizerTmp, | |
double | S2PolarizerTmp, | |||
double | S3PolarizerTmp | |||
) |
Sets a new polarization splitting vector in Stokes space.
References SPolarizer, sq(), and sqrt().
Referenced by ReduPolarizer(), and Polarizer::SetPolarization().
ReduOptSignal* ReduPolarizer::oReduOptSignal [private] |
Referenced by PolarizeOptSignal(), and ReduPolarizer().
double* ReduPolarizer::SPolarizer [private] |
Referenced by PolarizeOptSignal(), ReduPolarizer(), and SetPolarization().