The OptSignal class contains data and methods for the optical signal. More...
#include <ocsOptSignal.hh>
Public Member Functions | |
OptSignal (string InFileName, RanNumGen *RNG2) | |
The main constructor for the class. | |
OptSignal (string InFileName, RanNumGen *RNG2, string DataFileName) | |
A second constructor for the class. | |
void | ConstructOptSignal (string InFileName, RanNumGen *RNG2) |
OptSignal (OptSignal &OrigOptSignal) | |
Copy constructor. | |
OptSignal & | operator= (OptSignal &RHS_Signal) |
Assignment operator. | |
OptSignal & | operator- (OptSignal &Signal2) |
Takes difference of two signals. | |
void | SubtractFreqDomain (OptSignal *oOptSignal2) |
void | AddFreqDomain (OptSignal *oOptSignal2) |
OptSignal (OptSignal &Signal1, OptSignal &Signal2, RanNumGen *RNG3) | |
Constructor for sum of signals. | |
void | AddReducedNoiseToNoiseFreeSignal (ReduOptSignal *ReduOptSignal1) |
~OptSignal () | |
Class destructor. | |
void | RegenerateSignalString (void) |
Basic transmitter model. Regenerates the signal data. | |
void | GetNewRandomSignalString (void) |
Regenerates the signal using a new randomly chosen bit sequence. | |
void | ConstantPhaseShift (double PhaseShiftAmount) |
void | GenerateImpulseSignal (void) |
void | ChangeAveragePowerChannCurrentSignal (double AveragePowerChann2) |
Used in GaussianReceiver for computing the Q-factor. | |
void | RegenerateSignalWithGivenAveragePowerChann (double AveragePowerChann2) |
Used in GaussianReceiver for computing the Q-factor. | |
void | GenerateSignalStringGaussianOrSechWithPhaseShift (double PhaseShiftAmount) |
Written for a particular application. | |
void | GenerateSignalStringRaisedCosinesWithPhaseShift (double PhaseShiftAmount) |
Written for a particular application. | |
void | InputTimeDataFromFile (void) |
Reads in time data from file when TypePulse == INPUT_SIGNAL_FROM_FILE. | |
void | InitializeFirstOrderPMDSignal (double PowerSplit, double DGD) |
void | ChangeAbsoluteCenterFreq (double CenterFreq2) |
double | GetRelativeCenterFrequency (int ChannelArrayIndex) |
double | GetAccumulatedFirstOrderDispersion (void) |
double | GetAccumulatedSecondOrderDispersion (void) |
void | ResetAccumulatedFirstOrderDispersionToZero (void) |
void | ResetAccumulatedSecondOrderDispersionToZero (void) |
void | SetAccumulatedFirstOrderDispersion (double Value) |
void | SetAccumulatedSecondOrderDispersion (double Value) |
void | SetWriteAccumulatedFirstOrderDispersionFlag (int Value) |
void | OpenAccumulatedFirstOrderDispersionFile (string FileName) |
void | CloseAccumulatedFirstOrderDispersionFile (void) |
void | WriteAccumulatedFirstOrderDispersion (double PropagatedLength) |
Writes out accumulated first order dispersion. | |
double | GetAccumulatedTotalNoiseSpectralDensityGaussianStatistics (void) |
void | SetAccumulatedTotalNoiseSpectralDensityGaussianStatistics (double Value) |
void | AddToAccumulatedTotalNoiseSpectralDensityGaussianStatistics (double Increment) |
void | GainOfAccumulatedTotalNoiseSpectralDensityGaussianStatistics (double LinearPowerGainFactor) |
double | GetNoiseBandwidthGaussianStatistics (void) |
void | SetNoiseBandwidthGaussianStatistics (double Value) |
typeSimulation | GetTypeSimulation (void) |
typePulse | GetTypePulse (void) |
int | GetChannelArrayIndex (int ChannelPhysicalIndex) |
int | GetChannelPhysicalIndex (int ChannelArrayIndex) |
double | GetFrequency (int ChannelArrayIndex) |
double | GetWavelength (int ChannelArrayIndex) |
double | GetCenterFreq (void) |
double | GetCenterWavelength (void) |
int | GetNumChannels (void) |
double | GetBitLength (void) |
int | GetQtPoints (void) |
double | GetDeltaTime (void) |
double | GetFWHM_Pulse (void) |
double | GetBitRateChann (void) |
int | GetStringLength (void) |
double | GetChannSpacing (void) |
double | GetOptPowerChann (void) |
double | GetDeltaFreq (void) |
double | GetTimeWindow (void) |
double | GetFreqWindow (void) |
int | GetDebugLevel (void) |
bool | GetRandomPolarizationsFlag () |
bool | GetUsingOptFiberLocalError (void) |
double | GetChirpParameter (void) |
double | GetInStokes (const int ChannelArrayIndex, const int StokesIndex) |
cplx | GetInJones (const int ChannelArrayIndex, int JonesIndex) |
double * | GetInStokes (const int ChannelArrayIndex) |
cplx * | GetInJones (const int ChannelArrayIndex) |
double | GetFreqForPDVectorOFLE (void) |
void | GetRandomJones (cplx *Jones) |
void | TestGetRandomJones (string OutFileName, int NumberPoints) |
void | ResetPDVectorOFLE (void) |
void | SetNumberChannelsForDemuxer (int NumChannels2) |
Used by OptDemuxer class. | |
void | SetNumChannels (const int NumChannels2) |
Used by OptDemuxer class. | |
void | ReduceToSingleChannel (int ChannelArrayIndex) |
Used by OptDemuxer class. | |
void | SetFWHM_Pulse (double Value) |
void | SetRiseTime (double Value) |
void | SetExtinctionRatio (double Value) |
void | SetOptPowerChannel (const double Power2) |
void | SetCenterFreq (const double CenterFreq2) |
void | SetChannSpacing (const double ChannSpacing2) |
void | SetFrequency (int ChannelArrayIndex, double Freq) |
void | SetInStokes (const int ChannelArrayIndex, const int StokesIndex, double StokesValue) |
void | SetInJones (const int ChannelArrayIndex, const int JonesIndex, cplx JonesValue) |
void | SetInStokes (const int ChannelArrayIndex, double *StokesVector) |
void | SetInJones (const int ChannelArrayIndex, cplx *JonesVector) |
void | SetRandomJonesVectors (void) |
void | SetEOM_RiseTime (double Value) |
void | SetEOM_ElecFilter_FreqFWHM (double Value) |
void | InitializeInStokes (ifstream *InFile) |
int | ReadInStokes (string InStokesName, int ch, ifstream *InFile) |
void | EliminateSignal (void) |
Sets signal data to zero. | |
void | ClearSignal (void) |
Sets signal data to zero. | |
void | EliminateX_Polarization (void) |
Sets signal data in X-polarization to zero. | |
void | EliminateY_Polarization (void) |
Sets signal data in Y-polarization to zero. | |
void | ScaleSignal (double ScaleFactor) |
void | SwitchXandYPolarizations (void) |
double | GetAveragePower (void) |
Returns average power of optical signal computed in time domain. | |
double | GetAveragePowerFreqDomain (void) |
double | GetAveragePowerFreqDomainInsideChannels (void) |
double | GetAveragePowerFreqDomainInsideChannel (int ChannelArrayIndex) |
cplx | GetAutocorrelationFunctionOptSignalX (double TimeOffset) |
Returns integral of conj(tOptSignalX(t))*tOptSignalX(t+TimeOffset)dt. | |
double | GetDegreeOfPolarization (void) |
double | GetDegreeOfPolarization (double BandWidth) |
double | GetDegreeOfPolarization (double RelMinFreq, double RelMaxFreq) |
const char * | WriteTypePulse (void) |
void | WriteDegreeOfPolarization (double PropLength, double RelMinFreq, double RelMaxFreq) |
void | OpenDegreeOfPolarizationFile (string InFileName, bool WriteDOPFlag) |
void | CloseDegreeOfPolarizationFile (bool WriteDOPFlag) |
void | GetTotalStokesParameters (double *Stokes) |
Computes the normalized Stokes parameters (4-vector). | |
void | GetTotalStokesParametersInBandwidth (double *Stokes, double RelMinFreq, double RelMaxFreq) |
void | GetTotalStokesParametersInTime (double *Stokes, int RelMinTimeIndex, int RelMaxTimeIndex) |
double | GetDegreeOfPolarizationAndTotalStokesFreqDomain (double *Stokes) |
double | GetSigmaSqOptSignal (void) |
Our of date. Use ComputeRMSPulseWidth() instead. | |
double | ComputeFWHMPulsePower (void) |
void | ImportOptSignal (OptSignal *oOptSignalOrig) |
void | DampBounds (double DampTime) |
void | Time2Freq (void) |
Does Fourier transform of OptSignal data from Time to Frequency. | |
void | Time2FreqScalar (void) |
void | Freq2Time (void) |
Does Fourier transform of OptSignal data from Frequency to Time. | |
void | Freq2TimeScalar (void) |
void | fftshift (void) |
Has same effect as function of same name in Matlab. | |
void | ifftshift (void) |
Has same effect as function of same name in Matlab. | |
void | TimeShiftSignal (double dTime) |
void | FreqShiftSignal (double dFreq) |
void | WriteFileTimePower (string outFile) |
Writes to a file: Time in column 1 and Optical Power in column 2. | |
void | WriteFileFreqPower (string outFile) |
void | WriteFileWavelengthPower (string outFile) |
void | WriteFileFreqPower (string outFile, int TypeOutputFlag) |
void | WriteFileFreqPowerdBm (string outFile) |
void | WriteFileComplexFieldsTimeAndFreq (string OutFileName) |
Writes all complex fields to a file for quick restart. | |
void | ReadFileComplexFieldsTimeAndFreq (string InFileName) |
Reads all complex fields to a file for quick restart. | |
void | WriteComplexFields (string OutFileName, int ForRestartFlag) |
void | ReadComplexFields (string InFileName) |
Needs more debugging! | |
void | ReadComplexFieldsX (string InFileName) |
void | WriteComplexFieldsX (string OutFileName, int ForRestartFlag) |
Writes to a file: Complex fields real(tX), imag(tX). | |
void | WriteComplexFieldsFreq (string OutFileName) |
void | WriteFreqPhaseX (string OutFileName) |
void | WriteDistTimePowerPhase (string outFile, int timeIndexIncrement, double distance, int appendFlag) |
void | WriteDistTimePower (string outFile, int timeIndexIncrement, double distance, int appendFlag) |
void | WriteDistTimeCplxWave (string outFile, double distance, int appendFlag) |
void | WriteAveragePowerdBm (string OutFileName, double distance, int appendFlag) |
void | WritePowerdBmChannel (string OutFileName, double distance, int appendFlag, int ChannelArrayIndex) |
void | WritePowerdBmFreqWindow (string OutFileName, double distance, int appendFlag, double LeftFreq, double RightFreq) |
void | WriteFileTimeAmpPhase (string outFile) |
double | GetLocalFrequency (int timeIndex) |
double | GetChirp (int timeIndex) |
double | ComputeAverageChirpOfMarks (double TimeWithinBitSlot) |
void | WriteLocalFrequencyAndChirp (string outFile) |
void | WriteChirp (string outFile) |
template<class T > | |
T | WrapPeriodically (T periodicVariable, T leftEndPoint, T rightEndPoint) |
Returns the result of wrapping a periodic variable, periodicVariable, so that it is in the range [leftEndPoint,rightEndPoint). | |
int | GetFloorIndex (double Time) |
Returns integer index in range [0,qtPoints) corresponding to floor(WrappedTime/DeltaTime), where WrappedTime is in range [0,TimeWindow). | |
int | GetCeilIndex (double Time) |
Returns wrapped integer index in range [0,qtPoints) corresponding to ceil(WrappedTime/DeltaTime), where WrappedTime is in range [0,TimeWindow). | |
double | GetRealX (double Time) |
Returns real part of X-polarization of signal at time Time. We use linear interpolation of Time is not on the discrete time grid and interpret Time as being periodic in the range [0,TimeWindow). | |
double | GetImagX (double Time) |
Returns imaginary part of X-polarization of signal at time Time. | |
double | GetRealY (double Time) |
Returns real part of Y-polarization of signal at time Time. | |
double | GetImagY (double Time) |
Returns imaginary part of Y-polarization of signal at time Time. | |
double | GetEnergyInBitSlot (int BitSlotNumber) |
double | GetTotalEnergy (void) |
double | GetEnergyInTimeRange (double LeftTime, double RightTime) |
double | ComputeMeanTimePulse (void) |
double | ComputeMeanTimePulse (double StartTime, double EndTime) |
double | ComputeMeanFreqSignal (void) |
double | ComputeMeanPhasePulse (void) |
double | ComputeMeanPhasePulse (double StartTime, double EndTime) |
See McKinstrie and Xie, JSTQE Vol 8, no. 3, p616, 2002. | |
double | ComputeRMSPulseWidth (void) |
Assumes single pulse. | |
double | ComputeSigmaSqTimeWindow (double StartTime, double EndTime) |
Needs to be updated. | |
double | ComputeAverageSigmaMarks (void) |
Calls OptSignal::ComputeSigmaSqTimeWindow(). | |
double | ComputeRMSSpectralWidth (void) |
Returns Root Mean Square signal bandwidth in Hz. | |
double | ComputeMaxPower (void) |
double | ComputeMaxPower (int &ArgMaxIndex) |
void | OpenAveragePulseWidthFile (string FileName, int WriteFlag) |
void | CloseAveragePulseWidthFile (int WriteFlag) |
void | WriteAveragePulseWidth (double PropagatedLength, int WriteFlag) |
Calls OptSignal::GetSigmaSqOptSignal(). | |
void | ResetJonesMatrix (void) |
void | GenerateSignalStringGaussianOrSech (void) |
Called by OptSignal::RegenerateSignalString. | |
void | GenerateSignalStringRZGaussianPattern (void) |
Called by OptSignal::RegenerateSignalString. | |
void | GenerateSignalStringRaisedCosines (void) |
Out of date. Use GenerateSignalStringRaisedCosinesWithPhaseShift. | |
void | GenerateSignalStringUsingInputSequence (void) |
Called by OptSignal::RegenerateSignalString. | |
void | GenerateSignalStringQPSK_Gaussian (void) |
Called by OptSignal::RegenerateSignalString. | |
void | GenerateSignalStringQPSK_CW (void) |
void | GenerateSignalStringNRZ_RCOS_MachZehnderModulator (void) |
void | GenerateSignalStringBPSKPhaseModulator (void) |
void | GenerateSignalStringBPSKMachZehnderModulator (void) |
void | GenerateSignalStringCSRZMachZehnderModulator (void) |
void | GenerateSignalStringRZ33MachZehnderModulator (void) |
void | GenerateSignalStringRZ50MachZehnderModulator (void) |
void | GenerateSignalStringQPSK_SEQ_PM_NRZ (void) |
void | GenerateSignalStringQPSK_DPMZ_PM_NRZ (void) |
void | GenerateSignalStringQPSK_SEQ_PM_AM_RZ33 (void) |
void | GenerateSignalStringQPSK_SEQ_PM_AM_RZ50 (void) |
void | GenerateSignalStringQPSK_DPMZ_PM_AM_RZ33 (void) |
void | GenerateSignalStringQPSK_DPMZ_PM_AM_RZ50 (void) |
void | EOM_MachZehnderModulatorOptData (double V_pi1, double V_pi2, double Phi_10, double Phi_20, double SinusoidalRate, double SinusoidalThetaShift) |
void | EOM_MachZehnderModulatorOptNRZOLD (double V_pi1, double V_pi2, double Phi_10, double Phi_20, double SinusoidalRate, double SinusoidalThetaShift) |
void | GenerateSignalStringCSRZMachZehnderModulatorOLD (void) |
void | GenerateSignalStringRZ33MachZehnderModulatorOLD (void) |
void | GenerateSignalStringRZ50MachZehnderModulatorOLD (void) |
void | EOM_MachZehnderModulatorElecNRZ (double V_pi1, double V_pi2, double Phi_10, double Phi_20, double SinusoidalRate, double SinusoidalTimeShift, double SinusoidalVertShift) |
void | SetEOM_V_pi_RelError (double EOM_V_pi_RelError2) |
void | SetEOM_Phi_10_RelError (double EOM_Phi_10_RelError2) |
void | SetEOM_Phi_20_RelError (double EOM_Phi_20_RelError2) |
void | SetEOM_SinusoidalVertShift_RelError (double EOM_SinusoidalVertShift_RelError2) |
void | EOM_WriteFileElecData (string OutFileName) |
void | EOM_SinusoidallyModulateElecData (double SinusoidalRate, double SinusoidalTimeShift, double SinusoidalVertShift) |
void | EOM_PhaseModulator (void) |
string | EOM_GetTypeElecData (void) |
string | EOM_GetTypeElecFilter (void) |
void | EOM_GenerateRaisedCosineBinaryElecData (int ChannelArrayIndex, bool ZeroOneNotMinusPlusFlag) |
double | RaisedCosineForNRZ_RCOS_MZ (double Time) |
void | EOM_GeneratePerfectRectBinaryElecData (int ChannelArrayIndex) |
void | EOM_GenerateSmoothedRectBinaryElecDataArctanh (int ChannelArrayIndex) |
void | EOM_GenerateSmoothedRectBinaryElecDataSuperGauss (int ChannelArrayIndex) |
double | EOM_SuperGauss (double Time) |
void | EOM_FilterElecData (void) |
void | EOM_ElectricalFilterBessel4 (cplx *my_power_time, double fwhm_norm) |
void | EOM_ElectricalFilterGaussian (cplx *my_power_time, double fwhm_norm) |
cplx | EOM_Bessel4 (double omega, double FWHM) |
double | EOM_Gaussian (double omega, double FWHM) |
void | ComputeRelevantNumModesOFLE (void) |
int | GetRelevantNumModesOFLE (void) |
void | SetBandwidthForRelevantNumModesOFLE (double BandwidthGHz) |
void | SetBitLengthJZ (double Value) |
USE WITH EXTREME CAUTION!! (Written for specific application by JZ). | |
void | SetBitRateChannJZ (double Value) |
USE WITH EXTREME CAUTION!! (Written for specific application by JZ). | |
void | SetBitRateChannBM (double Value) |
Do not use. Written for application by Brian Marks. | |
void | AddSignalBM (OptSignal *oOptSignal2) |
Do not use. Written for application by Brian Marks. | |
void | AddCWSignal (double PowerCWChann, double FreqCWChann) |
Do not use. Written for application by Brian Marks. | |
Public Attributes | |
cfftw * | fft |
fftMatrices | sfftM |
BitString * | oBitString |
A BitString object. | |
RanNumGen * | RNG |
ReduOptSignal * | oReduOptSignal |
cplx * | JonesMatrixChannel |
OptFiberLocalErrorWorkSpace | OFLEWork |
Common work space which is used by all OptFiberLocalError objects. | |
double * | QuadratureWorkSpace |
double * | OutputPDVectorOFLE |
double * | InputPDVectorOFLE |
double ** | StokesTransferMatrixTransposeOFLE |
Private Member Functions | |
void | AllocateOptFiberLocalErrorWorkSpace (void) |
void | DeallocateOptFiberLocalErrorWorkSpace (void) |
Private Attributes | |
typeSimulation | TypeSimulation |
int | NumChannels |
double | CenterFreq |
double | CenterWavelength |
double | ChannSpacing |
double * | Frequency |
double | BitLength |
The time length in seconds of a bit. | |
double | BitRateChann |
typePulse | TypePulse |
int | StringLength |
Number of bits. | |
double | FWHM_Pulse |
double | ChirpParameter |
double | LinearExtinctionRatio |
double | RiseTime |
double | OptPowerChann |
string | InputTimeDataFileName |
string | InputSequenceFileName |
double * | InStokes |
cplx * | InJones |
bool | RandomPolarizationsFlag |
int | qtPoints |
double | TimeWindow |
double | DeltaTime |
double | FreqWindow |
double | DeltaFreq |
double | AccumulatedFirstOrderDispersion |
double | AccumulatedSecondOrderDispersion |
ofstream | AccumulatedFirstOrderDispersionFile |
int | WriteAccumulatedFirstOrderDispersionFlag |
ofstream | AveragePulseWidthFile |
ofstream | DegreeOfPolarizationFile |
double | FreqForPDVectorOFLE |
bool | ComputeInputPDVectorFlagOFLE |
int | RelevantNumModesOFLE |
bool | ComputeRelevantNumModesOFLEFlag |
int | DebugLevel |
DebugLevel. | |
int | MemAllocated |
bool | UsingOptFiberLocalError |
double | AccumulatedTotalNoiseSpectralDensityGaussianStatistics |
double | NoiseBandwidthGaussianStatistics |
typeEOMElecData | TypeEOMElecData |
typeEOMElecFilter | TypeEOMElecFilter |
fftPowerMatrices | EOM_sfftPM |
fftPowerMatrices | EOM_sfftPM1 |
fftPowerMatrices | EOM_sfftPM2 |
double | EOM_RiseTime |
double | EOM_SlopeFactor |
double | EOM_ShiftAmt |
int | EOM_SuperGaussExponent |
double | EOM_ElecFilter_FreqFWHM |
double | EOM_V_pi_RelError |
double | EOM_Phi_10_RelError |
double | EOM_Phi_20_RelError |
double | EOM_SinusoidalVertShift_RelError |
Friends | |
void | AddSignals (OptSignal *Signal1, OptSignal *Signal2, OptSignal *Signal3) |
Addition operator: Signal3 = Signal1 + Signal2. |
The OptSignal class contains data and methods for the optical signal.
The classes in the library either operate on optical data in the class OptSignal or on electrical data in the class Photodetector. As such the OptSignal class is the most important in the library. The class enables several different modulation formats most of which are coded for multiple frequency channels.
Both SCALAR and VECTOR simulations can performed with the library. The enumeration type enum typeSimulation defined in ocsReadWriteTools.hh specifies the type of simulation. (OptSignal::TypeSimulation). Half the amount of data is allocated for SCALAR simulations as for VECTOR ones. Therefore the code runs about twice as fast for SCALAR simulations.
The main data object in the class is the structure OptSignal::sfftM of type fftMatrices which stores the full time and frequency domain signals. The class contains a pointer to a cfftw object OptSignal::fft. The cfftw class is an interface to the Fastest Fourier Transform in the West softpackage fftw which manages and performs Fourier transforms in the code. See http:www.fftw.org
Data can either be SCALAR or VECTOR. For VECTOR simulations the initial Stokes parameters can be specified for each channel.
The OptSignal class also includes data to model additive white Gaussian noise. The full signal data and the additive white Gaussian noise can be used by the GaussianReceiver class to compute the Gaussian apprximations to the electrical pdfs in each bit. Accurate electrical pdfs can be computed using the ChiSquareReceiver class. The ChiSquareReceiver class can be used in conjunction with the NoiseCovariance class to compute electrical pdfs under the assumption of no noise-noise interactions during fiber transmission. (Signal-noise interactions in the fiber are modeled by the NoiseCovariance class.) The electrical pdfs can also be approximated using basic or advanced Monte carlo simulations, for which the noise does not need to be AWGN.
To model unpolarized additive white Gaussian noise the noise is accumulated in the double OptSignal::AccumulatedTotalNoiseSpectralDensityGaussianStatistics. With this model the noise is assumed to be identical in each of the channels. To model partially polarized noise and/or white Gaussian noise that varies from channel to channel we use a ReduOptSignal object. The data member OptSignal::oReduOptSignal is a pointer to a ReduOptSignal object that stores the power and polarization states of the signal and noise in each channel. The ReduOptSignal is incorporated into the OptSignal to allow the GaussianReceiver class to receive the data it needs to model partially polarized additive white Gaussian noise.
The OptSignal class also contains data members OptSignal::AccumulatedFirstOrderDispersion and OptSignal::AccumulatedSecondOrderDispersion that store the first and second order dispersion accumulated when the signal is propagated through (possibly several) different OptFiberLocalError objects. One application of these methods is to perform artificial dispersion compensation in the NoiseCovariance class.
The OptSignal class includes pointers to a BitString object OptSignal::oBitString and a RanNumGen object OptSignal::RNG. The BitString object contains and initializes the data sequence in each channel. The RanNumGen object is included to allow random bit strings and random polarization states in each channel.
The main methods are the constructors, assignment operator, and the method OptSignal::RegenerateSignalString() which is used to regenerate the signal in Monte Carlo simulations. (This method is also called by the constructors.)
In addition there are methods to get and set class parameters, process accumulated dispersion and noise spectral density, write various forms of the optical data to output files, and compute and write to files derived data such as the energy within a time window and the central time of a pulse specified within a time window.
OptSignal::OptSignal | ( | string | InFileName, | |
RanNumGen * | RNG2 | |||
) |
The main constructor for the class.
Reads in parameters from the file named InFileName. The RanNumGen is used for randomly generated bit sequences and for randomly chosen initial polarization states in each channel. Initializes all data in the class.
The constructor calls OptSignal::ConstructOptSignal() which reads in parameters and does preprocessing. Then it calls OptSignal::RegenerateSignalString() which initializes the data OptSignal::fftMatrices used to store the signal in time and frequency.
If you add another variable/parameter to the class you must initialize it in OptSignal::ConstructOptSignal() and also make the appropriate addition to the following methods:
References ConstructOptSignal(), DebugLevel, GetAveragePower(), Linear2dBm(), LogFile, NumChannels, OptPowerChann, RegenerateSignalString(), and sq().
Referenced by operator-().
OptSignal::OptSignal | ( | string | InFileName, | |
RanNumGen * | RNG2, | |||
string | DataFileName | |||
) |
A second constructor for the class.
Use this constructor if you want to quickly initialize signal in time and frequency using data in file named DataFileName
Reads in parameters from the file named InFileName. The RanNumGen is used for randomly generated bit sequences and for randomly chosen initial polarization states in each channel. Initializes all data in the class.
The method reads in the signal data arrays from the file with name DataFileName.
This constructor calls OptSignal::ConstructOptSignal() which reads in parameters and does preprocessing. Then it calls OptSignal::ReadFileComplexFieldsTimeAndFreq() which initializes the data OptSignal::fftMatrices used to store the signal in time and frequency.
If you add another variable/parameter to the class you must initialize it in OptSignal::ConstructOptSignal() and also make the appropriate addition to the following methods:
Use this constructor if you want to quickly initialize signal in time and frequency using data in file named DataFileName
References ConstructOptSignal(), DebugLevel, GetAveragePower(), Linear2dBm(), LogFile, NumChannels, OptPowerChann, ReadFileComplexFieldsTimeAndFreq(), and sq().
OptSignal::OptSignal | ( | OptSignal & | OrigOptSignal | ) |
Copy constructor.
References AccumulatedFirstOrderDispersion, AccumulatedSecondOrderDispersion, AccumulatedTotalNoiseSpectralDensityGaussianStatistics, AllocateOptFiberLocalErrorWorkSpace(), BitLength, BitRateChann, BPSK_MACH_ZEHNDER, BPSK_PHASE_MOD, CenterFreq, CenterWavelength, ChannSpacing, ChirpParameter, ComputeInputPDVectorFlagOFLE, ComputeRelevantNumModesOFLEFlag, CSRZ_MACH_ZEHNDER, DebugLevel, DeltaFreq, DeltaTime, EOM_ElecFilter_FreqFWHM, EOM_Phi_10_RelError, EOM_Phi_20_RelError, EOM_sfftPM, EOM_sfftPM1, EOM_sfftPM2, EOM_ShiftAmt, EOM_SinusoidalVertShift_RelError, EOM_SlopeFactor, EOM_SuperGaussExponent, EOM_V_pi_RelError, fft, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, fftPowerMatrices::fPowerSignal, FreqForPDVectorOFLE, Frequency, FreqWindow, FWHM_Pulse, GetInJones(), GetInStokes(), BitString::GetStringLength(), InJones, InputPDVectorOFLE, InStokes, LinearExtinctionRatio, MemAllocated, NewCplx(), NoiseBandwidthGaussianStatistics, NRZ_RCOS_MACH_ZEHNDER, NumChannels, oBitString, OptPowerChann, oReduOptSignal, OutputPDVectorOFLE, QPSK_CW, QPSK_DPMZ_PM_AM_RZ33, QPSK_DPMZ_PM_AM_RZ50, QPSK_DPMZ_PM_NRZ, QPSK_SEQ_PM_AM_RZ33, QPSK_SEQ_PM_AM_RZ50, QPSK_SEQ_PM_NRZ, qtPoints, QuadratureWorkSpace, RandomPolarizationsFlag, RelevantNumModesOFLE, RiseTime, RNG, RZ33_MACH_ZEHNDER, RZ50_MACH_ZEHNDER, SetInJones(), SetInStokes(), sfftM, StokesTransferMatrixTransposeOFLE, StringLength, Time2Freq(), TimeWindow, fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, fftPowerMatrices::tPowerSignal, TypeEOMElecData, TypeEOMElecFilter, TypePulse, TypeSimulation, UsingOptFiberLocalError, and VECTOR.
Constructor for sum of signals.
This signal is initialized with parameters of Signal1 and data given by sum of data of Signal1 and Signal2.
References AccumulatedFirstOrderDispersion, AccumulatedSecondOrderDispersion, AccumulatedTotalNoiseSpectralDensityGaussianStatistics, AllocateOptFiberLocalErrorWorkSpace(), BitLength, BitRateChann, CenterFreq, CenterWavelength, ChannSpacing, ChirpParameter, ComputeInputPDVectorFlagOFLE, ComputeRelevantNumModesOFLEFlag, DebugLevel, DeltaFreq, DeltaTime, fft, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, FreqForPDVectorOFLE, Frequency, FreqWindow, FWHM_Pulse, GetBitRateChann(), GetCenterFreq(), GetFWHM_Pulse(), GetInJones(), GetInStokes(), GetQtPoints(), BitString::GetStringLength(), GetStringLength(), GetTypePulse(), GetTypeSimulation(), InJones, InputPDVectorOFLE, InStokes, LinearExtinctionRatio, LogFile, LogFileSeparator(), MemAllocated, min(), NewCplx(), NoiseBandwidthGaussianStatistics, NumChannels, oBitString, OptPowerChann, oReduOptSignal, OutputPDVectorOFLE, qtPoints, RandomPolarizationsFlag, RelevantNumModesOFLE, ResetAccumulatedFirstOrderDispersionToZero(), ResetAccumulatedSecondOrderDispersionToZero(), RiseTime, RNG, SetInJones(), SetInStokes(), sfftM, StokesTransferMatrixTransposeOFLE, StringLength, TimeWindow, fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypePulse, TypeSimulation, UsingOptFiberLocalError, VECTOR, BitString::WriteBitString(), and WriteTypePulse().
OptSignal::~OptSignal | ( | ) |
Class destructor.
Frees memory allocated in constructor and calls oBitString->~BitString().
References BPSK_MACH_ZEHNDER, BPSK_PHASE_MOD, CSRZ_MACH_ZEHNDER, DeallocateOptFiberLocalErrorWorkSpace(), EOM_sfftPM, EOM_sfftPM1, EOM_sfftPM2, fft, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, fftPowerMatrices::fPowerSignal, FreeCplx(), Frequency, InJones, InStokes, MemAllocated, NRZ_RCOS_MACH_ZEHNDER, oBitString, oReduOptSignal, QPSK_CW, QPSK_DPMZ_PM_AM_RZ33, QPSK_DPMZ_PM_AM_RZ50, QPSK_DPMZ_PM_NRZ, QPSK_SEQ_PM_AM_RZ33, QPSK_SEQ_PM_AM_RZ50, QPSK_SEQ_PM_NRZ, QuadratureWorkSpace, RZ33_MACH_ZEHNDER, RZ50_MACH_ZEHNDER, sfftM, fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, fftPowerMatrices::tPowerSignal, TypePulse, BitString::~BitString(), and ReduOptSignal::~ReduOptSignal().
Referenced by ChiSquareReceiver::~ChiSquareReceiver(), GaussianReceiver::~GaussianReceiver(), ReceiverSemiAnalytical::~ReceiverSemiAnalytical(), and ReceiverSubsystem::~ReceiverSubsystem().
void OptSignal::AddCWSignal | ( | double | PowerCWChann, | |
double | FreqCWChann | |||
) |
Do not use. Written for application by Brian Marks.
References CenterFreq, DeltaTime, jc, pi, qtPoints, sfftM, sqrt(), Time2Freq(), fftMatrices::tOptSignalX, and fftMatrices::tOptSignalY.
void OptSignal::AddFreqDomain | ( | OptSignal * | oOptSignal2 | ) |
Adds frequency domain data in oOptSignal2 to this OptSignal and then calls OptSignal:Freq2Time()
References fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, Freq2Time(), GetQtPoints(), qtPoints, and sfftM.
void OptSignal::AddReducedNoiseToNoiseFreeSignal | ( | ReduOptSignal * | ReduOptSignal1 | ) |
Adds a ReduOptSignal containing noise and no signal to the current OptSignal which is assumed to be noise-free. By John Zweck, Jan 2006
References ReduOptSignal::GetNumChannels(), ReduOptSignal::GetTotalNoiseSpectralDensity(), NumChannels, oReduOptSignal, SetAccumulatedTotalNoiseSpectralDensityGaussianStatistics(), and ReduOptSignal::StokesNoise.
void OptSignal::AddSignalBM | ( | OptSignal * | oOptSignal2 | ) |
Do not use. Written for application by Brian Marks.
References BitString::AddBitStringBM(), ChannSpacing, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, Freq2Time(), Frequency, GetBitRateChann(), GetCenterFreq(), GetInJones(), GetInStokes(), GetQtPoints(), BitString::GetStringLength(), GetStringLength(), GetTypeSimulation(), min(), NumChannels, oBitString, qtPoints, SetInJones(), SetInStokes(), sfftM, and StringLength.
void OptSignal::AddToAccumulatedTotalNoiseSpectralDensityGaussianStatistics | ( | double | Increment | ) | [inline] |
Referenced by OptAmplifier::AmplifyGaussianStatisticsNoise().
void OptSignal::AllocateOptFiberLocalErrorWorkSpace | ( | void | ) | [private] |
References fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, OptFiberLocalErrorWorkSpace::FreqDomainOperatorX, OptFiberLocalErrorWorkSpace::FreqDomainOperatorY, OptFiberLocalErrorWorkSpace::LaserWorkX, OptFiberLocalErrorWorkSpace::LaserWorkY, NewCplx(), OFLEWork, qtPoints, SCALAR, OptFiberLocalErrorWorkSpace::sfftM_Coarse, OptFiberLocalErrorWorkSpace::sfftM_Start, OptFiberLocalErrorWorkSpace::SqFreqDomainOperatorX, OptFiberLocalErrorWorkSpace::SqFreqDomainOperatorY, TypeSimulation, UsingOptFiberLocalError, and VECTOR.
Referenced by ConstructOptSignal(), OptSignal(), and SetBitRateChannBM().
void OptSignal::ChangeAbsoluteCenterFreq | ( | double | CenterFreq2 | ) |
References CenterFreq, DeltaFreq, fftshift(), fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, FreeCplx(), Freq2Time(), ifftshift(), NewCplx(), Periodicity(), qtPoints, and sfftM.
void OptSignal::ChangeAveragePowerChannCurrentSignal | ( | double | AveragePowerChann2 | ) |
Used in GaussianReceiver for computing the Q-factor.
References GetAveragePower(), GetNumChannels(), qtPoints, sfftM, sqrt(), Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by RegenerateSignalWithGivenAveragePowerChann().
void OptSignal::ClearSignal | ( | void | ) | [inline] |
Sets signal data to zero.
void OptSignal::CloseAccumulatedFirstOrderDispersionFile | ( | void | ) |
References AccumulatedFirstOrderDispersionFile, and WriteAccumulatedFirstOrderDispersionFlag.
Referenced by OptDataWriter::TurnOffWriteFlags().
void OptSignal::CloseAveragePulseWidthFile | ( | int | WriteFlag | ) |
References AveragePulseWidthFile.
Referenced by OptDataWriter::TurnOffWriteFlags().
void OptSignal::CloseDegreeOfPolarizationFile | ( | bool | WriteDOPFlag | ) |
References DegreeOfPolarizationFile.
double OptSignal::ComputeAverageChirpOfMarks | ( | double | TimeWithinBitSlot | ) |
Computes the average chirp of the marks (1's) at a given time within the bit slot by making calls to OptSignal::GetChirp().
References BitLength, DeltaTime, BitString::GetBit(), GetChirp(), oBitString, qtPoints, and StringLength.
double OptSignal::ComputeAverageSigmaMarks | ( | void | ) |
Calls OptSignal::ComputeSigmaSqTimeWindow().
References BitLength, ComputeSigmaSqTimeWindow(), BitString::GetBit(), oBitString, sqrt(), and StringLength.
double OptSignal::ComputeFWHMPulsePower | ( | void | ) |
Computes FWHM of a pulse power assuming signal has a single pulse which is centered roughly in middle of time window. Algorithm is very crude.
References ComputeMaxPower(), DeltaTime, qtPoints, sfftM, sq(), fftMatrices::tOptSignalX, and fftMatrices::tOptSignalY.
double OptSignal::ComputeMaxPower | ( | void | ) |
References qtPoints, SCALAR, sfftM, sq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by ComputeFWHMPulsePower(), PulseEvolutionAnalyzer::ComputeMaxPower(), and WriteLocalFrequencyAndChirp().
double OptSignal::ComputeMaxPower | ( | int & | ArgMaxIndex | ) |
References qtPoints, SCALAR, sfftM, sq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
double OptSignal::ComputeMeanFreqSignal | ( | void | ) |
References fft, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, cfftw::freq(), FreqWindow, qtPoints, Quadrature(), QuadratureWorkSpace, sfftM, sq(), TypeSimulation, and VECTOR.
Referenced by PulseEvolutionAnalyzer::ComputeFreqShift().
double OptSignal::ComputeMeanPhasePulse | ( | void | ) |
References TimeWindow.
double OptSignal::ComputeMeanPhasePulse | ( | double | StartTime, | |
double | EndTime | |||
) |
See McKinstrie and Xie, JSTQE Vol 8, no. 3, p616, 2002.
References DeltaTime, qtPoints, Quadrature(), QuadratureWorkSpace, SCALAR, sfftM, sq(), TimeWindow, fftMatrices::tOptSignalX, TypeSimulation, and VECTOR.
double OptSignal::ComputeMeanTimePulse | ( | void | ) |
Computes mean time pulse width, using same formula used to compute mean of a pdf. Integration is over specified time window
References TimeWindow.
Referenced by ComputeRMSPulseWidth(), and PulseEvolutionAnalyzer::ComputeTimeShift().
double OptSignal::ComputeMeanTimePulse | ( | double | StartTime, | |
double | EndTime | |||
) |
void OptSignal::ComputeRelevantNumModesOFLE | ( | void | ) |
Computes the RelevantNumModes used in computation of local error in OptFiberLocalError
References BitRateChann, ComputeRelevantNumModesOFLEFlag, DebugLevel, DeltaFreq, LogFile, min(), NumChannels, qtPoints, and RelevantNumModesOFLE.
Referenced by ConstructOptSignal(), and SetBitRateChannBM().
double OptSignal::ComputeRMSPulseWidth | ( | void | ) |
Assumes single pulse.
References ComputeMeanTimePulse(), DeltaTime, GetTotalEnergy(), qtPoints, Quadrature(), QuadratureWorkSpace, SCALAR, sfftM, sq(), sqrt(), TimeWindow, fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
double OptSignal::ComputeRMSSpectralWidth | ( | void | ) |
Returns Root Mean Square signal bandwidth in Hz.
References fft, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, cfftw::freq(), qtPoints, sfftM, sq(), sqrt(), TypeSimulation, and VECTOR.
Referenced by OptFiberLocalError::ComputeWalkOffStepSize().
double OptSignal::ComputeSigmaSqTimeWindow | ( | double | StartTime, | |
double | EndTime | |||
) |
Needs to be updated.
References DebugLevel, DeltaTime, qtPoints, sfftM, sq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by ComputeAverageSigmaMarks().
void OptSignal::ConstantPhaseShift | ( | double | PhaseShiftAmount | ) |
Shifts the phase of the signal by the constant amount PhaseShiftAmount in degrees
References fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, jc, pi, qtPoints, sfftM, fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
void OptSignal::ConstructOptSignal | ( | string | InFileName, | |
RanNumGen * | RNG2 | |||
) |
Called by the constructors
Reads in parameters from the file named InFileName. The RanNumGen is used for randomly generated bit sequences and for randomly chosen initial polarization states in each channel. Initializes all data in the class.
If you add another variable/parameter to the class you must initialize it in this method and also make the appropriate addition to the following methods:
References AccumulatedFirstOrderDispersion, AccumulatedSecondOrderDispersion, AccumulatedTotalNoiseSpectralDensityGaussianStatistics, AllocateOptFiberLocalErrorWorkSpace(), BitLength, BitRateChann, BPSK_MACH_ZEHNDER, BPSK_PHASE_MOD, CenterFreq, CenterWavelength, ChannSpacing, ChirpParameter, ComputeInputPDVectorFlagOFLE, ComputeRelevantNumModesOFLE(), ComputeRelevantNumModesOFLEFlag, CSRZ_MACH_ZEHNDER, dB2Linear(), DebugLevel, DeltaFreq, DeltaTime, EOM_BINARY_DATA_ARCTANH_SMOOTHING, EOM_BINARY_DATA_RCOS, EOM_BINARY_DATA_SUPERGAUSS_SMOOTHING, EOM_ElecFilter_FreqFWHM, EOM_GetTypeElecData(), EOM_GetTypeElecFilter(), EOM_NO_ELEC_FILTER, EOM_Phi_10_RelError, EOM_Phi_20_RelError, EOM_RiseTime, EOM_sfftPM, EOM_sfftPM1, EOM_sfftPM2, EOM_ShiftAmt, EOM_SinusoidalVertShift_RelError, EOM_SlopeFactor, EOM_SuperGaussExponent, EOM_V_pi_RelError, fft, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, fftPowerMatrices::fPowerSignal, FreqForPDVectorOFLE, Frequency, Frequency2Wavelength(), FreqWindow, FWHM_Pulse, GetChannelPhysicalIndex(), GetInStokes(), BitString::GetNumChannels(), BitString::GetStringLength(), InitializeInStokes(), InJones, INPUT_SEQUENCE, INPUT_SIGNAL_FROM_FILE, InputPDVectorOFLE, InputSequenceFileName, InputTimeDataFileName, InStokes, JonesMatrixChannel, LinearExtinctionRatio, LogFile, LogFileSeparator(), LogFileStars(), LOWER_AND_UPPER, LOWER_ONLY, MANDATORY, MemAllocated, NewCplx(), NO_BOUNDS, NoiseBandwidthGaussianStatistics, NRZ_RCOS_MACH_ZEHNDER, NumChannels, oBitString, OPTIONAL_NO_WARNING, OPTIONAL_WARNING, OptPowerChann, oReduOptSignal, OutputPDVectorOFLE, pi, QPSK_CW, QPSK_DPMZ_PM_AM_RZ33, QPSK_DPMZ_PM_AM_RZ50, QPSK_DPMZ_PM_NRZ, QPSK_SEQ_PM_AM_RZ33, QPSK_SEQ_PM_AM_RZ50, QPSK_SEQ_PM_NRZ, qtPoints, QuadratureWorkSpace, RandomPolarizationsFlag, ReadDouble(), ReadInt(), ReadString(), ResetAccumulatedFirstOrderDispersionToZero(), ResetAccumulatedSecondOrderDispersionToZero(), RiseTime, RNG, RZ33_MACH_ZEHNDER, RZ50_MACH_ZEHNDER, SetInJones(), sfftM, sqrt(), Stokes2Jones(), StokesTransferMatrixTransposeOFLE, StringLength, TimeWindow, fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, fftPowerMatrices::tPowerSignal, TypeEOMElecData, TypeEOMElecFilter, TypePulse, TypeSimulation, UPPER_ONLY, UsingOptFiberLocalError, VECTOR, Wavelength2Frequency(), WriteTypePulse(), and WriteTypeSimulation().
Referenced by OptSignal().
void OptSignal::DampBounds | ( | double | DampTime | ) |
References DeltaTime, log(), qtPoints, sfftM, sqrt(), Time2Freq(), fftMatrices::tOptSignalX, and fftMatrices::tOptSignalY.
Referenced by OptFiber::PropagateFullNonlinearFiberCoupledNLS().
void OptSignal::DeallocateOptFiberLocalErrorWorkSpace | ( | void | ) | [private] |
References fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, FreeCplx(), OptFiberLocalErrorWorkSpace::FreqDomainOperatorX, OptFiberLocalErrorWorkSpace::FreqDomainOperatorY, OptFiberLocalErrorWorkSpace::LaserWorkX, OptFiberLocalErrorWorkSpace::LaserWorkY, OFLEWork, SCALAR, OptFiberLocalErrorWorkSpace::sfftM_Coarse, OptFiberLocalErrorWorkSpace::sfftM_Start, OptFiberLocalErrorWorkSpace::SqFreqDomainOperatorX, OptFiberLocalErrorWorkSpace::SqFreqDomainOperatorY, TypeSimulation, UsingOptFiberLocalError, and VECTOR.
Referenced by SetBitRateChannBM(), and ~OptSignal().
void OptSignal::EliminateSignal | ( | void | ) | [inline] |
Sets signal data to zero.
void OptSignal::EliminateX_Polarization | ( | void | ) |
Sets signal data in X-polarization to zero.
References fftMatrices::fOptSignalX, qtPoints, sfftM, and fftMatrices::tOptSignalX.
void OptSignal::EliminateY_Polarization | ( | void | ) |
Sets signal data in Y-polarization to zero.
References fftMatrices::fOptSignalY, qtPoints, sfftM, and fftMatrices::tOptSignalY.
cplx OptSignal::EOM_Bessel4 | ( | double | omega, | |
double | FWHM | |||
) |
Referenced by EOM_ElectricalFilterBessel4().
void OptSignal::EOM_ElectricalFilterBessel4 | ( | cplx * | my_power_time, | |
double | fwhm_norm | |||
) |
References EOM_Bessel4(), cfftw::FFT(), fft, cfftw::freq(), cfftw::give_N(), cfftw::IFFT(), and cfftw::work.
Referenced by EOM_FilterElecData().
void OptSignal::EOM_ElectricalFilterGaussian | ( | cplx * | my_power_time, | |
double | fwhm_norm | |||
) |
References EOM_Gaussian(), cfftw::FFT(), fft, cfftw::freq(), cfftw::give_N(), cfftw::IFFT(), and cfftw::work.
Referenced by EOM_FilterElecData().
void OptSignal::EOM_FilterElecData | ( | void | ) |
References EOM_BESSEL, EOM_ElecFilter_FreqFWHM, EOM_ElectricalFilterBessel4(), EOM_ElectricalFilterGaussian(), EOM_GAUSSIAN, EOM_NO_ELEC_FILTER, EOM_sfftPM, cfftw::FFT(), fft, fftPowerMatrices::fPowerSignal, fftPowerMatrices::tPowerSignal, and TypeEOMElecFilter.
Referenced by EOM_MachZehnderModulatorElecNRZ(), EOM_MachZehnderModulatorOptNRZOLD(), EOM_PhaseModulator(), EOM_WriteFileElecData(), GenerateSignalStringNRZ_RCOS_MachZehnderModulator(), GenerateSignalStringQPSK_CW(), GenerateSignalStringQPSK_DPMZ_PM_NRZ(), and GenerateSignalStringQPSK_SEQ_PM_NRZ().
double OptSignal::EOM_Gaussian | ( | double | omega, | |
double | FWHM | |||
) |
References sq().
Referenced by EOM_ElectricalFilterGaussian().
void OptSignal::EOM_GeneratePerfectRectBinaryElecData | ( | int | ChannelArrayIndex | ) |
References EOM_sfftPM, cfftw::FFT(), fft, fftPowerMatrices::fPowerSignal, BitString::GetBit(), oBitString, qtPoints, StringLength, and fftPowerMatrices::tPowerSignal.
Referenced by EOM_MachZehnderModulatorElecNRZ(), EOM_MachZehnderModulatorOptNRZOLD(), EOM_PhaseModulator(), EOM_WriteFileElecData(), GenerateSignalStringQPSK_DPMZ_PM_NRZ(), and GenerateSignalStringQPSK_SEQ_PM_NRZ().
void OptSignal::EOM_GenerateRaisedCosineBinaryElecData | ( | int | ChannelArrayIndex, | |
bool | ZeroOneNotMinusPlusFlag | |||
) |
References BitLength, DeltaTime, EOM_sfftPM, cfftw::FFT(), fft, fftPowerMatrices::fPowerSignal, BitString::GetBit(), oBitString, qtPoints, RaisedCosineForNRZ_RCOS_MZ(), StringLength, and fftPowerMatrices::tPowerSignal.
Referenced by EOM_MachZehnderModulatorElecNRZ(), EOM_MachZehnderModulatorOptNRZOLD(), EOM_PhaseModulator(), EOM_WriteFileElecData(), GenerateSignalStringNRZ_RCOS_MachZehnderModulator(), GenerateSignalStringQPSK_DPMZ_PM_NRZ(), and GenerateSignalStringQPSK_SEQ_PM_NRZ().
void OptSignal::EOM_GenerateSmoothedRectBinaryElecDataArctanh | ( | int | ChannelArrayIndex | ) |
References BitLength, DeltaTime, EOM_sfftPM, EOM_ShiftAmt, EOM_SlopeFactor, cfftw::FFT(), fft, fftPowerMatrices::fPowerSignal, BitString::GetBit(), oBitString, qtPoints, StringLength, and fftPowerMatrices::tPowerSignal.
Referenced by EOM_MachZehnderModulatorElecNRZ(), EOM_MachZehnderModulatorOptNRZOLD(), EOM_PhaseModulator(), EOM_WriteFileElecData(), GenerateSignalStringQPSK_DPMZ_PM_NRZ(), and GenerateSignalStringQPSK_SEQ_PM_NRZ().
void OptSignal::EOM_GenerateSmoothedRectBinaryElecDataSuperGauss | ( | int | ChannelArrayIndex | ) |
References BitLength, DeltaTime, EOM_sfftPM, EOM_SuperGauss(), cfftw::FFT(), fft, fftPowerMatrices::fPowerSignal, BitString::GetBit(), oBitString, qtPoints, StringLength, and fftPowerMatrices::tPowerSignal.
Referenced by EOM_MachZehnderModulatorElecNRZ(), EOM_MachZehnderModulatorOptNRZOLD(), EOM_PhaseModulator(), EOM_WriteFileElecData(), GenerateSignalStringQPSK_DPMZ_PM_NRZ(), and GenerateSignalStringQPSK_SEQ_PM_NRZ().
string OptSignal::EOM_GetTypeElecData | ( | void | ) |
References EOM_BINARY_DATA_ARCTANH_SMOOTHING, EOM_BINARY_DATA_PERFECT_RECT, EOM_BINARY_DATA_RCOS, EOM_BINARY_DATA_SUPERGAUSS_SMOOTHING, and TypeEOMElecData.
Referenced by ConstructOptSignal().
string OptSignal::EOM_GetTypeElecFilter | ( | void | ) |
References EOM_BESSEL, EOM_GAUSSIAN, EOM_NO_ELEC_FILTER, and TypeEOMElecFilter.
Referenced by ConstructOptSignal().
void OptSignal::EOM_MachZehnderModulatorElecNRZ | ( | double | V_pi1, | |
double | V_pi2, | |||
double | Phi_10, | |||
double | Phi_20, | |||
double | SinusoidalRate, | |||
double | SinusoidalTimeShift, | |||
double | SinusoidalVertShift | |||
) |
References CenterFreq, DeltaTime, EOM_BINARY_DATA_ARCTANH_SMOOTHING, EOM_BINARY_DATA_PERFECT_RECT, EOM_BINARY_DATA_RCOS, EOM_BINARY_DATA_SUPERGAUSS_SMOOTHING, EOM_FilterElecData(), EOM_GeneratePerfectRectBinaryElecData(), EOM_GenerateRaisedCosineBinaryElecData(), EOM_GenerateSmoothedRectBinaryElecDataArctanh(), EOM_GenerateSmoothedRectBinaryElecDataSuperGauss(), EOM_Phi_10_RelError, EOM_Phi_20_RelError, EOM_sfftPM, EOM_SinusoidallyModulateElecData(), EOM_SinusoidalVertShift_RelError, EOM_V_pi_RelError, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, GetFrequency(), GetInJones(), jc, NumChannels, OptPowerChann, pi, qtPoints, sfftM, sqrt(), Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, fftPowerMatrices::tPowerSignal, TypeEOMElecData, TypeSimulation, and VECTOR.
Referenced by GenerateSignalStringBPSKMachZehnderModulator(), GenerateSignalStringCSRZMachZehnderModulatorOLD(), GenerateSignalStringRZ33MachZehnderModulatorOLD(), and GenerateSignalStringRZ50MachZehnderModulatorOLD().
void OptSignal::EOM_MachZehnderModulatorOptData | ( | double | V_pi1, | |
double | V_pi2, | |||
double | Phi_10, | |||
double | Phi_20, | |||
double | SinusoidalRate, | |||
double | SinusoidalThetaShift | |||
) |
References DeltaTime, jc, pi, qtPoints, sfftM, Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
void OptSignal::EOM_MachZehnderModulatorOptNRZOLD | ( | double | V_pi1, | |
double | V_pi2, | |||
double | Phi_10, | |||
double | Phi_20, | |||
double | SinusoidalRate, | |||
double | SinusoidalThetaShift | |||
) |
References CenterFreq, DeltaTime, EOM_BINARY_DATA_ARCTANH_SMOOTHING, EOM_BINARY_DATA_PERFECT_RECT, EOM_BINARY_DATA_RCOS, EOM_BINARY_DATA_SUPERGAUSS_SMOOTHING, EOM_FilterElecData(), EOM_GeneratePerfectRectBinaryElecData(), EOM_GenerateRaisedCosineBinaryElecData(), EOM_GenerateSmoothedRectBinaryElecDataArctanh(), EOM_GenerateSmoothedRectBinaryElecDataSuperGauss(), EOM_sfftPM, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, GetFrequency(), GetInJones(), jc, NumChannels, OptPowerChann, pi, qtPoints, sfftM, sqrt(), Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, fftPowerMatrices::tPowerSignal, TypeEOMElecData, TypeSimulation, and VECTOR.
void OptSignal::EOM_PhaseModulator | ( | void | ) |
References CenterFreq, DeltaTime, EOM_BINARY_DATA_ARCTANH_SMOOTHING, EOM_BINARY_DATA_PERFECT_RECT, EOM_BINARY_DATA_RCOS, EOM_BINARY_DATA_SUPERGAUSS_SMOOTHING, EOM_FilterElecData(), EOM_GeneratePerfectRectBinaryElecData(), EOM_GenerateRaisedCosineBinaryElecData(), EOM_GenerateSmoothedRectBinaryElecDataArctanh(), EOM_GenerateSmoothedRectBinaryElecDataSuperGauss(), EOM_sfftPM, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, GetFrequency(), GetInJones(), jc, NumChannels, OptPowerChann, pi, qtPoints, sfftM, sqrt(), Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, fftPowerMatrices::tPowerSignal, TypeEOMElecData, TypeSimulation, and VECTOR.
Referenced by GenerateSignalStringBPSKPhaseModulator().
void OptSignal::EOM_SinusoidallyModulateElecData | ( | double | SinusoidalRate, | |
double | SinusoidalTimeShift, | |||
double | SinusoidalVertShift | |||
) |
References DeltaTime, EOM_sfftPM, cfftw::FFT(), fft, fftPowerMatrices::fPowerSignal, pi, qtPoints, and fftPowerMatrices::tPowerSignal.
Referenced by EOM_MachZehnderModulatorElecNRZ().
double OptSignal::EOM_SuperGauss | ( | double | Time | ) |
References BitLength, EOM_SuperGaussExponent, and TimeWindow.
Referenced by EOM_GenerateSmoothedRectBinaryElecDataSuperGauss().
void OptSignal::EOM_WriteFileElecData | ( | string | OutFileName | ) |
References BPSK_MACH_ZEHNDER, BPSK_PHASE_MOD, CSRZ_MACH_ZEHNDER, DeltaTime, EOM_BINARY_DATA_ARCTANH_SMOOTHING, EOM_BINARY_DATA_PERFECT_RECT, EOM_BINARY_DATA_RCOS, EOM_BINARY_DATA_SUPERGAUSS_SMOOTHING, EOM_FilterElecData(), EOM_GeneratePerfectRectBinaryElecData(), EOM_GenerateRaisedCosineBinaryElecData(), EOM_GenerateSmoothedRectBinaryElecDataArctanh(), EOM_GenerateSmoothedRectBinaryElecDataSuperGauss(), EOM_sfftPM, NRZ_RCOS_MACH_ZEHNDER, QPSK_DPMZ_PM_AM_RZ33, QPSK_DPMZ_PM_AM_RZ50, QPSK_DPMZ_PM_NRZ, QPSK_SEQ_PM_AM_RZ33, QPSK_SEQ_PM_AM_RZ50, QPSK_SEQ_PM_NRZ, qtPoints, RZ33_MACH_ZEHNDER, RZ50_MACH_ZEHNDER, fftPowerMatrices::tPowerSignal, TypeEOMElecData, and TypePulse.
void OptSignal::fftshift | ( | void | ) |
Has same effect as function of same name in Matlab.
References fft, cfftw::fftshift(), fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, sfftM, TypeSimulation, and VECTOR.
Referenced by ChangeAbsoluteCenterFreq(), and TimeShiftSignal().
void OptSignal::Freq2Time | ( | void | ) |
Does Fourier transform of OptSignal data from Frequency to Time.
References fft, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, cfftw::IFFT(), sfftM, fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by AddFreqDomain(), AddSignalBM(), OptAmplifier::AdjustGainFixedTotalOutputPowerVector(), OptAmplifier::AmplifyAlternateOptSignalWithoutNoiseWithPrevioslyComputedGain(), ChangeAbsoluteCenterFreq(), ElecSignalStat::GetIntegralForNoiseNoiseVarianceGaussianStatistics(), ElecSignalStat::GetIntegralForSignalNoiseVariance(), ElecSignalStat::GetStdDevASE_ASE(), ElecSignalStat::GetStdDevSignal_ASE_TimeIndex(), PolarizBeamSplitter::PolarizSplitOptSignal(), OptAmplifier::PolDepAmplification(), PolDepAttenuator::PolDepAttenuate(), OptFiber::PropagateFiberCoupledNLS(), OptFiber::PropagateFullNonlinearFiberCoupledNLS(), SubtractFreqDomain(), and TimeShiftSignal().
void OptSignal::Freq2TimeScalar | ( | void | ) |
Does Fourier transform of OptSignal data from Frequency to Time for SCALAR signal
References fft, fftMatrices::fOptSignalX, cfftw::IFFT(), sfftM, fftMatrices::tOptSignalX, TypeSimulation, and VECTOR.
void OptSignal::FreqShiftSignal | ( | double | dFreq | ) |
References FreqWindow, jc, pi, qtPoints, SCALAR, sfftM, Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, and TypeSimulation.
void OptSignal::GainOfAccumulatedTotalNoiseSpectralDensityGaussianStatistics | ( | double | LinearPowerGainFactor | ) | [inline] |
void OptSignal::GenerateImpulseSignal | ( | void | ) |
Used in GaussianReceiver for computing the Q-factor Generates an impulse in both polarization states
References CenterFreq, qtPoints, SetFrequency(), sfftM, Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by ChiSquareReceiver::ComputeTimeIndependentPartOfFilterMatrix(), Photodetector::GenerateImpulseCurrent(), ElecSignalStat::GetIntegralForNoiseNoiseVarianceGaussianStatistics(), ElecSignalStat::GetIntegralForSignalNoiseVariance(), ElecSignalStat::GetMeanASE_ASE(), ElecSignalStat::GetMeanNoiseGaussianStatistics(), OptFilter::GetPowerEquivalentSpectralWidth(), ElecSignalStat::GetStdDevASE_ASE(), ElecSignalStat::GetStdDevSignal_ASE_TimeIndex(), and OptFilter::WriteFilterImpulseResponse().
void OptSignal::GenerateSignalStringBPSKMachZehnderModulator | ( | void | ) |
References EOM_MachZehnderModulatorElecNRZ(), and pi.
Referenced by RegenerateSignalString().
void OptSignal::GenerateSignalStringBPSKPhaseModulator | ( | void | ) |
References EOM_PhaseModulator().
Referenced by RegenerateSignalString().
void OptSignal::GenerateSignalStringCSRZMachZehnderModulator | ( | void | ) |
References BitRateChann, DeltaTime, GenerateSignalStringNRZ_RCOS_MachZehnderModulator(), pi, qtPoints, sfftM, Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by RegenerateSignalString().
void OptSignal::GenerateSignalStringCSRZMachZehnderModulatorOLD | ( | void | ) |
void OptSignal::GenerateSignalStringGaussianOrSech | ( | void | ) |
Called by OptSignal::RegenerateSignalString.
For TypePulse = NRZ, RZ_GAUSS, RZ_SECH, CRZ_GAUSS
References BitLength, CenterFreq, ChirpParameter, CRZ_GAUSS, DeltaTime, cfftw::FFT(), fft, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, FreeCplx(), FWHM_Pulse, BitString::GetBit(), GetFrequency(), GetInJones(), jc, LinearExtinctionRatio, log(), MemAllocated, NewCplx(), NRZ, NumChannels, oBitString, optical_filter(), OptPowerChann, pi, qtPoints, RiseTime, RZ_GAUSS, RZ_SECH, sfftM, sq(), sqrt(), StringLength, Time2Freq(), TimeWindow, fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypePulse, TypeSimulation, and VECTOR.
Referenced by RegenerateSignalString().
void OptSignal::GenerateSignalStringGaussianOrSechWithPhaseShift | ( | double | PhaseShiftAmount | ) |
Written for a particular application.
PhaseShiftAmount is in degrees
References BitLength, CenterFreq, ChirpParameter, CRZ_GAUSS, DeltaTime, cfftw::FFT(), fft, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, FreeCplx(), FWHM_Pulse, BitString::GetBit(), GetFrequency(), GetInJones(), jc, LinearExtinctionRatio, log(), MemAllocated, NewCplx(), NRZ, NumChannels, oBitString, optical_filter(), OptPowerChann, pi, qtPoints, RiseTime, RZ_GAUSS, RZ_SECH, sfftM, sq(), sqrt(), StringLength, Time2Freq(), TimeWindow, fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypePulse, TypeSimulation, and VECTOR.
void OptSignal::GenerateSignalStringNRZ_RCOS_MachZehnderModulator | ( | void | ) |
References CenterFreq, ChirpParameter, DeltaTime, EOM_FilterElecData(), EOM_GenerateRaisedCosineBinaryElecData(), EOM_sfftPM, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, GetFrequency(), GetInJones(), jc, NumChannels, OptPowerChann, pi, qtPoints, sfftM, sqrt(), Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, fftPowerMatrices::tPowerSignal, TypeSimulation, and VECTOR.
Referenced by GenerateSignalStringCSRZMachZehnderModulator(), GenerateSignalStringRZ33MachZehnderModulator(), GenerateSignalStringRZ50MachZehnderModulator(), and RegenerateSignalString().
void OptSignal::GenerateSignalStringQPSK_CW | ( | void | ) |
References CenterFreq, DeltaTime, EOM_FilterElecData(), EOM_sfftPM, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, BitString::GetBit(), GetFrequency(), GetInJones(), jc, NumChannels, oBitString, OptPowerChann, pi, qtPoints, sfftM, sqrt(), StringLength, Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, fftPowerMatrices::tPowerSignal, TypeSimulation, and VECTOR.
Referenced by RegenerateSignalString().
void OptSignal::GenerateSignalStringQPSK_DPMZ_PM_AM_RZ33 | ( | void | ) |
References BitRateChann, DeltaTime, GenerateSignalStringQPSK_DPMZ_PM_NRZ(), pi, qtPoints, sfftM, Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by RegenerateSignalString().
void OptSignal::GenerateSignalStringQPSK_DPMZ_PM_AM_RZ50 | ( | void | ) |
References BitRateChann, DeltaTime, GenerateSignalStringQPSK_DPMZ_PM_NRZ(), pi, qtPoints, sfftM, Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by RegenerateSignalString().
void OptSignal::GenerateSignalStringQPSK_DPMZ_PM_NRZ | ( | void | ) |
References CenterFreq, DeltaTime, EOM_BINARY_DATA_ARCTANH_SMOOTHING, EOM_BINARY_DATA_PERFECT_RECT, EOM_BINARY_DATA_RCOS, EOM_BINARY_DATA_SUPERGAUSS_SMOOTHING, EOM_FilterElecData(), EOM_GeneratePerfectRectBinaryElecData(), EOM_GenerateRaisedCosineBinaryElecData(), EOM_GenerateSmoothedRectBinaryElecDataArctanh(), EOM_GenerateSmoothedRectBinaryElecDataSuperGauss(), EOM_sfftPM, EOM_sfftPM1, EOM_sfftPM2, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, GetFrequency(), GetInJones(), BitString::GetRandomString(), jc, NumChannels, oBitString, OptPowerChann, pi, qtPoints, sfftM, sqrt(), Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, fftPowerMatrices::tPowerSignal, TypeEOMElecData, TypeSimulation, and VECTOR.
Referenced by GenerateSignalStringQPSK_DPMZ_PM_AM_RZ33(), GenerateSignalStringQPSK_DPMZ_PM_AM_RZ50(), and RegenerateSignalString().
void OptSignal::GenerateSignalStringQPSK_Gaussian | ( | void | ) |
Called by OptSignal::RegenerateSignalString.
For TypePulse = QPSK
References BitLength, CenterFreq, DeltaTime, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, FWHM_Pulse, BitString::GetBit(), GetFrequency(), GetInJones(), jc, log(), NumChannels, oBitString, OptPowerChann, pi, qtPoints, sfftM, sq(), sqrt(), StringLength, Time2Freq(), TimeWindow, fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by RegenerateSignalString().
void OptSignal::GenerateSignalStringQPSK_SEQ_PM_AM_RZ33 | ( | void | ) |
References BitRateChann, DeltaTime, GenerateSignalStringQPSK_SEQ_PM_NRZ(), pi, qtPoints, sfftM, Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by RegenerateSignalString().
void OptSignal::GenerateSignalStringQPSK_SEQ_PM_AM_RZ50 | ( | void | ) |
References BitRateChann, DeltaTime, GenerateSignalStringQPSK_SEQ_PM_NRZ(), pi, qtPoints, sfftM, Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by RegenerateSignalString().
void OptSignal::GenerateSignalStringQPSK_SEQ_PM_NRZ | ( | void | ) |
References CenterFreq, DeltaTime, EOM_BINARY_DATA_ARCTANH_SMOOTHING, EOM_BINARY_DATA_PERFECT_RECT, EOM_BINARY_DATA_RCOS, EOM_BINARY_DATA_SUPERGAUSS_SMOOTHING, EOM_FilterElecData(), EOM_GeneratePerfectRectBinaryElecData(), EOM_GenerateRaisedCosineBinaryElecData(), EOM_GenerateSmoothedRectBinaryElecDataArctanh(), EOM_GenerateSmoothedRectBinaryElecDataSuperGauss(), EOM_sfftPM, EOM_sfftPM1, EOM_sfftPM2, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, GetFrequency(), GetInJones(), BitString::GetRandomString(), jc, NumChannels, oBitString, OptPowerChann, pi, qtPoints, sfftM, sqrt(), Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, fftPowerMatrices::tPowerSignal, TypeEOMElecData, TypeSimulation, and VECTOR.
Referenced by GenerateSignalStringQPSK_SEQ_PM_AM_RZ33(), GenerateSignalStringQPSK_SEQ_PM_AM_RZ50(), and RegenerateSignalString().
void OptSignal::GenerateSignalStringRaisedCosines | ( | void | ) |
Out of date. Use GenerateSignalStringRaisedCosinesWithPhaseShift.
References BitLength, BitRateChann, CenterFreq, ChirpParameter, CRZ_RCOS, CRZ_SIN_MZ, CW, DeltaTime, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, BitString::GetBit(), GetFrequency(), GetInJones(), jc, LinearExtinctionRatio, MemAllocated, NumChannels, oBitString, OptPowerChann, pi, qtPoints, sfftM, sq(), sqrt(), StringLength, Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypePulse, TypeSimulation, and VECTOR.
void OptSignal::GenerateSignalStringRaisedCosinesWithPhaseShift | ( | double | PhaseShiftAmount | ) |
Written for a particular application.
PhaseShiftAmount is in degrees
References BitLength, BitRateChann, CenterFreq, ChirpParameter, CRZ_RCOS, CRZ_SIN_MZ, CW, DeltaTime, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, BitString::GetBit(), GetFrequency(), GetInJones(), jc, LinearExtinctionRatio, MemAllocated, NumChannels, oBitString, OptPowerChann, pi, qtPoints, sfftM, sqrt(), StringLength, Time2Freq(), TimeWindow, fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypePulse, TypeSimulation, and VECTOR.
Referenced by RegenerateSignalString().
void OptSignal::GenerateSignalStringRZ33MachZehnderModulator | ( | void | ) |
References BitRateChann, DeltaTime, GenerateSignalStringNRZ_RCOS_MachZehnderModulator(), pi, qtPoints, sfftM, Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by RegenerateSignalString().
void OptSignal::GenerateSignalStringRZ33MachZehnderModulatorOLD | ( | void | ) |
void OptSignal::GenerateSignalStringRZ50MachZehnderModulator | ( | void | ) |
References BitRateChann, DeltaTime, GenerateSignalStringNRZ_RCOS_MachZehnderModulator(), pi, qtPoints, sfftM, Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by RegenerateSignalString().
void OptSignal::GenerateSignalStringRZ50MachZehnderModulatorOLD | ( | void | ) |
void OptSignal::GenerateSignalStringRZGaussianPattern | ( | void | ) |
Called by OptSignal::RegenerateSignalString.
For TypePulse = RZ_GAUSS_PATTERN
References BitLength, CenterFreq, DeltaTime, cfftw::FFT(), fft, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, FreeCplx(), FWHM_Pulse, BitString::GetBit(), GetFrequency(), GetInJones(), jc, LinearExtinctionRatio, log(), MemAllocated, NewCplx(), NumChannels, oBitString, optical_filter(), OptPowerChann, pi, qtPoints, RiseTime, sfftM, sq(), sqrt(), StringLength, Time2Freq(), TimeWindow, fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by RegenerateSignalString().
void OptSignal::GenerateSignalStringUsingInputSequence | ( | void | ) |
Called by OptSignal::RegenerateSignalString.
For TypePulse = INPUT_SEQUENCE
References BitLength, CenterFreq, DebugLevel, DeltaTime, cfftw::FFT(), fft, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, FreeCplx(), FWHM_Pulse, BitString::GetBit(), GetFrequency(), GetInJones(), InputSequenceFileName, jc, LinearExtinctionRatio, log(), LogFile, LogFileSeparator(), LOWER_ONLY, MANDATORY, MemAllocated, NewCplx(), NumChannels, oBitString, optical_filter(), OptPowerChann, pi, qtPoints, ReadInt(), RiseTime, sfftM, spline(), splint(), sq(), sqrt(), StringLength, Time2Freq(), TimeWindow, fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by RegenerateSignalString().
double OptSignal::GetAccumulatedFirstOrderDispersion | ( | void | ) | [inline] |
double OptSignal::GetAccumulatedSecondOrderDispersion | ( | void | ) | [inline] |
double OptSignal::GetAccumulatedTotalNoiseSpectralDensityGaussianStatistics | ( | void | ) | [inline] |
This and related methods are called automatically in the library and are used for the GaussianReceiver class with unpolarized noise
Referenced by NoiseCovariance::ComputeCovarianceMatrixAWGN(), ChiSquareReceiver::GetOSNR_dB(), NoiseCovariance::Propagator(), ReceiverSemiAnalytical::ReceiveSignalSemiAnalytical(), GaussianReceiver::ReceiveSignalUnpolarizedNoise(), OptSpectrumAnalyzer::UpdateOSA(), OptSpectrumAnalyzer::UpdateOSA_OLD(), and NoiseCovariance::WriteFileAWGNNoiseFreeSignalAndNoiseSpectralDensity().
cplx OptSignal::GetAutocorrelationFunctionOptSignalX | ( | double | TimeOffset | ) |
Returns integral of conj(tOptSignalX(t))*tOptSignalX(t+TimeOffset)dt.
By John Zweck. Not the best way to code it up, but should do for now
References DeltaTime, qtPoints, sfftM, TimeWindow, and fftMatrices::tOptSignalX.
Referenced by GaussianReceiver::ReceiveSignalDGD_NoisePartiallyPolarized().
double OptSignal::GetAveragePower | ( | void | ) |
Returns average power of optical signal computed in time domain.
See separate document on Conventions for the Fourier Transform and Nonlinear Schroedinger Equation
References GetTotalEnergy(), and TimeWindow.
Referenced by ChangeAveragePowerChannCurrentSignal(), ElecSignalStat::GetEnhancementFactor(), ElecSignalStat::GetNormalizedEnhancementFactor(), ChiSquareReceiver::GetOSNR_dB(), OptSignal(), NoiseCovariance::Propagator(), and NoiseCovariance::SetCovarianceMatrixAWGN().
double OptSignal::GetAveragePowerFreqDomain | ( | void | ) |
References fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, qtPoints, sfftM, sq(), TypeSimulation, and VECTOR.
Referenced by OptAmplifier::ComputeGainForFixedTotalOutputPower(), and OptAmplifier::SetFixedTotalOutputPowerFromCurrentOptSignal().
double OptSignal::GetAveragePowerFreqDomainInsideChannel | ( | int | ChannelArrayIndex | ) |
Returns the total power in frequency interval centered on channel with index ChannelArrayIndex and full-width 2*OptSignalChannelSpacing.
ChannelArrayIndex ranges from 0 to OptSignalNumChanns - 1
References CenterFreq, ChannSpacing, DeltaFreq, fft, cfftw::fftshift(), fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, Frequency, cfftw::ifftshift(), qtPoints, sfftM, and sq().
double OptSignal::GetAveragePowerFreqDomainInsideChannels | ( | void | ) |
Returns the total power in frequency interval with center OptSignal::CenterFreq and width OptSignal::NumChannels * OptSignal::ChannelSpacing
References CenterFreq, ChannSpacing, DeltaFreq, fft, cfftw::fftshift(), fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, Frequency, cfftw::ifftshift(), NumChannels, qtPoints, sfftM, sq(), TypeSimulation, and VECTOR.
double OptSignal::GetBitLength | ( | void | ) | [inline] |
Referenced by ChiSquareReceiver::ChiSquareReceiver(), ChiSquareReceiver::ComputeEye(), PulseEvolutionAnalyzer::ComputePulseEnergyStats(), PulseEvolutionAnalyzer::ComputeTimeShift(), ElecSignalStat::ElecSignalStat(), GaussianReceiver::GaussianReceiver(), Histogram2D::Histogram2D(), ElecSignalStat::InitElecSignalStat(), MachZehnder::MachZehnder(), ChiSquareReceiver::ReceiveNoiseFreeSignalAndRecoverClock(), ElecFilter::SetPhotodetector(), GaussianReceiver::SetTimeSlices(), Histogram2D::UpdateEyeDiagram(), and PulseEvolutionAnalyzer::WriteEnergyInBitSlot().
double OptSignal::GetBitRateChann | ( | void | ) | [inline] |
Referenced by AddSignalBM(), MachZehnder::MachZehnder(), and OptSignal().
int OptSignal::GetCeilIndex | ( | double | Time | ) |
Returns wrapped integer index in range [0,qtPoints) corresponding to ceil(WrappedTime/DeltaTime), where WrappedTime is in range [0,TimeWindow).
References DeltaTime, qtPoints, and TimeWindow.
Referenced by GetImagX(), GetImagY(), GetRealX(), and GetRealY().
double OptSignal::GetCenterFreq | ( | void | ) | [inline] |
Referenced by PostDispCompSubSystem::AdditionalDemuxFiltering(), AddSignalBM(), OptAmplifier::AmplifyHomogeneous(), NoiseCovariance::ApplyArtificialCentralChannelDemux(), OptAmplifier::ApplyPolynomial(), GaussianReceiver::ComputeFirstOrderPMDParameters(), OptSpectrumAnalyzer::ComputeMaxPowerLinFreqWindowOSA(), OptFiberLocalError::ComputeWalkOffStepSize(), OptDemuxer::ExtractChannel(), OptDemuxer::ExtractChannelCenterFreq(), OptDemuxer::ExtractSingleChannel(), OptSpectrumAnalyzer::GetPeakPowerdBm(), OptSpectrumAnalyzer::GetValleyPowerdBm(), MachZehnder::MachZehnder(), OptAmplifier::OptAmplifier(), OptDataWriter::OptDataWriter(), OptFiber::OptFiber(), OptFiberLocalError::OptFiberLocalError(), OptSignal(), OptSpectrumAnalyzer::OutputOSA(), RamanAmp::PrepareSignalLastRound(), RamanAmp::PrepareSignalStart(), OptDemuxer::PrepareToDemuxChannel(), ReceiverSubsystem::ReceiveSignal(), ChiSquareReceiver::ReceiveSignal(), ReceiverSubsystem::ReceiveSignalBackToBack(), OptSpectrumAnalyzer::UpdateSNR_OSA(), and RamanAmp::WriteSignalNoise().
double OptSignal::GetCenterWavelength | ( | void | ) | [inline] |
Referenced by OptAmplifier::AmplifyWithUserDefinedGain().
int OptSignal::GetChannelArrayIndex | ( | int | ChannelPhysicalIndex | ) |
References BitString::GetChannelArrayIndex(), and oBitString.
Referenced by ChiSquareReceiver::ReceiveSignal(), and ChiSquareReceiver::ReceiveSignalCWNoLossNoDisp().
int OptSignal::GetChannelPhysicalIndex | ( | int | ChannelArrayIndex | ) |
References BitString::GetChannelPhysicalIndex(), and oBitString.
Referenced by ConstructOptSignal().
double OptSignal::GetChannSpacing | ( | void | ) | [inline] |
double OptSignal::GetChirp | ( | int | timeIndex | ) |
Rteurns the chirp of SCALAR complex wave at at time given by timeIndex in range 0 to OptSignal::qtPoints
The Chirp of a complex wave E(t) = A(t) exp(i Phi(t)) is defined to be
Chirp(t) = -d^2Phi/dt^2
Chirp is in Hz^2 whereas LocalFrequency is in Hz.
Usually we are interested in computing the Chirp at time t_0 = central time of a given pulse. The negative sign is included so that the sign of the chirp agrees with the sign of the chirp parameter C in [NLO,p67]
The pulse can then be approximated by using a Taylor's series for Phi(t) about t_0
E(t) ~ A(t) exp( i [Phi(t_0) - 2*pi*LocalFrequency(t_0)*(t-t_0) - 0.5*4*pi^2*Chirp(t_0)*(t-t_0)^2] )
The Chirp at t = timeIndex*DeltaTime is computed from the phase by using a central difference to approximate the 2nd derivative (for second order accuracy).
References DeltaTime, GetPhase(), pi, qtPoints, sfftM, sq(), fftMatrices::tOptSignalX, TypeSimulation, and VECTOR.
Referenced by ComputeAverageChirpOfMarks(), WriteChirp(), and WriteLocalFrequencyAndChirp().
double OptSignal::GetChirpParameter | ( | void | ) | [inline] |
int OptSignal::GetDebugLevel | ( | void | ) | [inline] |
Referenced by OptFilter::OptFilter(), and Photodetector::Photodetector().
double OptSignal::GetDegreeOfPolarization | ( | double | RelMinFreq, | |
double | RelMaxFreq | |||
) |
References DeltaFreq, fft, cfftw::fftshift(), fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, FreqWindow, cfftw::ifftshift(), jc, qtPoints, sfftM, sq(), and sqrt().
double OptSignal::GetDegreeOfPolarization | ( | double | BandWidth | ) |
References DeltaFreq, fft, cfftw::fftshift(), fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, FreqWindow, cfftw::ifftshift(), jc, qtPoints, sfftM, sq(), and sqrt().
double OptSignal::GetDegreeOfPolarization | ( | void | ) |
References jc, qtPoints, sfftM, sq(), sqrt(), fftMatrices::tOptSignalX, and fftMatrices::tOptSignalY.
Referenced by WriteDegreeOfPolarization().
double OptSignal::GetDegreeOfPolarizationAndTotalStokesFreqDomain | ( | double * | Stokes | ) |
Computes the degree of polarization and total Stokes parameters using the frequency domain data only. JZ Sep 7th 2002.
You can either caluclate the degree of polarization and the total Stokes parameters in the frequency domain or the time domain. The answers are the same.
Computes the degree of polarization and total Stokes parameters using the frequency domain data only. JZ Sep 7th 2002.
You can either caluclate the degree of polarization and the total Stokes parameters in the frequency domain or the time domain. The answers are the same. Depending on your particular application it might be quicker to compute it in the time domain. JZ Sep 7th 2002.
double OptSignal::GetDeltaFreq | ( | void | ) | [inline] |
Referenced by NoiseCovariance::AmplifyCovarianceMatrix(), OptAmplifier::AmplifyHomogeneous(), NoiseCovariance::ApplyArtificialCentralChannelDemux(), OptAmplifier::ApplyPolynomial(), ChiSquareReceiver::ChiSquareReceiver(), NoiseCovariance::ComputeCovarianceMatrixAWGN(), ElecSignalStat::GetMeanASE_ASE(), ElecSignalStat::GetMeanNoiseGaussianStatistics(), OptFilter::GetPowerEquivalentSpectralWidth(), ElecSignalStat::GetStdDevASE_ASE(), ElecSignalStat::GetStdDevSignal_ASE_TimeIndex(), ElecSignalStat::InitElecSignalStat(), NoiseCovariance::InitializeCovarianceMatrix(), MachZehnder::MachZehnder(), NoiseCovariance::NoiseCovariance(), OptSpectrumAnalyzer::OptSpectrumAnalyzer(), NoiseCovariance::Perturb(), RamanAmp::PrepareSignalLastRound(), RamanAmp::PrepareSignalStart(), NoiseCovariance::PropagateAnalyticCWSignalNoLossNoDispersion(), ChiSquareReceiver::ReceiveSignalCWNoLossNoDisp(), NoiseCovariance::WriteFileFreqField(), ReceiverSemiAnalytical::WriteNoiseFreeOpticalSignalFreq(), and RamanAmp::WriteSignalNoise().
double OptSignal::GetDeltaTime | ( | void | ) | [inline] |
Referenced by ChiSquareReceiver::ComputeAveragePDFs(), ElecSignalStat::GetIntegralForSignalNoiseVariance(), MachZehnder::MachZehnder(), ReceiverSemiAnalytical::ReceiveSignalSemiAnalytical(), SaturableAbsorber::RungaKutta4Step(), ElecSignalStat::SetTimeSlices(), GaussianReceiver::SetTimeSlices(), Histogram2D::UpdateEyeDiagram(), OptSpectrumAnalyzer::UpdateOSA(), and NoiseCovariance::WriteFileTimeField().
double OptSignal::GetEnergyInBitSlot | ( | int | BitSlotNumber | ) |
BitSlotNumber must be in range [0,OptSignal::StringLength)
References DeltaTime, GetEnergyInTimeRange(), and StringLength.
double OptSignal::GetEnergyInTimeRange | ( | double | LeftTime, | |
double | RightTime | |||
) |
References DeltaTime, qtPoints, Quadrature(), QuadratureWorkSpace, sfftM, sq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by PulseEvolutionAnalyzer::ComputePulseEnergyStats(), GetEnergyInBitSlot(), GetTotalEnergy(), and PulseEvolutionAnalyzer::WriteEnergyInBitSlot().
int OptSignal::GetFloorIndex | ( | double | Time | ) |
Returns integer index in range [0,qtPoints) corresponding to floor(WrappedTime/DeltaTime), where WrappedTime is in range [0,TimeWindow).
References DeltaTime, and TimeWindow.
Referenced by GetImagX(), GetImagY(), GetRealX(), and GetRealY().
double OptSignal::GetFreqForPDVectorOFLE | ( | void | ) | [inline] |
double OptSignal::GetFrequency | ( | int | ChannelArrayIndex | ) |
References Frequency.
Referenced by PostDispCompSubSystem::AdditionalDemuxFiltering(), OptFiberLocalError::ComputeWalkOffStepSize(), EOM_MachZehnderModulatorElecNRZ(), EOM_MachZehnderModulatorOptNRZOLD(), EOM_PhaseModulator(), OptDemuxer::ExtractChannel(), OptDemuxer::ExtractSingleChannel(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringNRZ_RCOS_MachZehnderModulator(), GenerateSignalStringQPSK_CW(), GenerateSignalStringQPSK_DPMZ_PM_NRZ(), GenerateSignalStringQPSK_Gaussian(), GenerateSignalStringQPSK_SEQ_PM_NRZ(), GenerateSignalStringRaisedCosines(), GenerateSignalStringRaisedCosinesWithPhaseShift(), GenerateSignalStringRZGaussianPattern(), GenerateSignalStringUsingInputSequence(), OptSpectrumAnalyzer::GetPeakPowerdBm(), OptSpectrumAnalyzer::GetValleyPowerdBm(), InitializeFirstOrderPMDSignal(), MachZehnder::MZModulator(), OptAmplifier::OptAmplifier(), OptFiberLocalError::OptFiberLocalError(), MachZehnder::PhaseModulator(), OptDemuxer::PrepareToDemuxChannel(), ReceiverSubsystem::ReceiveSignal(), ChiSquareReceiver::ReceiveSignal(), ReceiverSubsystem::ReceiveSignalBackToBack(), ReduceToSingleChannel(), and OptSpectrumAnalyzer::UpdateSNR_OSA().
double OptSignal::GetFreqWindow | ( | void | ) | [inline] |
Referenced by OptAmplifier::AmplifyOptSignalScalarSinTim(), OptSpectrumAnalyzer::GetOSAOutputLinear(), MachZehnder::MachZehnder(), OptAmplifier::OptAmplifier(), OptSpectrumAnalyzer::OutputOSA(), OptSpectrumAnalyzer::UpdateOSA_OLD(), OptFiber::WriteFileDispersionProfile(), NoiseCovariance::WriteFileFreqField(), and OptSpectrumAnalyzer::WriteFileOutputOSA().
double OptSignal::GetFWHM_Pulse | ( | void | ) | [inline] |
Referenced by MachZehnder::EAM34PulseShape(), OptFiberLocalError::OptFiberLocalError(), and OptSignal().
double OptSignal::GetImagX | ( | double | Time | ) |
Returns imaginary part of X-polarization of signal at time Time.
References DeltaTime, GetCeilIndex(), GetFloorIndex(), sfftM, TimeWindow, and fftMatrices::tOptSignalX.
double OptSignal::GetImagY | ( | double | Time | ) |
Returns imaginary part of Y-polarization of signal at time Time.
References DeltaTime, GetCeilIndex(), GetFloorIndex(), sfftM, TimeWindow, and fftMatrices::tOptSignalY.
cplx OptSignal::GetInJones | ( | const int | ChannelArrayIndex, | |
int | JonesIndex | |||
) |
References InJones.
Referenced by AddSignalBM(), GaussianReceiver::ComputeFirstOrderPMDParameters(), EOM_MachZehnderModulatorElecNRZ(), EOM_MachZehnderModulatorOptNRZOLD(), EOM_PhaseModulator(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringNRZ_RCOS_MachZehnderModulator(), GenerateSignalStringQPSK_CW(), GenerateSignalStringQPSK_DPMZ_PM_NRZ(), GenerateSignalStringQPSK_Gaussian(), GenerateSignalStringQPSK_SEQ_PM_NRZ(), GenerateSignalStringRaisedCosines(), GenerateSignalStringRaisedCosinesWithPhaseShift(), GenerateSignalStringRZGaussianPattern(), GenerateSignalStringUsingInputSequence(), MachZehnder::MZModulator(), operator=(), OptSignal(), and MachZehnder::PhaseModulator().
double OptSignal::GetInStokes | ( | const int | ChannelArrayIndex, | |
const int | StokesIndex | |||
) |
References InStokes.
Referenced by AddSignalBM(), ConstructOptSignal(), InitializeInStokes(), operator=(), and OptSignal().
double * OptSignal::GetInStokes | ( | const int | ChannelArrayIndex | ) |
References InStokes.
double OptSignal::GetLocalFrequency | ( | int | timeIndex | ) |
Returns local frequency of SCALAR complex wave at time given by timeIndex in range 0 to OptSignal::qtPoints
Local Frequency of a complex wave E(t) = A(t) exp(i Phi(t)) is defined to be (see for example [Agrawal, Nonlinear Optics,p91])
LocalFrequency(t) = - dPhi/dt
The local frequency at t = timeIndex*DeltaTime is computed from the phase using a central difference to approximate the derivative (for second order accuracy).
We wrap the phase difference numerator in doifference quatient) to be in the range [-pi,pi)
Local Frequency is in Hz = Cycles per second
References DeltaTime, GetPhase(), pi, qtPoints, sfftM, fftMatrices::tOptSignalX, TypeSimulation, VECTOR, and WrapPeriodically().
Referenced by WriteLocalFrequencyAndChirp().
void OptSignal::GetNewRandomSignalString | ( | void | ) |
Regenerates the signal using a new randomly chosen bit sequence.
References BitString::GetRandomString(), oBitString, and RegenerateSignalString().
double OptSignal::GetNoiseBandwidthGaussianStatistics | ( | void | ) | [inline] |
int OptSignal::GetNumChannels | ( | void | ) | [inline] |
Referenced by ChangeAveragePowerChannCurrentSignal(), OptAmplifier::ComputeGainForFixedOutputPower_OLD(), OptAmplifier::ComputeGainForFixedTotalOutputPower(), OptFiberLocalError::ComputeWalkOffStepSize(), OptDemuxer::ExtractChannel(), OptDemuxer::ExtractChannelCenterFreq(), OptDemuxer::ExtractSingleChannel(), ChiSquareReceiver::GetOSNR_dB(), ImportOptSignal(), MachZehnder::MachZehnder(), NoiseCovariance::NoiseCovariance(), OptAmplifier::OptAmplifier(), OptFiberLocalError::OptFiberLocalError(), OptSpectrumAnalyzer::OptSpectrumAnalyzer(), PolDepAttenuator::PolDepAttenuator(), RamanAmp::PrepareSignalStart(), OptDemuxer::PrepareToDemuxChannel(), GaussianReceiver::ReceiveSignalDGD_NoisePartiallyPolarized(), NoiseCovariance::SetCovarianceMatrixAWGN(), OptAmplifier::SetFixedTotalOutputPowerFromCurrentOptSignal(), and ElecSignalStat::SetOptElecFiltersForGaussianStatistics().
double OptSignal::GetOptPowerChann | ( | void | ) | [inline] |
int OptSignal::GetQtPoints | ( | void | ) | [inline] |
Referenced by AddFreqDomain(), AddSignalBM(), LumpedLoss::ApplyLumpedLoss(), BeamSplitter::BeamSplitter(), OptSpectrumAnalyzer::ComputeAveragePowerFreqWindow(), OptSpectrumAnalyzer::ComputeMaxPowerLinFreqWindowOSA(), ChiSquareReceiver::ComputeTimeIndependentPartOfFilterMatrix(), GaussianReceiver::GaussianReceiver(), ElecSignalStat::GetMeanASE_ASE(), ElecSignalStat::GetMeanNoiseGaussianStatistics(), OptFilter::GetPowerEquivalentSpectralWidth(), ElecSignalStat::GetStdDevASE_ASE(), ElecSignalStat::GetStdDevSignal_ASE_TimeIndex(), ImportOptSignal(), PolDepAttenuator::InitPolDepAttenuator(), PulseEvolutionAnalyzer::IsolatePulse(), MachZehnder::MachZehnder(), NoiseCovariance::NoiseCovariance(), OptAmplifier::OptAmplifier(), OptSignal(), OptSpectrumAnalyzer::OptSpectrumAnalyzer(), PolarizBeamSplitter::PolarizBeamSplitter(), Polarizer::PolarizeOptSignal(), PolarizTransformer::PolarizTransformer(), RamanAmp::RamanAmp(), ReceiverSemiAnalytical::ReceiverSemiAnalytical(), ReceiverSemiAnalytical::ReceiveSignalSemiAnalytical(), SubtractFreqDomain(), PolDepAttenuator::SwitchOptSignalData(), PolarizTransformer::SwitchOptSignalData(), OptSpectrumAnalyzer::SwitchOptSignalData(), OptFiber::SwitchOptSignalData(), OptAmplifier::SwitchOptSignalData(), PolarizTransformer::TransformPolarization(), Histogram2D::UpdateEyeDiagram(), and ReceiverSemiAnalytical::WriteNoiseFreeOpticalSignalFreq().
void OptSignal::GetRandomJones | ( | cplx * | Jones | ) |
Generates a random Jones vector so that the corresponding Stokes vector is selected from a uniform distribution on the Poincare sphere
References RanNumGen::GetRanNum(), jc, pi, and RNG.
Referenced by MachZehnder::MZModulator(), MachZehnder::PhaseModulator(), SetRandomJonesVectors(), and TestGetRandomJones().
bool OptSignal::GetRandomPolarizationsFlag | ( | ) | [inline] |
Referenced by MachZehnder::MachZehnder().
double OptSignal::GetRealX | ( | double | Time | ) |
Returns real part of X-polarization of signal at time Time. We use linear interpolation of Time is not on the discrete time grid and interpret Time as being periodic in the range [0,TimeWindow).
References DeltaTime, GetCeilIndex(), GetFloorIndex(), sfftM, TimeWindow, and fftMatrices::tOptSignalX.
double OptSignal::GetRealY | ( | double | Time | ) |
Returns real part of Y-polarization of signal at time Time.
References DeltaTime, GetCeilIndex(), GetFloorIndex(), sfftM, TimeWindow, and fftMatrices::tOptSignalY.
double OptSignal::GetRelativeCenterFrequency | ( | int | ChannelArrayIndex | ) |
Returns Freqeuncy of chanel with index ChannelArrayIndex relative to OptSignal::CenterFreq.
ChannelArrayIndex is asumed to be in range 0 to OptSignal::NumChanns-1.
References CenterFreq, and Frequency.
Referenced by NoiseCovariance::ApplyArtificialCentralChannelDemux(), and NoiseCovariance::Perturb().
int OptSignal::GetRelevantNumModesOFLE | ( | void | ) | [inline] |
double OptSignal::GetSigmaSqOptSignal | ( | void | ) |
Our of date. Use ComputeRMSPulseWidth() instead.
Computes square of pulse width, using same formula used to compute variance of a pdf. Assumes signal only has one pulse
References DeltaTime, qtPoints, sfftM, sq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by WriteAveragePulseWidth(), and OptFiberLocalError::WriteStepSizes().
int OptSignal::GetStringLength | ( | void | ) | [inline] |
Referenced by AddSignalBM(), ChiSquareReceiver::ChiSquareReceiver(), NoiseCovariance::ComputeColumnPropagator(), PulseEvolutionAnalyzer::ComputePulseEnergyStats(), Photodetector::ComputeWorkSumDelayedHalfBitPeriodThenSquare(), GaussianReceiver::GaussianReceiver(), ElecSignalStat::GetBER_GaussianStatisticsFromDecisionThreshold(), ImportOptSignal(), PulseEvolutionAnalyzer::IsolatePulse(), MachZehnder::MachZehnder(), OptSignal(), PolarizBeamSplitter::PolarizSplitOptSignal(), PulseEvolutionAnalyzer::PulseEvolutionAnalyzer(), Photodetector::SetOptSignal(), ElecFilter::SetPhotodetector(), ElecSignalStat::SetTimeSlices(), BeamSplitter::SplitOptSignalScalar(), OptAmplifier::TimeShiftBiasedNoise(), and Histogram2D::UpdateEyeDiagram().
double OptSignal::GetTimeWindow | ( | void | ) | [inline] |
Referenced by NoiseCovariance::AllocateMemory(), OptAmplifier::AmplifyOptSignal(), OptAmplifier::AmplifyWithUserDefinedGain(), ChiSquareReceiver::ChiSquareReceiver(), OptAmplifier::ComputeGainForFixedOutputPower_OLD(), PulseEvolutionAnalyzer::ComputePulseEnergyStats(), PulseEvolutionAnalyzer::ComputeTimeShift(), OptFiberLocalError::FiberAmplifierGetEnergyForHeunsMethod(), GaussianReceiver::GaussianReceiver(), ElecSignalStat::GetIntegralForSignalNoiseVariance(), MachZehnder::MachZehnder(), RamanAmp::RamanAmp(), Photodetector::SetOptSignal(), ElecFilter::SetPhotodetector(), ElecSignalStat::SetTimeSlices(), GaussianReceiver::SetTimeSlices(), OptAmplifier::TimeShiftBiasedNoise(), OptSpectrumAnalyzer::UpdateOSA(), and OptAmplifier::WriteFileBiasedNoiseTime().
double OptSignal::GetTotalEnergy | ( | void | ) |
References GetEnergyInTimeRange(), and TimeWindow.
Referenced by SaturableAbsorber::Apply(), PulseEvolutionAnalyzer::ComputeMaxPower(), ComputeMeanTimePulse(), ComputeRMSPulseWidth(), OptFiberLocalError::FiberAmplifierComputeSaturableGain(), GetAveragePower(), PulseEvolutionAnalyzer::WriteEnergyInBitSlot(), and OptFiberLocalError::WriteStepSizes().
void OptSignal::GetTotalStokesParameters | ( | double * | Stokes | ) |
Computes the normalized Stokes parameters (4-vector).
References jc, qtPoints, sfftM, sq(), fftMatrices::tOptSignalX, and fftMatrices::tOptSignalY.
Referenced by ElecSignalStat::GetQ_FactorFromESNR_GaussianStatistics(), and OptAmplifier::SetPolDepGainPolarization().
void OptSignal::GetTotalStokesParametersInBandwidth | ( | double * | Stokes, | |
double | RelMinFreq, | |||
double | RelMaxFreq | |||
) |
References DeltaFreq, fft, cfftw::fftshift(), fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, FreqWindow, cfftw::ifftshift(), jc, qtPoints, sfftM, and sq().
void OptSignal::GetTotalStokesParametersInTime | ( | double * | Stokes, | |
int | RelMinTimeIndex, | |||
int | RelMaxTimeIndex | |||
) |
References jc, qtPoints, sfftM, sq(), fftMatrices::tOptSignalX, and fftMatrices::tOptSignalY.
typePulse OptSignal::GetTypePulse | ( | void | ) | [inline] |
typeSimulation OptSignal::GetTypeSimulation | ( | void | ) | [inline] |
Referenced by PostDispCompSubSystem::AdditionalDemuxFiltering(), AddSignalBM(), NoiseCovariance::AllocateMemory(), OptSpectrumAnalyzer::ComputeAveragePowerFreqWindow(), NoiseCovariance::ComputeCovarianceMatrixAWGN(), ElecSignalStat::GetNoiseNoiseVarianceGaussianStatistics(), LumpedLoss::InitLumpedLoss(), MachZehnder::MachZehnder(), NoiseCovariance::NoiseCovariance(), OptAmplifier::OptAmplifier(), OptFiberLocalError::OptFiberLocalError(), OptFilter::OptFilter(), OptSignal(), RamanAmp::RamanAmp(), ReceiverSubsystem::ReceiverSubsystemInit(), GaussianReceiver::ReceiveSignalDGD_NoisePartiallyPolarized(), ReceiverSemiAnalytical::ReceiveSignalSemiAnalytical(), GaussianReceiver::ReceiveSignalUnpolarizedNoise(), SaturableAbsorber::SaturableAbsorber(), OptSpectrumAnalyzer::UpdateOSA(), OptSpectrumAnalyzer::UpdateOSA_OLD(), ReceiverSemiAnalytical::WriteNoiseFreeOpticalSignalFreq(), and NoiseCovariance::~NoiseCovariance().
bool OptSignal::GetUsingOptFiberLocalError | ( | void | ) | [inline] |
Referenced by OptFiberLocalError::OptFiberLocalError(), and SaturableAbsorber::SaturableAbsorber().
double OptSignal::GetWavelength | ( | int | ChannelArrayIndex | ) |
References Frequency, and Frequency2Wavelength().
void OptSignal::ifftshift | ( | void | ) |
Has same effect as function of same name in Matlab.
References fft, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, cfftw::ifftshift(), sfftM, TypeSimulation, and VECTOR.
Referenced by ChangeAbsoluteCenterFreq(), and TimeShiftSignal().
void OptSignal::ImportOptSignal | ( | OptSignal * | oOptSignalOrig | ) |
Time and frequency data in this signal is obtained from oOptSignalOrig
References fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, BitString::GetBit(), GetNumChannels(), GetQtPoints(), GetStringLength(), LogFile, NumChannels, oBitString, qtPoints, BitString::SetBit(), sfftM, StringLength, fftMatrices::tOptSignalX, and fftMatrices::tOptSignalY.
void OptSignal::InitializeFirstOrderPMDSignal | ( | double | PowerSplit, | |
double | DGD | |||
) |
Generates a signal using the first order PMD model for the Gaussian, Sech and NRZ formats
CAUTION: For NRZ this only works for a single channel signal
DGD,: | The differential group delay in seconds | |
PowerSplit,: | The power splitting parameter in range [0,1]. |
The X-polarization component of the signal is shifted right by DGD/2 and the Y-polarization component is shifted left by DGD/2. The two polarization components are combined so that a fraction PowerSplit of the power is in the X-polarization and a fraction 1-PowerSplit of the power is in the Y-polarization.
References AccumulatedTotalNoiseSpectralDensityGaussianStatistics, BitLength, CenterFreq, ChirpParameter, CRZ_GAUSS, DeltaTime, fft, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, FWHM_Pulse, BitString::GetBit(), GetFrequency(), jc, log(), NRZ, NumChannels, oBitString, optical_filter(), OptPowerChann, pi, qtPoints, RiseTime, RZ_GAUSS, RZ_SECH, sfftM, sq(), sqrt(), StringLength, Time2Freq(), TimeWindow, fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, and TypePulse.
void OptSignal::InitializeInStokes | ( | ifstream * | InFile | ) |
References DebugLevel, GetInStokes(), LogFile, NumChannels, ReadInStokes(), SetInStokes(), TypeSimulation, and VECTOR.
Referenced by ConstructOptSignal().
void OptSignal::InputTimeDataFromFile | ( | void | ) |
Reads in time data from file when TypePulse == INPUT_SIGNAL_FROM_FILE.
References InputTimeDataFileName, ReadComplexFields(), ReadComplexFieldsX(), SCALAR, and TypeSimulation.
Referenced by RegenerateSignalString().
void OptSignal::OpenAccumulatedFirstOrderDispersionFile | ( | string | FileName | ) |
References AccumulatedFirstOrderDispersionFile, and WriteAccumulatedFirstOrderDispersionFlag.
Referenced by OptDataWriter::OptDataWriter().
void OptSignal::OpenAveragePulseWidthFile | ( | string | FileName, | |
int | WriteFlag | |||
) |
References AveragePulseWidthFile.
Referenced by OptDataWriter::OptDataWriter().
void OptSignal::OpenDegreeOfPolarizationFile | ( | string | InFileName, | |
bool | WriteDOPFlag | |||
) |
References DegreeOfPolarizationFile.
Referenced by OptDataWriter::OptDataWriter().
Takes difference of two signals.
First calls copy constructor to initialize parameters for returned signal, then initializes data of returned signal to be difference of data in this signal and Signal2
References fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, OptSignal(), qtPoints, sfftM, fftMatrices::tOptSignalX, and fftMatrices::tOptSignalY.
Assignment operator.
This assignment operator assumes that OptSignal::NumChannels, OptSignal::qtPoints, OptSignal::TimeWindow, OptSignal::StringLength are unchanged so that none of the dynamically allocated data arrays/classes changes size.
References AccumulatedFirstOrderDispersion, AccumulatedSecondOrderDispersion, AccumulatedTotalNoiseSpectralDensityGaussianStatistics, BitLength, BitRateChann, BPSK_MACH_ZEHNDER, BPSK_PHASE_MOD, CenterFreq, CenterWavelength, ChannSpacing, ChirpParameter, ComputeInputPDVectorFlagOFLE, ComputeRelevantNumModesOFLEFlag, CSRZ_MACH_ZEHNDER, DebugLevel, DeltaFreq, DeltaTime, EOM_ElecFilter_FreqFWHM, EOM_Phi_10_RelError, EOM_Phi_20_RelError, EOM_sfftPM, EOM_sfftPM1, EOM_sfftPM2, EOM_ShiftAmt, EOM_SinusoidalVertShift_RelError, EOM_SlopeFactor, EOM_SuperGaussExponent, EOM_V_pi_RelError, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, fftPowerMatrices::fPowerSignal, FreqForPDVectorOFLE, Frequency, FreqWindow, FWHM_Pulse, GetInJones(), GetInStokes(), InputPDVectorOFLE, LinearExtinctionRatio, LogFile, MemAllocated, NoiseBandwidthGaussianStatistics, NRZ_RCOS_MACH_ZEHNDER, NumChannels, oBitString, OptPowerChann, oReduOptSignal, OutputPDVectorOFLE, QPSK_CW, QPSK_DPMZ_PM_AM_RZ33, QPSK_DPMZ_PM_AM_RZ50, QPSK_DPMZ_PM_NRZ, QPSK_SEQ_PM_AM_RZ33, QPSK_SEQ_PM_AM_RZ50, QPSK_SEQ_PM_NRZ, qtPoints, RandomPolarizationsFlag, RelevantNumModesOFLE, RiseTime, RNG, RZ33_MACH_ZEHNDER, RZ50_MACH_ZEHNDER, SetInJones(), SetInStokes(), sfftM, StokesTransferMatrixTransposeOFLE, StringLength, TimeWindow, fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, fftPowerMatrices::tPowerSignal, TypeEOMElecData, TypeEOMElecFilter, TypePulse, TypeSimulation, UsingOptFiberLocalError, and VECTOR.
double OptSignal::RaisedCosineForNRZ_RCOS_MZ | ( | double | Time | ) |
References BitLength, EOM_SlopeFactor, and pi.
Referenced by EOM_GenerateRaisedCosineBinaryElecData().
void OptSignal::ReadComplexFields | ( | string | InFileName | ) |
Needs more debugging!
References jc, qtPoints, sfftM, Time2Freq(), fftMatrices::tOptSignalX, and fftMatrices::tOptSignalY.
Referenced by InputTimeDataFromFile(), and NoiseCovariance::ReadFileNoiseFreeSignalAndCovarianceMatrix().
void OptSignal::ReadComplexFieldsX | ( | string | InFileName | ) |
References jc, qtPoints, sfftM, Time2Freq(), fftMatrices::tOptSignalX, and fftMatrices::tOptSignalY.
Referenced by InputTimeDataFromFile().
void OptSignal::ReadFileComplexFieldsTimeAndFreq | ( | string | InFileName | ) |
Reads all complex fields to a file for quick restart.
Reads 8 columns of data from file with name InFileName: Real and Imaginery parts of X and Y polarizations for time and frequency data. Use with OptSignal::WriteFileComplexFieldsTimeAndFreq(string InFileName)
References fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, jc, qtPoints, sfftM, fftMatrices::tOptSignalX, and fftMatrices::tOptSignalY.
Referenced by OptSignal().
int OptSignal::ReadInStokes | ( | string | InStokesName, | |
int | ch, | |||
ifstream * | InFile | |||
) |
References SetInStokes().
Referenced by InitializeInStokes().
void OptSignal::ReduceToSingleChannel | ( | int | ChannelArrayIndex | ) |
Used by OptDemuxer class.
References GetFrequency(), NumChannels, oBitString, BitString::ReduceToSingleChannelBitString(), and SetFrequency().
Referenced by OptDemuxer::ExtractSingleChannel(), and ElecSignalStat::SetOptElecFiltersForGaussianStatistics().
void OptSignal::RegenerateSignalString | ( | void | ) |
Basic transmitter model. Regenerates the signal data.
References AccumulatedTotalNoiseSpectralDensityGaussianStatistics, BPSK_MACH_ZEHNDER, BPSK_PHASE_MOD, CRZ_GAUSS, CRZ_RCOS, CRZ_SIN_MZ, CSRZ_MACH_ZEHNDER, CW, GenerateSignalStringBPSKMachZehnderModulator(), GenerateSignalStringBPSKPhaseModulator(), GenerateSignalStringCSRZMachZehnderModulator(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringNRZ_RCOS_MachZehnderModulator(), GenerateSignalStringQPSK_CW(), GenerateSignalStringQPSK_DPMZ_PM_AM_RZ33(), GenerateSignalStringQPSK_DPMZ_PM_AM_RZ50(), GenerateSignalStringQPSK_DPMZ_PM_NRZ(), GenerateSignalStringQPSK_Gaussian(), GenerateSignalStringQPSK_SEQ_PM_AM_RZ33(), GenerateSignalStringQPSK_SEQ_PM_AM_RZ50(), GenerateSignalStringQPSK_SEQ_PM_NRZ(), GenerateSignalStringRaisedCosinesWithPhaseShift(), GenerateSignalStringRZ33MachZehnderModulator(), GenerateSignalStringRZ50MachZehnderModulator(), GenerateSignalStringRZGaussianPattern(), GenerateSignalStringUsingInputSequence(), INPUT_SEQUENCE, INPUT_SIGNAL_FROM_FILE, InputTimeDataFromFile(), NRZ, NRZ_RCOS_MACH_ZEHNDER, oReduOptSignal, QPSK_CW, QPSK_DPMZ_PM_AM_RZ33, QPSK_DPMZ_PM_AM_RZ50, QPSK_DPMZ_PM_NRZ, QPSK_RZ_GAUSS, QPSK_SEQ_PM_AM_RZ33, QPSK_SEQ_PM_AM_RZ50, QPSK_SEQ_PM_NRZ, ReduOptSignal::RegenerateReduOptSignal(), ResetJonesMatrix(), ResetPDVectorOFLE(), RZ33_MACH_ZEHNDER, RZ50_MACH_ZEHNDER, RZ_GAUSS, RZ_GAUSS_PATTERN, RZ_SECH, SetRandomJonesVectors(), TypePulse, and UMBC_RZ.
Referenced by GetNewRandomSignalString(), OptSignal(), GaussianReceiver::ReceiveSignalDGD_NoisePartiallyPolarized(), RegenerateSignalWithGivenAveragePowerChann(), and SetBitRateChannBM().
void OptSignal::RegenerateSignalWithGivenAveragePowerChann | ( | double | AveragePowerChann2 | ) |
Used in GaussianReceiver for computing the Q-factor.
References ChangeAveragePowerChannCurrentSignal(), and RegenerateSignalString().
void OptSignal::ResetAccumulatedFirstOrderDispersionToZero | ( | void | ) | [inline] |
Referenced by ConstructOptSignal(), OptSignal(), SetBitRateChannBM(), and OptDataWriter::TurnOffWriteFlags().
void OptSignal::ResetAccumulatedSecondOrderDispersionToZero | ( | void | ) | [inline] |
Referenced by ConstructOptSignal(), OptSignal(), and SetBitRateChannBM().
void OptSignal::ResetJonesMatrix | ( | void | ) |
References JonesMatrixChannel, and NumChannels.
Referenced by RegenerateSignalString().
void OptSignal::ResetPDVectorOFLE | ( | void | ) |
Used by OptFiberLocalError class
Resets OutputPDVectorOFLE and InputPDVectorOFLE to (0,0,0) and StokesTransferMatrixTransposeOFLE to the 3x3 identity matrix.
References ComputeInputPDVectorFlagOFLE, InputPDVectorOFLE, OutputPDVectorOFLE, TypeSimulation, UsingOptFiberLocalError, and VECTOR.
Referenced by RegenerateSignalString().
void OptSignal::ScaleSignal | ( | double | ScaleFactor | ) |
void OptSignal::SetAccumulatedFirstOrderDispersion | ( | double | Value | ) | [inline] |
void OptSignal::SetAccumulatedSecondOrderDispersion | ( | double | Value | ) | [inline] |
Referenced by OptDemuxer::ExtractChannel().
void OptSignal::SetAccumulatedTotalNoiseSpectralDensityGaussianStatistics | ( | double | Value | ) | [inline] |
void OptSignal::SetBandwidthForRelevantNumModesOFLE | ( | double | BandwidthGHz | ) |
References DebugLevel, DeltaFreq, LogFile, min(), qtPoints, and RelevantNumModesOFLE.
void OptSignal::SetBitLengthJZ | ( | double | Value | ) | [inline] |
USE WITH EXTREME CAUTION!! (Written for specific application by JZ).
void OptSignal::SetBitRateChannBM | ( | double | Value | ) |
Do not use. Written for application by Brian Marks.
References AccumulatedTotalNoiseSpectralDensityGaussianStatistics, AllocateOptFiberLocalErrorWorkSpace(), BitLength, BitRateChann, ComputeRelevantNumModesOFLE(), DeallocateOptFiberLocalErrorWorkSpace(), DeltaFreq, DeltaTime, fft, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, FreeCplx(), FreqWindow, NewCplx(), qtPoints, RegenerateSignalString(), ResetAccumulatedFirstOrderDispersionToZero(), ResetAccumulatedSecondOrderDispersionToZero(), sfftM, StringLength, TimeWindow, fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, and UsingOptFiberLocalError.
void OptSignal::SetBitRateChannJZ | ( | double | Value | ) | [inline] |
USE WITH EXTREME CAUTION!! (Written for specific application by JZ).
void OptSignal::SetCenterFreq | ( | const double | CenterFreq2 | ) | [inline] |
void OptSignal::SetChannSpacing | ( | const double | ChannSpacing2 | ) | [inline] |
void OptSignal::SetEOM_ElecFilter_FreqFWHM | ( | double | Value | ) | [inline] |
void OptSignal::SetEOM_Phi_10_RelError | ( | double | EOM_Phi_10_RelError2 | ) |
References EOM_Phi_10_RelError.
void OptSignal::SetEOM_Phi_20_RelError | ( | double | EOM_Phi_20_RelError2 | ) |
References EOM_Phi_20_RelError.
void OptSignal::SetEOM_RiseTime | ( | double | Value | ) | [inline] |
void OptSignal::SetEOM_SinusoidalVertShift_RelError | ( | double | EOM_SinusoidalVertShift_RelError2 | ) |
References EOM_SinusoidalVertShift_RelError.
void OptSignal::SetEOM_V_pi_RelError | ( | double | EOM_V_pi_RelError2 | ) |
References EOM_V_pi_RelError.
void OptSignal::SetExtinctionRatio | ( | double | Value | ) | [inline] |
References dB2Linear().
void OptSignal::SetFrequency | ( | int | ChannelArrayIndex, | |
double | Freq | |||
) |
References DebugLevel, Frequency, and LogFile.
Referenced by OptDemuxer::ExtractChannel(), OptDemuxer::ExtractChannelCenterFreq(), GenerateImpulseSignal(), OptDemuxer::PrepareToDemuxChannel(), and ReduceToSingleChannel().
void OptSignal::SetFWHM_Pulse | ( | double | Value | ) | [inline] |
void OptSignal::SetInJones | ( | const int | ChannelArrayIndex, | |
const int | JonesIndex, | |||
cplx | JonesValue | |||
) |
References InJones.
Referenced by AddSignalBM(), ConstructOptSignal(), operator=(), OptSignal(), GaussianReceiver::ReceiveSignalDGD_NoisePartiallyPolarized(), and SetRandomJonesVectors().
void OptSignal::SetInStokes | ( | const int | ChannelArrayIndex, | |
const int | StokesIndex, | |||
double | StokesValue | |||
) |
References InStokes.
Referenced by AddSignalBM(), InitializeInStokes(), operator=(), OptSignal(), and ReadInStokes().
void OptSignal::SetInStokes | ( | const int | ChannelArrayIndex, | |
double * | StokesVector | |||
) |
References InStokes.
void OptSignal::SetNoiseBandwidthGaussianStatistics | ( | double | Value | ) | [inline] |
void OptSignal::SetNumberChannelsForDemuxer | ( | int | NumChannels2 | ) |
Used by OptDemuxer class.
Not set up for ReduOptSignal with more than one channel.
References NumChannels, oBitString, and BitString::SetNumChannels().
Referenced by OptDemuxer::ExtractChannel(), OptDemuxer::ExtractChannelCenterFreq(), and OptDemuxer::PrepareToDemuxChannel().
void OptSignal::SetNumChannels | ( | const int | NumChannels2 | ) |
Used by OptDemuxer class.
References BitString::AllocateBitStringArray(), NumChannels, oBitString, oReduOptSignal, BitString::ReleaseBitStringArray(), and ReduOptSignal::SetNumChannels().
Referenced by OptDemuxer::ExtractChannel(), OptDemuxer::ExtractChannelCenterFreq(), OptDemuxer::ExtractSingleChannel(), and OptDemuxer::PrepareToDemuxChannel().
void OptSignal::SetOptPowerChannel | ( | const double | Power2 | ) | [inline] |
void OptSignal::SetRandomJonesVectors | ( | void | ) |
References GetRandomJones(), NumChannels, RandomPolarizationsFlag, SetInJones(), TypeSimulation, and VECTOR.
Referenced by RegenerateSignalString().
void OptSignal::SetRiseTime | ( | double | Value | ) | [inline] |
void OptSignal::SetWriteAccumulatedFirstOrderDispersionFlag | ( | int | Value | ) | [inline] |
Referenced by OptDataWriter::OptDataWriter(), and OptDataWriter::TurnOffWriteFlags().
void OptSignal::SubtractFreqDomain | ( | OptSignal * | oOptSignal2 | ) |
Subtracts frequency domain data in oOptSignal2 from this OptSignal and then calls OptSignal:Freq2Time()
References fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, Freq2Time(), GetQtPoints(), qtPoints, and sfftM.
void OptSignal::SwitchXandYPolarizations | ( | void | ) |
void OptSignal::TestGetRandomJones | ( | string | OutFileName, | |
int | NumberPoints | |||
) |
References GetRandomJones(), and Jones2Stokes().
void OptSignal::Time2Freq | ( | void | ) |
Does Fourier transform of OptSignal data from Time to Frequency.
References cfftw::FFT(), fft, fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, sfftM, fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by AddCWSignal(), ChangeAveragePowerChannCurrentSignal(), DampBounds(), EOM_MachZehnderModulatorElecNRZ(), EOM_MachZehnderModulatorOptData(), EOM_MachZehnderModulatorOptNRZOLD(), EOM_PhaseModulator(), FreqShiftSignal(), GenerateImpulseSignal(), GenerateSignalStringCSRZMachZehnderModulator(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringNRZ_RCOS_MachZehnderModulator(), GenerateSignalStringQPSK_CW(), GenerateSignalStringQPSK_DPMZ_PM_AM_RZ33(), GenerateSignalStringQPSK_DPMZ_PM_AM_RZ50(), GenerateSignalStringQPSK_DPMZ_PM_NRZ(), GenerateSignalStringQPSK_Gaussian(), GenerateSignalStringQPSK_SEQ_PM_AM_RZ33(), GenerateSignalStringQPSK_SEQ_PM_AM_RZ50(), GenerateSignalStringQPSK_SEQ_PM_NRZ(), GenerateSignalStringRaisedCosines(), GenerateSignalStringRaisedCosinesWithPhaseShift(), GenerateSignalStringRZ33MachZehnderModulator(), GenerateSignalStringRZ50MachZehnderModulator(), GenerateSignalStringRZGaussianPattern(), GenerateSignalStringUsingInputSequence(), ElecSignalStat::GetIntegralForSignalNoiseVariance(), ElecSignalStat::GetStdDevSignal_ASE_TimeIndex(), InitializeFirstOrderPMDSignal(), PulseEvolutionAnalyzer::IsolatePulse(), MachZehnder::MZModulator(), OptSignal(), MachZehnder::PhaseModulator(), Polarizer::PolarizeOptSignal(), OptFiber::PropagateFiberCoupledNLS(), OptFiber::PropagateFullNonlinearFiberCoupledNLS(), ReadComplexFields(), ReadComplexFieldsX(), BeamSplitter::SplitOptSignal(), PolarizTransformer::TransformPolarization(), and PolarizTransformer::UndoLastPolarizTransformation().
void OptSignal::Time2FreqScalar | ( | void | ) |
Does Fourier transform of OptSignal data from Time to Frequency for SCALAR signal
References cfftw::FFT(), fft, fftMatrices::fOptSignalX, sfftM, fftMatrices::tOptSignalX, TypeSimulation, and VECTOR.
Referenced by BeamSplitter::SplitOptSignalScalar().
void OptSignal::TimeShiftSignal | ( | double | dTime | ) |
This method shifts the signal to the right by the amount dTime using the fft
References fftshift(), fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, Freq2Time(), ifftshift(), jc, pi, qtPoints, SCALAR, sfftM, TimeWindow, and TypeSimulation.
Referenced by ElecSignalStat::GetIntegralForSignalNoiseVariance().
T OptSignal::WrapPeriodically | ( | T | periodicVariable, | |
T | leftEndPoint, | |||
T | rightEndPoint | |||
) |
Returns the result of wrapping a periodic variable, periodicVariable, so that it is in the range [leftEndPoint,rightEndPoint).
Can use this template for example with T=double by calling as
double WrappedVar = WrapPeriodically<double>(Var,Min,Max);
Referenced by GetLocalFrequency(), and ElecSignalStat::UpdatePatternStats().
void OptSignal::WriteAccumulatedFirstOrderDispersion | ( | double | PropagatedLength | ) |
Writes out accumulated first order dispersion.
Writes out accumulated first order dispersion at distance given by PropagatedLength in both ps^2/km and ps/(nm-km) to the file opened by OptSignal::OpenAccumulatedFirstOrderDispersionFile()
References AccumulatedFirstOrderDispersion, AccumulatedFirstOrderDispersionFile, CenterWavelength, LightSpeed, pi, and WriteAccumulatedFirstOrderDispersionFlag.
Referenced by OptDataWriter::WriteEndMap(), OptDataWriter::WriteInitialData(), and OptDataWriter::WriteWithinMap().
void OptSignal::WriteAveragePowerdBm | ( | string | OutFileName, | |
double | distance, | |||
int | appendFlag | |||
) |
double FreqEnergy = 0;
if(TypeSimulation == VECTOR) {
for (int ii = 0; ii < qtPoints; ii++) { FreqEnergy += sq(abs(sfftM.fOptSignalX[ii])) +sq(abs(sfftM.fOptSignalY[ii])); } } else { for (int ii = 0; ii < qtPoints; ii++) { FreqEnergy += sq(abs(sfftM.fOptSignalX[ii])); } }
cout << "Time domain Average Power [W]: " << Energy*DeltaTime/TimeWindow << " Freq domain Average Power [W]: " << FreqEnergy << endl << endl;
References Linear2dBm(), sq(), and VECTOR.
void OptSignal::WriteAveragePulseWidth | ( | double | PropagatedLength, | |
int | WriteFlag | |||
) |
Calls OptSignal::GetSigmaSqOptSignal().
References AveragePulseWidthFile, GetSigmaSqOptSignal(), and sqrt().
Referenced by OptDataWriter::WriteEndMap(), and OptDataWriter::WriteWithinMap().
void OptSignal::WriteChirp | ( | string | outFile | ) |
References DeltaTime, GetChirp(), and qtPoints.
void OptSignal::WriteComplexFields | ( | string | OutFileName, | |
int | ForRestartFlag | |||
) |
Writes to a file: Complex fields real(tX), imag(tX), real(tY), imag(tY)
References DeltaTime, qtPoints, sfftM, fftMatrices::tOptSignalX, and fftMatrices::tOptSignalY.
Referenced by OptDataWriter::WriteEndTransmission(), and NoiseCovariance::WriteFileNoiseFreeSignalAndCovarianceMatrix().
void OptSignal::WriteComplexFieldsFreq | ( | string | OutFileName | ) |
Writes to a file: Complex fields real(fX), imag(fX), real(fY), imag(fY). Uses OptSignal::fftshift to put DC term in center
References DeltaFreq, fft, cfftw::fftshift(), fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, FreqWindow, cfftw::ifftshift(), qtPoints, and sfftM.
Referenced by NoiseCovariance::WriteFileNoiseFreeSignalAndCovarianceMatrix().
void OptSignal::WriteComplexFieldsX | ( | string | OutFileName, | |
int | ForRestartFlag | |||
) |
Writes to a file: Complex fields real(tX), imag(tX).
References DeltaTime, qtPoints, sfftM, and fftMatrices::tOptSignalX.
void OptSignal::WriteDegreeOfPolarization | ( | double | PropLength, | |
double | RelMinFreq, | |||
double | RelMaxFreq | |||
) |
void OptSignal::WriteDistTimeCplxWave | ( | string | outFile, | |
double | distance, | |||
int | appendFlag | |||
) |
Writes out real and imaginary parts of SCALAR signal as function of distance and time
References DeltaTime, jc, qtPoints, sfftM, fftMatrices::tOptSignalX, TypeSimulation, and VECTOR.
void OptSignal::WriteDistTimePower | ( | string | outFile, | |
int | timeIndexIncrement, | |||
double | distance, | |||
int | appendFlag | |||
) |
References DeltaTime, qtPoints, sfftM, sq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by OptDataWriter::WriteEndMap(), OptDataWriter::WriteInitialData(), and OptDataWriter::WriteWithinMap().
void OptSignal::WriteDistTimePowerPhase | ( | string | outFile, | |
int | timeIndexIncrement, | |||
double | distance, | |||
int | appendFlag | |||
) |
Writes to file with name outFile the power and phase of the optical signal as a function of propagation distance and time
For VECTOR signals the phase of both X and Y polarizations is output.
File format (column-wise): Distance [m], Time [s], OpticalPower [W], X-Phase (Y-Phase) [rad]
Method can be called at several distances. On first call set appendFlag = false, otherwsie set appendFlag = true
References DeltaTime, GetPhase(), qtPoints, sfftM, sq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by OptDataWriter::WriteEndMap(), OptDataWriter::WriteInitialData(), and OptDataWriter::WriteWithinMap().
void OptSignal::WriteFileComplexFieldsTimeAndFreq | ( | string | OutFileName | ) |
Writes all complex fields to a file for quick restart.
Writes 8 columns of data to file with name OutFileName Real and Imaginery parts of X and Y polarizations for time and frequency data. Use with OptSignal::ReadFileComplexFieldsTimeAndFreq(string InFileName)
References fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, qtPoints, sfftM, fftMatrices::tOptSignalX, and fftMatrices::tOptSignalY.
void OptSignal::WriteFileFreqPower | ( | string | outFile, | |
int | TypeOutputFlag | |||
) |
Writes wavelength data to a file according to the format specified by TypeOutputFlag. IL_Jun03
Writes frequency data to a file according to the format specified by TypeOutputFlag.
TypeOutputFlag,: |
|
This method is backward compatible with void OptSignal::WriteFileFreqPower(string outFile,int OmitDCFlag) which just did cases 0 and 1 for TypeOutputFlag.
JZAug02
References DeltaFreq, fft, cfftw::fftshift(), fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, FreqWindow, cfftw::ifftshift(), qtPoints, sfftM, sq(), TypeSimulation, and VECTOR.
void OptSignal::WriteFileFreqPower | ( | string | outFile | ) |
Writes to a file: Time in column 1 and Power Spectral Density in column 2
References DeltaFreq, fft, cfftw::fftshift(), fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, FreqWindow, cfftw::ifftshift(), qtPoints, sfftM, sq(), TypeSimulation, and VECTOR.
Referenced by ChiSquareReceiver::ComputeTimeIndependentPartOfFilterMatrix(), OptDataWriter::WriteEndTransmission(), NoiseCovariance::WriteFileAWGNNoiseFreeSignalAndNoiseSpectralDensity(), OptFilter::WriteFilterImpulseResponse(), and OptDataWriter::WriteInitialData().
void OptSignal::WriteFileFreqPowerdBm | ( | string | OutFileName | ) |
Outputs power spectral density [W/Hz] in dBm to a file See FFTandNLSConventions.pdf for definition
References DeltaFreq, fft, cfftw::fftshift(), fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, FreqWindow, cfftw::ifftshift(), Linear2dBm(), qtPoints, sfftM, sq(), TypeSimulation, and VECTOR.
void OptSignal::WriteFileTimeAmpPhase | ( | string | outFile | ) |
Writes amplitude and phase of SCALAR complex wave in time domain to a file
References DeltaTime, GetPhase(), qtPoints, sfftM, fftMatrices::tOptSignalX, TypeSimulation, and VECTOR.
void OptSignal::WriteFileTimePower | ( | string | outFile | ) |
Writes to a file: Time in column 1 and Optical Power in column 2.
References DeltaTime, qtPoints, sfftM, sq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, TypeSimulation, and VECTOR.
Referenced by ChiSquareReceiver::ComputeTimeIndependentPartOfFilterMatrix(), OptDataWriter::WriteEndTransmission(), NoiseCovariance::WriteFileAWGNNoiseFreeSignalAndNoiseSpectralDensity(), OptFilter::WriteFilterImpulseResponse(), and OptDataWriter::WriteInitialData().
void OptSignal::WriteFileWavelengthPower | ( | string | outFile | ) |
Writes frequency data to a file according to the format specified by TypeOutputFlag. JZAug02
References CenterFreq, DeltaFreq, fft, cfftw::fftshift(), fftMatrices::fOptSignalX, fftMatrices::fOptSignalY, Frequency2Wavelength(), FreqWindow, cfftw::ifftshift(), qtPoints, sfftM, sq(), TypeSimulation, and VECTOR.
void OptSignal::WriteFreqPhaseX | ( | string | OutFileName | ) |
Write Phase of X polarization versus Frequency to a file. Uses OptSignal::fftshift to put DC term in center
References DeltaFreq, fft, cfftw::fftshift(), fftMatrices::fOptSignalX, FreqWindow, GetPhase(), cfftw::ifftshift(), qtPoints, and sfftM.
void OptSignal::WriteLocalFrequencyAndChirp | ( | string | outFile | ) |
Writes out LocalFrequency and Chirp as function of time by making calls to OptSignal::GetLocalFrequency() and OptSignal::GetChirp()
References ComputeMaxPower(), DeltaTime, GetChirp(), GetLocalFrequency(), qtPoints, SCALAR, sfftM, sq(), fftMatrices::tOptSignalX, and TypeSimulation.
Referenced by OptDataWriter::WriteEndTransmission(), and OptDataWriter::WriteInitialData().
void OptSignal::WritePowerdBmChannel | ( | string | OutFileName, | |
double | distance, | |||
int | appendFlag, | |||
int | ChannelArrayIndex | |||
) |
void OptSignal::WritePowerdBmFreqWindow | ( | string | OutFileName, | |
double | distance, | |||
int | appendFlag, | |||
double | LeftFreq, | |||
double | RightFreq | |||
) |
References cerror(), Linear2dBm(), and sq().
const char * OptSignal::WriteTypePulse | ( | void | ) |
References BPSK_MACH_ZEHNDER, BPSK_PHASE_MOD, CRZ_GAUSS, CRZ_RCOS, CRZ_SIN_MZ, CSRZ_MACH_ZEHNDER, CW, INPUT_SIGNAL_FROM_FILE, NRZ, NRZ_RCOS_MACH_ZEHNDER, QPSK_CW, QPSK_DPMZ_PM_AM_RZ33, QPSK_DPMZ_PM_AM_RZ50, QPSK_DPMZ_PM_NRZ, QPSK_RZ_GAUSS, QPSK_SEQ_PM_AM_RZ33, QPSK_SEQ_PM_AM_RZ50, QPSK_SEQ_PM_NRZ, RZ33_MACH_ZEHNDER, RZ50_MACH_ZEHNDER, RZ_GAUSS, RZ_GAUSS_PATTERN, RZ_SECH, TypePulse, and UMBC_RZ.
Referenced by ConstructOptSignal(), and OptSignal().
Addition operator: Signal3 = Signal1 + Signal2.
Adds data as well as adding BitStrings using method OptSignal::AddBitStrings()
double OptSignal::AccumulatedFirstOrderDispersion [private] |
AccumulatedFirstOrderDispersion is integral of beta'' in units s^2. It is measured at the central frequency. It's value is updated by the OptFiberLocalError or OptFiber class after each z-step is taken by the NLS solver. This works out fine as the Signal is passed to each optical fiber. There are methods in the Signal class to reset to zero and to write out the parameter to a file as a function of z. CAUTION: At the moment the updates are are being done by the OptFiberLocalError class not the OptFiber class. Feel free to write the code for OptFiber if you like! (JZ, Feb 8th, 2001)
AccumulatedSecondOrderDispersion is integral of beta''' in units s^3.
Referenced by ConstructOptSignal(), operator=(), OptSignal(), and WriteAccumulatedFirstOrderDispersion().
ofstream OptSignal::AccumulatedFirstOrderDispersionFile [private] |
double OptSignal::AccumulatedSecondOrderDispersion [private] |
Referenced by ConstructOptSignal(), operator=(), and OptSignal().
double OptSignal::AccumulatedTotalNoiseSpectralDensityGaussianStatistics [private] |
Required when using the semi-analytical noise transmission and receiver model (JZ, Dec 19, 2002)
When using the semi-analytical noise transmission and receiver model we need to keep track of the TotalNoiseSpectralDensity in W/Hz, which is automatically updated by each OptAmplifier, OptFiberLocalError, and LumpedLoss object. (Note that I haven't implemented this for the OptFiber class.) For simplicity for now we assume that the noise is unpolarized and so we have not worried about keeping track of the polarization states of the noise and how they are affected by polarization sensitive devices and fibers.
Note that
TotalNoiseSpectralDensity = 2*NoiseSpectralDensityPerPolarization.
A major reason for keeping track of TotalNoiseSpectralDensity is to ensure that the VECTOR_SATURATED and VECTOR_FIXED_TOTAL_OUTPUT_POWER amplifiers work correctly.
If we want to model partially polarized noise it would be better to link the reduced model directly to the full model.
Referenced by ConstructOptSignal(), InitializeFirstOrderPMDSignal(), operator=(), OptSignal(), RegenerateSignalString(), and SetBitRateChannBM().
ofstream OptSignal::AveragePulseWidthFile [private] |
Referenced by CloseAveragePulseWidthFile(), OpenAveragePulseWidthFile(), and WriteAveragePulseWidth().
double OptSignal::BitLength [private] |
The time length in seconds of a bit.
Referenced by ComputeAverageChirpOfMarks(), ComputeAverageSigmaMarks(), ConstructOptSignal(), EOM_GenerateRaisedCosineBinaryElecData(), EOM_GenerateSmoothedRectBinaryElecDataArctanh(), EOM_GenerateSmoothedRectBinaryElecDataSuperGauss(), EOM_SuperGauss(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringQPSK_Gaussian(), GenerateSignalStringRaisedCosines(), GenerateSignalStringRaisedCosinesWithPhaseShift(), GenerateSignalStringRZGaussianPattern(), GenerateSignalStringUsingInputSequence(), InitializeFirstOrderPMDSignal(), operator=(), OptSignal(), RaisedCosineForNRZ_RCOS_MZ(), and SetBitRateChannBM().
double OptSignal::BitRateChann [private] |
Referenced by ComputeRelevantNumModesOFLE(), ConstructOptSignal(), GenerateSignalStringCSRZMachZehnderModulator(), GenerateSignalStringCSRZMachZehnderModulatorOLD(), GenerateSignalStringQPSK_DPMZ_PM_AM_RZ33(), GenerateSignalStringQPSK_DPMZ_PM_AM_RZ50(), GenerateSignalStringQPSK_SEQ_PM_AM_RZ33(), GenerateSignalStringQPSK_SEQ_PM_AM_RZ50(), GenerateSignalStringRaisedCosines(), GenerateSignalStringRaisedCosinesWithPhaseShift(), GenerateSignalStringRZ33MachZehnderModulator(), GenerateSignalStringRZ33MachZehnderModulatorOLD(), GenerateSignalStringRZ50MachZehnderModulator(), GenerateSignalStringRZ50MachZehnderModulatorOLD(), operator=(), OptSignal(), and SetBitRateChannBM().
double OptSignal::CenterFreq [private] |
Referenced by AddCWSignal(), ChangeAbsoluteCenterFreq(), ConstructOptSignal(), EOM_MachZehnderModulatorElecNRZ(), EOM_MachZehnderModulatorOptNRZOLD(), EOM_PhaseModulator(), GenerateImpulseSignal(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringNRZ_RCOS_MachZehnderModulator(), GenerateSignalStringQPSK_CW(), GenerateSignalStringQPSK_DPMZ_PM_NRZ(), GenerateSignalStringQPSK_Gaussian(), GenerateSignalStringQPSK_SEQ_PM_NRZ(), GenerateSignalStringRaisedCosines(), GenerateSignalStringRaisedCosinesWithPhaseShift(), GenerateSignalStringRZGaussianPattern(), GenerateSignalStringUsingInputSequence(), GetAveragePowerFreqDomainInsideChannel(), GetAveragePowerFreqDomainInsideChannels(), GetRelativeCenterFrequency(), InitializeFirstOrderPMDSignal(), operator=(), OptSignal(), and WriteFileWavelengthPower().
double OptSignal::CenterWavelength [private] |
Referenced by ConstructOptSignal(), operator=(), OptSignal(), and WriteAccumulatedFirstOrderDispersion().
double OptSignal::ChannSpacing [private] |
double OptSignal::ChirpParameter [private] |
Referenced by ConstructOptSignal(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringNRZ_RCOS_MachZehnderModulator(), GenerateSignalStringRaisedCosines(), GenerateSignalStringRaisedCosinesWithPhaseShift(), InitializeFirstOrderPMDSignal(), operator=(), and OptSignal().
bool OptSignal::ComputeInputPDVectorFlagOFLE [private] |
Input parameter that specifies whether or not to compute the input polarization dispersion vector using the method OptFiberLocalError::GetInputPDVector. Default value is 0.
Referenced by ConstructOptSignal(), operator=(), OptSignal(), and ResetPDVectorOFLE().
bool OptSignal::ComputeRelevantNumModesOFLEFlag [private] |
Flag to compute RelevantNumModesOFLE
Referenced by ComputeRelevantNumModesOFLE(), ConstructOptSignal(), operator=(), and OptSignal().
int OptSignal::DebugLevel [private] |
DebugLevel.
DebugLevel
Referenced by AddSignals(), ComputeMeanTimePulse(), ComputeRelevantNumModesOFLE(), ComputeSigmaSqTimeWindow(), ConstructOptSignal(), GenerateSignalStringUsingInputSequence(), InitializeInStokes(), operator=(), OptSignal(), SetBandwidthForRelevantNumModesOFLE(), and SetFrequency().
ofstream OptSignal::DegreeOfPolarizationFile [private] |
Referenced by CloseDegreeOfPolarizationFile(), OpenDegreeOfPolarizationFile(), and WriteDegreeOfPolarization().
double OptSignal::DeltaFreq [private] |
Referenced by ChangeAbsoluteCenterFreq(), ComputeRelevantNumModesOFLE(), ConstructOptSignal(), GetAveragePowerFreqDomainInsideChannel(), GetAveragePowerFreqDomainInsideChannels(), GetDegreeOfPolarization(), GetTotalStokesParametersInBandwidth(), operator=(), OptSignal(), SetBandwidthForRelevantNumModesOFLE(), SetBitRateChannBM(), WriteComplexFieldsFreq(), WriteFileFreqPower(), WriteFileFreqPowerdBm(), WriteFileWavelengthPower(), and WriteFreqPhaseX().
double OptSignal::DeltaTime [private] |
Referenced by AddCWSignal(), ComputeAverageChirpOfMarks(), ComputeFWHMPulsePower(), ComputeMeanPhasePulse(), ComputeMeanTimePulse(), ComputeRMSPulseWidth(), ComputeSigmaSqTimeWindow(), ConstructOptSignal(), DampBounds(), EOM_GenerateRaisedCosineBinaryElecData(), EOM_GenerateSmoothedRectBinaryElecDataArctanh(), EOM_GenerateSmoothedRectBinaryElecDataSuperGauss(), EOM_MachZehnderModulatorElecNRZ(), EOM_MachZehnderModulatorOptData(), EOM_MachZehnderModulatorOptNRZOLD(), EOM_PhaseModulator(), EOM_SinusoidallyModulateElecData(), EOM_WriteFileElecData(), GenerateSignalStringCSRZMachZehnderModulator(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringNRZ_RCOS_MachZehnderModulator(), GenerateSignalStringQPSK_CW(), GenerateSignalStringQPSK_DPMZ_PM_AM_RZ33(), GenerateSignalStringQPSK_DPMZ_PM_AM_RZ50(), GenerateSignalStringQPSK_DPMZ_PM_NRZ(), GenerateSignalStringQPSK_Gaussian(), GenerateSignalStringQPSK_SEQ_PM_AM_RZ33(), GenerateSignalStringQPSK_SEQ_PM_AM_RZ50(), GenerateSignalStringQPSK_SEQ_PM_NRZ(), GenerateSignalStringRaisedCosines(), GenerateSignalStringRaisedCosinesWithPhaseShift(), GenerateSignalStringRZ33MachZehnderModulator(), GenerateSignalStringRZ50MachZehnderModulator(), GenerateSignalStringRZGaussianPattern(), GenerateSignalStringUsingInputSequence(), GetAutocorrelationFunctionOptSignalX(), GetCeilIndex(), GetChirp(), GetEnergyInBitSlot(), GetEnergyInTimeRange(), GetFloorIndex(), GetImagX(), GetImagY(), GetLocalFrequency(), GetRealX(), GetRealY(), GetSigmaSqOptSignal(), InitializeFirstOrderPMDSignal(), operator=(), OptSignal(), SetBitRateChannBM(), WriteChirp(), WriteComplexFields(), WriteComplexFieldsX(), WriteDistTimeCplxWave(), WriteDistTimePower(), WriteDistTimePowerPhase(), WriteFileTimeAmpPhase(), WriteFileTimePower(), and WriteLocalFrequencyAndChirp().
double OptSignal::EOM_ElecFilter_FreqFWHM [private] |
Referenced by ConstructOptSignal(), EOM_FilterElecData(), operator=(), and OptSignal().
double OptSignal::EOM_Phi_10_RelError [private] |
Referenced by ConstructOptSignal(), EOM_MachZehnderModulatorElecNRZ(), operator=(), OptSignal(), and SetEOM_Phi_10_RelError().
double OptSignal::EOM_Phi_20_RelError [private] |
Referenced by ConstructOptSignal(), EOM_MachZehnderModulatorElecNRZ(), operator=(), OptSignal(), and SetEOM_Phi_20_RelError().
double OptSignal::EOM_RiseTime [private] |
Referenced by ConstructOptSignal().
fftPowerMatrices OptSignal::EOM_sfftPM [private] |
Referenced by ConstructOptSignal(), EOM_FilterElecData(), EOM_GeneratePerfectRectBinaryElecData(), EOM_GenerateRaisedCosineBinaryElecData(), EOM_GenerateSmoothedRectBinaryElecDataArctanh(), EOM_GenerateSmoothedRectBinaryElecDataSuperGauss(), EOM_MachZehnderModulatorElecNRZ(), EOM_MachZehnderModulatorOptNRZOLD(), EOM_PhaseModulator(), EOM_SinusoidallyModulateElecData(), EOM_WriteFileElecData(), GenerateSignalStringNRZ_RCOS_MachZehnderModulator(), GenerateSignalStringQPSK_CW(), GenerateSignalStringQPSK_DPMZ_PM_NRZ(), GenerateSignalStringQPSK_SEQ_PM_NRZ(), operator=(), OptSignal(), and ~OptSignal().
fftPowerMatrices OptSignal::EOM_sfftPM1 [private] |
fftPowerMatrices OptSignal::EOM_sfftPM2 [private] |
double OptSignal::EOM_ShiftAmt [private] |
Referenced by ConstructOptSignal(), EOM_GenerateSmoothedRectBinaryElecDataArctanh(), operator=(), and OptSignal().
double OptSignal::EOM_SinusoidalVertShift_RelError [private] |
double OptSignal::EOM_SlopeFactor [private] |
int OptSignal::EOM_SuperGaussExponent [private] |
Referenced by ConstructOptSignal(), EOM_SuperGauss(), operator=(), and OptSignal().
double OptSignal::EOM_V_pi_RelError [private] |
Referenced by ConstructOptSignal(), EOM_MachZehnderModulatorElecNRZ(), operator=(), OptSignal(), and SetEOM_V_pi_RelError().
Referenced by PostDispCompSubSystem::AdditionalDemuxFiltering(), ComputeMeanFreqSignal(), ComputeRMSSpectralWidth(), ChiSquareReceiver::ComputeTimeIndependentPartOfFilterMatrix(), ConstructOptSignal(), EOM_ElectricalFilterBessel4(), EOM_ElectricalFilterGaussian(), EOM_FilterElecData(), EOM_GeneratePerfectRectBinaryElecData(), EOM_GenerateRaisedCosineBinaryElecData(), EOM_GenerateSmoothedRectBinaryElecDataArctanh(), EOM_GenerateSmoothedRectBinaryElecDataSuperGauss(), EOM_SinusoidallyModulateElecData(), OptDemuxer::ExtractChannel(), OptDemuxer::ExtractChannelCenterFreq(), OptDemuxer::ExtractSingleChannel(), fftshift(), Freq2Time(), Freq2TimeScalar(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringRZGaussianPattern(), GenerateSignalStringUsingInputSequence(), GetAveragePowerFreqDomainInsideChannel(), GetAveragePowerFreqDomainInsideChannels(), GetDegreeOfPolarization(), GetTotalStokesParametersInBandwidth(), ifftshift(), ElecSignalStat::InitElecSignalStat(), InitializeFirstOrderPMDSignal(), MachZehnder::MachZehnder(), NoiseCovariance::NoiseCovariance(), OptAmplifier::OptAmplifier(), OptFiber::OptFiber(), OptFiberLocalError::OptFiberLocalError(), OptFilter::OptFilter(), OptSignal(), OptSpectrumAnalyzer::OptSpectrumAnalyzer(), RamanAmp::RamanAmp(), SaturableAbsorber::SaturableAbsorber(), SetBitRateChannBM(), Photodetector::SetOptSignal(), OptSpectrumAnalyzer::SwitchOptSignalData(), OptFilter::SwitchOptSignalData(), OptFiber::SwitchOptSignalData(), OptAmplifier::SwitchOptSignalData(), Time2Freq(), Time2FreqScalar(), WriteComplexFieldsFreq(), WriteFileFreqPower(), WriteFileFreqPowerdBm(), WriteFileWavelengthPower(), WriteFreqPhaseX(), RamanAmp::WriteSignalNoise(), and ~OptSignal().
double OptSignal::FreqForPDVectorOFLE [private] |
For OptFiberLocalError we keep track of the Polarization dispersion vector at the frequency given by FreqForPDVectorOFLE.
This frequency is an absolute frequency
FreqForPDVectorOFLE = RelFreqForPDVector + CenterFreq, where
OptSignal::RelFreqForPDVector is an optional input parameter whose default value is 0.
Referenced by ConstructOptSignal(), operator=(), and OptSignal().
double* OptSignal::Frequency [private] |
Array of length OptSignal::NumChannels which stores frequency of each channel in Hz
Referenced by AddSignalBM(), ConstructOptSignal(), GetAveragePowerFreqDomainInsideChannel(), GetAveragePowerFreqDomainInsideChannels(), GetFrequency(), GetRelativeCenterFrequency(), GetWavelength(), operator=(), OptSignal(), SetFrequency(), and ~OptSignal().
double OptSignal::FreqWindow [private] |
Referenced by ComputeMeanFreqSignal(), ConstructOptSignal(), FreqShiftSignal(), GetDegreeOfPolarization(), GetTotalStokesParametersInBandwidth(), operator=(), OptSignal(), SetBitRateChannBM(), WriteComplexFieldsFreq(), WriteFileFreqPower(), WriteFileFreqPowerdBm(), WriteFileWavelengthPower(), and WriteFreqPhaseX().
double OptSignal::FWHM_Pulse [private] |
Referenced by ConstructOptSignal(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringQPSK_Gaussian(), GenerateSignalStringRZGaussianPattern(), GenerateSignalStringUsingInputSequence(), InitializeFirstOrderPMDSignal(), operator=(), and OptSignal().
cplx* OptSignal::InJones [private] |
Pointer to a 1D array of length NumChannels*2 which stores the Jones parameters for each channel. Accessed using the methods OptSignal::SetInJones(), OptSignal::GetInJones()
Referenced by ConstructOptSignal(), GetInJones(), OptSignal(), SetInJones(), and ~OptSignal().
double* OptSignal::InputPDVectorOFLE |
Input polarization dispersion vector used in the class OptFiberLocalError
Referenced by ConstructOptSignal(), operator=(), OptSignal(), and ResetPDVectorOFLE().
string OptSignal::InputSequenceFileName [private] |
Referenced by ConstructOptSignal(), and GenerateSignalStringUsingInputSequence().
string OptSignal::InputTimeDataFileName [private] |
Referenced by ConstructOptSignal(), and InputTimeDataFromFile().
double* OptSignal::InStokes [private] |
Pointer to a 1D array of length NumChannels*4 which stores the Stokes parameters for each channel. Accessed using the methods OptSignal::SetInStokes(), OptSignal::GetInStokes()
Referenced by ConstructOptSignal(), GetInStokes(), OptSignal(), SetInStokes(), and ~OptSignal().
double OptSignal::LinearExtinctionRatio [private] |
Referenced by ConstructOptSignal(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringRaisedCosines(), GenerateSignalStringRaisedCosinesWithPhaseShift(), GenerateSignalStringRZGaussianPattern(), GenerateSignalStringUsingInputSequence(), operator=(), and OptSignal().
int OptSignal::MemAllocated [private] |
Referenced by ConstructOptSignal(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringRaisedCosines(), GenerateSignalStringRaisedCosinesWithPhaseShift(), GenerateSignalStringRZGaussianPattern(), GenerateSignalStringUsingInputSequence(), operator=(), OptSignal(), and ~OptSignal().
double OptSignal::NoiseBandwidthGaussianStatistics [private] |
The bandwidth of the noise as used in the semi-analytical noise transmission and receiver model (in Hz)
Referenced by ConstructOptSignal(), operator=(), and OptSignal().
int OptSignal::NumChannels [private] |
Referenced by AddReducedNoiseToNoiseFreeSignal(), AddSignalBM(), AddSignals(), ComputeRelevantNumModesOFLE(), ConstructOptSignal(), EOM_MachZehnderModulatorElecNRZ(), EOM_MachZehnderModulatorOptNRZOLD(), EOM_PhaseModulator(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringNRZ_RCOS_MachZehnderModulator(), GenerateSignalStringQPSK_CW(), GenerateSignalStringQPSK_DPMZ_PM_NRZ(), GenerateSignalStringQPSK_Gaussian(), GenerateSignalStringQPSK_SEQ_PM_NRZ(), GenerateSignalStringRaisedCosines(), GenerateSignalStringRaisedCosinesWithPhaseShift(), GenerateSignalStringRZGaussianPattern(), GenerateSignalStringUsingInputSequence(), GetAveragePowerFreqDomainInsideChannels(), ImportOptSignal(), InitializeFirstOrderPMDSignal(), InitializeInStokes(), operator=(), OptSignal(), ReduceToSingleChannel(), ResetJonesMatrix(), SetNumberChannelsForDemuxer(), SetNumChannels(), and SetRandomJonesVectors().
A BitString object.
Referenced by AddSignalBM(), AddSignals(), ComputeAverageChirpOfMarks(), ElecSignalStat::ComputeAveragePDFs(), GaussianReceiver::ComputeAveragePDFs(), ChiSquareReceiver::ComputeAveragePDFs(), ComputeAverageSigmaMarks(), ChiSquareReceiver::ComputeGaussianPDFsAndBER(), ConstructOptSignal(), EOM_GeneratePerfectRectBinaryElecData(), EOM_GenerateRaisedCosineBinaryElecData(), EOM_GenerateSmoothedRectBinaryElecDataArctanh(), EOM_GenerateSmoothedRectBinaryElecDataSuperGauss(), OptDemuxer::ExtractChannel(), OptDemuxer::ExtractChannelCenterFreq(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringQPSK_CW(), GenerateSignalStringQPSK_DPMZ_PM_NRZ(), GenerateSignalStringQPSK_Gaussian(), GenerateSignalStringQPSK_SEQ_PM_NRZ(), GenerateSignalStringRaisedCosines(), GenerateSignalStringRaisedCosinesWithPhaseShift(), GenerateSignalStringRZGaussianPattern(), GenerateSignalStringUsingInputSequence(), ElecSignalStat::GetBit(), ElecSignalStat::GetBitFromString(), GetChannelArrayIndex(), GetChannelPhysicalIndex(), ElecSignalStat::GetMeanCurrentIsolatedBit0(), ElecSignalStat::GetMeanCurrentIsolatedBit1(), GetNewRandomSignalString(), ElecSignalStat::GetTargetIndexTimeBestMinEyeOpening(), ElecSignalStat::GetTargetIndexTimeBestQ_Factor(), ImportOptSignal(), ElecSignalStat::InitElecSignalStat(), InitializeFirstOrderPMDSignal(), MachZehnder::MachZehnder(), operator=(), OptSignal(), PolarizBeamSplitter::PolarizSplitOptSignal(), OptDemuxer::PrepareToDemuxChannel(), PulseEvolutionAnalyzer::PulseEvolutionAnalyzer(), ReduceToSingleChannel(), SetNumberChannelsForDemuxer(), SetNumChannels(), BeamSplitter::SplitOptSignalScalar(), ElecSignalStat::UpdateEqualizedPerformanceStatistics(), ElecSignalStat::UpdateMoments(), ElecSignalStat::UpdatePatternStats(), ElecSignalStat::UpdatePerformanceStatistics(), and ~OptSignal().
Common work space which is used by all OptFiberLocalError objects.
Referenced by AllocateOptFiberLocalErrorWorkSpace(), DeallocateOptFiberLocalErrorWorkSpace(), OptFiberLocalError::OptFiberLocalError(), and SaturableAbsorber::SaturableAbsorber().
double OptSignal::OptPowerChann [private] |
Referenced by ConstructOptSignal(), EOM_MachZehnderModulatorElecNRZ(), EOM_MachZehnderModulatorOptNRZOLD(), EOM_PhaseModulator(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringNRZ_RCOS_MachZehnderModulator(), GenerateSignalStringQPSK_CW(), GenerateSignalStringQPSK_DPMZ_PM_NRZ(), GenerateSignalStringQPSK_Gaussian(), GenerateSignalStringQPSK_SEQ_PM_NRZ(), GenerateSignalStringRaisedCosines(), GenerateSignalStringRaisedCosinesWithPhaseShift(), GenerateSignalStringRZGaussianPattern(), GenerateSignalStringUsingInputSequence(), InitializeFirstOrderPMDSignal(), operator=(), and OptSignal().
A reduced optical signal, to track the Stokes parameters of noise (and signal) in each channel. Within OptSignal class it is set up to work with GaussianReceiver Only works for ONE channel for now. (See OptSignal::ReduceToSingleChannel())
Referenced by AddReducedNoiseToNoiseFreeSignal(), ConstructOptSignal(), LumpedLoss::InitLumpedLoss(), operator=(), OptAmplifier::OptAmplifier(), OptSignal(), Polarizer::Polarizer(), PolarizTransformer::PolarizTransformer(), GaussianReceiver::ReceiveSignalDGD_NoisePartiallyPolarized(), RegenerateSignalString(), SetNumChannels(), and ~OptSignal().
double* OptSignal::OutputPDVectorOFLE |
Output polarization dispersion vector used in the class OptFiberLocalError
For OptFiberLocalError class we keep track of the Polarization dispersion vector at the frequency given by FreqForPDVectorOFLE. OutputPDVectorOFLE and InputPDVectorOFLE are initialized to 0 when we Regenerate the signal, assuming DGD = 0 then. (JZ, Jan 25th 2002)
Referenced by ConstructOptSignal(), operator=(), OptFiberLocalError::OptFiberLocalError(), OptSignal(), and ResetPDVectorOFLE().
int OptSignal::qtPoints [private] |
Referenced by AddCWSignal(), AddFreqDomain(), AddSignalBM(), AddSignals(), AllocateOptFiberLocalErrorWorkSpace(), ChangeAbsoluteCenterFreq(), ChangeAveragePowerChannCurrentSignal(), ComputeAverageChirpOfMarks(), ComputeFWHMPulsePower(), ComputeMaxPower(), ComputeMeanFreqSignal(), ComputeMeanPhasePulse(), ComputeMeanTimePulse(), ComputeRelevantNumModesOFLE(), ComputeRMSPulseWidth(), ComputeRMSSpectralWidth(), ComputeSigmaSqTimeWindow(), ConstantPhaseShift(), ConstructOptSignal(), DampBounds(), EliminateX_Polarization(), EliminateY_Polarization(), EOM_GeneratePerfectRectBinaryElecData(), EOM_GenerateRaisedCosineBinaryElecData(), EOM_GenerateSmoothedRectBinaryElecDataArctanh(), EOM_GenerateSmoothedRectBinaryElecDataSuperGauss(), EOM_MachZehnderModulatorElecNRZ(), EOM_MachZehnderModulatorOptData(), EOM_MachZehnderModulatorOptNRZOLD(), EOM_PhaseModulator(), EOM_SinusoidallyModulateElecData(), EOM_WriteFileElecData(), FreqShiftSignal(), GenerateImpulseSignal(), GenerateSignalStringCSRZMachZehnderModulator(), GenerateSignalStringCSRZMachZehnderModulatorOLD(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringNRZ_RCOS_MachZehnderModulator(), GenerateSignalStringQPSK_CW(), GenerateSignalStringQPSK_DPMZ_PM_AM_RZ33(), GenerateSignalStringQPSK_DPMZ_PM_AM_RZ50(), GenerateSignalStringQPSK_DPMZ_PM_NRZ(), GenerateSignalStringQPSK_Gaussian(), GenerateSignalStringQPSK_SEQ_PM_AM_RZ33(), GenerateSignalStringQPSK_SEQ_PM_AM_RZ50(), GenerateSignalStringQPSK_SEQ_PM_NRZ(), GenerateSignalStringRaisedCosines(), GenerateSignalStringRaisedCosinesWithPhaseShift(), GenerateSignalStringRZ33MachZehnderModulator(), GenerateSignalStringRZ33MachZehnderModulatorOLD(), GenerateSignalStringRZ50MachZehnderModulator(), GenerateSignalStringRZ50MachZehnderModulatorOLD(), GenerateSignalStringRZGaussianPattern(), GenerateSignalStringUsingInputSequence(), GetAutocorrelationFunctionOptSignalX(), GetAveragePowerFreqDomain(), GetAveragePowerFreqDomainInsideChannel(), GetAveragePowerFreqDomainInsideChannels(), GetCeilIndex(), GetChirp(), GetDegreeOfPolarization(), GetEnergyInTimeRange(), GetLocalFrequency(), GetSigmaSqOptSignal(), GetTotalStokesParameters(), GetTotalStokesParametersInBandwidth(), GetTotalStokesParametersInTime(), ImportOptSignal(), InitializeFirstOrderPMDSignal(), operator-(), operator=(), OptSignal(), ReadComplexFields(), ReadComplexFieldsX(), ReadFileComplexFieldsTimeAndFreq(), ScaleSignal(), SetBandwidthForRelevantNumModesOFLE(), SetBitRateChannBM(), SubtractFreqDomain(), SwitchXandYPolarizations(), TimeShiftSignal(), WriteChirp(), WriteComplexFields(), WriteComplexFieldsFreq(), WriteComplexFieldsX(), WriteDistTimeCplxWave(), WriteDistTimePower(), WriteDistTimePowerPhase(), WriteFileComplexFieldsTimeAndFreq(), WriteFileFreqPower(), WriteFileFreqPowerdBm(), WriteFileTimeAmpPhase(), WriteFileTimePower(), WriteFileWavelengthPower(), WriteFreqPhaseX(), and WriteLocalFrequencyAndChirp().
double* OptSignal::QuadratureWorkSpace |
Work space used for calculation of integrals using the Quadrature method in ocsTools.hh
Referenced by ComputeMeanFreqSignal(), ComputeMeanPhasePulse(), ComputeMeanTimePulse(), ComputeRMSPulseWidth(), ConstructOptSignal(), GetEnergyInTimeRange(), OptSignal(), and ~OptSignal().
bool OptSignal::RandomPolarizationsFlag [private] |
Randomize input polarization states for different channels and different Monte Carlo runs
Referenced by ConstructOptSignal(), operator=(), OptSignal(), and SetRandomJonesVectors().
int OptSignal::RelevantNumModesOFLE [private] |
The number of modes used to compute the Local Error in the OptFiberLocalError class. Default value if qtPoints.
Referenced by ComputeRelevantNumModesOFLE(), operator=(), OptSignal(), and SetBandwidthForRelevantNumModesOFLE().
double OptSignal::RiseTime [private] |
Referenced by AddCWSignal(), AddFreqDomain(), PostDispCompSubSystem::AdditionalDemuxFiltering(), AddSignalBM(), AddSignals(), OptAmplifier::AmplifyAlternateOptSignalWithoutNoiseWithPrevioslyComputedGain(), ChangeAbsoluteCenterFreq(), ChangeAveragePowerChannCurrentSignal(), OptSpectrumAnalyzer::ComputeAveragePowerFreqWindow(), ComputeFWHMPulsePower(), ComputeMaxPower(), ComputeMeanFreqSignal(), ComputeMeanPhasePulse(), ComputeMeanTimePulse(), ComputeRMSPulseWidth(), ComputeRMSSpectralWidth(), ComputeSigmaSqTimeWindow(), ChiSquareReceiver::ComputeTimeIndependentPartOfFilterMatrix(), ConstantPhaseShift(), ConstructOptSignal(), DampBounds(), EliminateX_Polarization(), EliminateY_Polarization(), EOM_MachZehnderModulatorElecNRZ(), EOM_MachZehnderModulatorOptData(), EOM_MachZehnderModulatorOptNRZOLD(), EOM_PhaseModulator(), OptDemuxer::ExtractChannel(), OptDemuxer::ExtractChannelCenterFreq(), OptDemuxer::ExtractSingleChannel(), fftshift(), Freq2Time(), Freq2TimeScalar(), FreqShiftSignal(), Photodetector::GenerateImpulseCurrent(), GenerateImpulseSignal(), GenerateSignalStringCSRZMachZehnderModulator(), GenerateSignalStringCSRZMachZehnderModulatorOLD(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringNRZ_RCOS_MachZehnderModulator(), GenerateSignalStringQPSK_CW(), GenerateSignalStringQPSK_DPMZ_PM_AM_RZ33(), GenerateSignalStringQPSK_DPMZ_PM_AM_RZ50(), GenerateSignalStringQPSK_DPMZ_PM_NRZ(), GenerateSignalStringQPSK_Gaussian(), GenerateSignalStringQPSK_SEQ_PM_AM_RZ33(), GenerateSignalStringQPSK_SEQ_PM_AM_RZ50(), GenerateSignalStringQPSK_SEQ_PM_NRZ(), GenerateSignalStringRaisedCosines(), GenerateSignalStringRaisedCosinesWithPhaseShift(), GenerateSignalStringRZ33MachZehnderModulator(), GenerateSignalStringRZ33MachZehnderModulatorOLD(), GenerateSignalStringRZ50MachZehnderModulator(), GenerateSignalStringRZ50MachZehnderModulatorOLD(), GenerateSignalStringRZGaussianPattern(), GenerateSignalStringUsingInputSequence(), GetAutocorrelationFunctionOptSignalX(), GetAveragePowerFreqDomain(), GetAveragePowerFreqDomainInsideChannel(), GetAveragePowerFreqDomainInsideChannels(), GetChirp(), GetDegreeOfPolarization(), GetEnergyInTimeRange(), GetImagX(), GetImagY(), ElecSignalStat::GetIntegralForNoiseNoiseVarianceGaussianStatistics(), ElecSignalStat::GetIntegralForSignalNoiseVariance(), GetLocalFrequency(), ElecSignalStat::GetMeanASE_ASE(), ElecSignalStat::GetMeanNoiseGaussianStatistics(), OptFilter::GetPowerEquivalentSpectralWidth(), GetRealX(), GetRealY(), GetSigmaSqOptSignal(), ElecSignalStat::GetStdDevASE_ASE(), ElecSignalStat::GetStdDevSignal_ASE_TimeIndex(), GetTotalStokesParameters(), GetTotalStokesParametersInBandwidth(), GetTotalStokesParametersInTime(), ifftshift(), ImportOptSignal(), InitializeFirstOrderPMDSignal(), LumpedLoss::InitLumpedLoss(), PulseEvolutionAnalyzer::IsolatePulse(), MachZehnder::MachZehnder(), NoiseCovariance::NoiseCovariance(), operator-(), operator=(), OptAmplifier::OptAmplifier(), OptFiber::OptFiber(), OptFiberLocalError::OptFiberLocalError(), OptFilter::OptFilter(), OptSignal(), Polarizer::PolarizeOptSignal(), PolarizBeamSplitter::PolarizSplitOptSignal(), PolDepAttenuator::PolDepAttenuate(), RamanAmp::PropagateNoise(), RamanAmp::PropagateSignalandNoise(), OptAmplifier::PropagateSignalandNoise(), RamanAmp::RamanAmp(), ReadComplexFields(), ReadComplexFieldsX(), ReadFileComplexFieldsTimeAndFreq(), SaturableAbsorber::SaturableAbsorber(), ScaleSignal(), SetBitRateChannBM(), Photodetector::SetOptSignal(), BeamSplitter::SplitOptSignal(), BeamSplitter::SplitOptSignalScalar(), SubtractFreqDomain(), OptFilter::SwitchOptSignalData(), OptFiber::SwitchOptSignalData(), OptAmplifier::SwitchOptSignalData(), LumpedLoss::SwitchOptSignalData(), SwitchXandYPolarizations(), Time2Freq(), Time2FreqScalar(), TimeShiftSignal(), PolarizTransformer::TransformPolarization(), PolarizTransformer::UndoLastPolarizTransformation(), OptSpectrumAnalyzer::UpdateOSA(), OptSpectrumAnalyzer::UpdateOSA_OLD(), WriteComplexFields(), WriteComplexFieldsFreq(), WriteComplexFieldsX(), WriteDistTimeCplxWave(), WriteDistTimePower(), WriteDistTimePowerPhase(), WriteFileComplexFieldsTimeAndFreq(), WriteFileFreqPower(), WriteFileFreqPowerdBm(), WriteFileTimeAmpPhase(), WriteFileTimePower(), WriteFileWavelengthPower(), WriteFreqPhaseX(), WriteLocalFrequencyAndChirp(), ReceiverSemiAnalytical::WriteNoiseFreeOpticalSignalFreq(), RamanAmp::WriteSignalNoise(), and ~OptSignal().
The transpose of the 3x3 Stokes transfer matrix used in the class OptFiberLocalError
Only used if OptSignal::ComputeInputPDVectorFlagOFLE = true
Used to compute InputPDVectorOFLE from OutputPDVectorOFLE using the equation
InputPDVectorOFLE = StokesTransferMatrixTransposeOFLE*OutputPDVectorOFLE
For fiber with transfer matrix StokesTransferMatrix, the output Stokes vector s_out is related to the input Stokes vector s_in by
s_out = StokesTransferMatrix s_in.
With just PMD (no PDL, PDG), the inverse of StokesTransferMatrix is given by its transpose.
We store the transpose because it enables us to easily rotate its column vectors in OptFiberLocalError::PropagateStokesTransferMatrix.
Referenced by ConstructOptSignal(), operator=(), and OptSignal().
int OptSignal::StringLength [private] |
Number of bits.
Referenced by AddSignalBM(), ComputeAverageChirpOfMarks(), ComputeAverageSigmaMarks(), ConstructOptSignal(), EOM_GeneratePerfectRectBinaryElecData(), EOM_GenerateRaisedCosineBinaryElecData(), EOM_GenerateSmoothedRectBinaryElecDataArctanh(), EOM_GenerateSmoothedRectBinaryElecDataSuperGauss(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringQPSK_CW(), GenerateSignalStringQPSK_Gaussian(), GenerateSignalStringRaisedCosines(), GenerateSignalStringRaisedCosinesWithPhaseShift(), GenerateSignalStringRZGaussianPattern(), GenerateSignalStringUsingInputSequence(), GetEnergyInBitSlot(), ImportOptSignal(), InitializeFirstOrderPMDSignal(), operator=(), OptSignal(), and SetBitRateChannBM().
double OptSignal::TimeWindow [private] |
Referenced by ComputeMeanPhasePulse(), ComputeMeanTimePulse(), ComputeRMSPulseWidth(), ConstructOptSignal(), EOM_SuperGauss(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringQPSK_Gaussian(), GenerateSignalStringRaisedCosinesWithPhaseShift(), GenerateSignalStringRZGaussianPattern(), GenerateSignalStringUsingInputSequence(), GetAutocorrelationFunctionOptSignalX(), GetAveragePower(), GetCeilIndex(), GetFloorIndex(), GetImagX(), GetImagY(), GetRealX(), GetRealY(), GetTotalEnergy(), InitializeFirstOrderPMDSignal(), operator=(), OptSignal(), SetBitRateChannBM(), and TimeShiftSignal().
typeEOMElecData OptSignal::TypeEOMElecData [private] |
Referenced by ConstructOptSignal(), EOM_FilterElecData(), EOM_GetTypeElecFilter(), operator=(), and OptSignal().
typePulse OptSignal::TypePulse [private] |
Referenced by ConstructOptSignal(), EOM_WriteFileElecData(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringRaisedCosines(), GenerateSignalStringRaisedCosinesWithPhaseShift(), InitializeFirstOrderPMDSignal(), operator=(), OptSignal(), RegenerateSignalString(), WriteTypePulse(), and ~OptSignal().
typeSimulation OptSignal::TypeSimulation [private] |
Referenced by AllocateOptFiberLocalErrorWorkSpace(), ChangeAveragePowerChannCurrentSignal(), ComputeMaxPower(), ComputeMeanFreqSignal(), ComputeMeanPhasePulse(), ComputeMeanTimePulse(), ComputeRMSPulseWidth(), ComputeRMSSpectralWidth(), ComputeSigmaSqTimeWindow(), ConstantPhaseShift(), ConstructOptSignal(), DeallocateOptFiberLocalErrorWorkSpace(), EOM_MachZehnderModulatorElecNRZ(), EOM_MachZehnderModulatorOptData(), EOM_MachZehnderModulatorOptNRZOLD(), EOM_PhaseModulator(), fftshift(), Freq2Time(), Freq2TimeScalar(), FreqShiftSignal(), GenerateImpulseSignal(), GenerateSignalStringCSRZMachZehnderModulator(), GenerateSignalStringGaussianOrSech(), GenerateSignalStringGaussianOrSechWithPhaseShift(), GenerateSignalStringNRZ_RCOS_MachZehnderModulator(), GenerateSignalStringQPSK_CW(), GenerateSignalStringQPSK_DPMZ_PM_AM_RZ33(), GenerateSignalStringQPSK_DPMZ_PM_AM_RZ50(), GenerateSignalStringQPSK_DPMZ_PM_NRZ(), GenerateSignalStringQPSK_Gaussian(), GenerateSignalStringQPSK_SEQ_PM_AM_RZ33(), GenerateSignalStringQPSK_SEQ_PM_AM_RZ50(), GenerateSignalStringQPSK_SEQ_PM_NRZ(), GenerateSignalStringRaisedCosines(), GenerateSignalStringRaisedCosinesWithPhaseShift(), GenerateSignalStringRZ33MachZehnderModulator(), GenerateSignalStringRZ50MachZehnderModulator(), GenerateSignalStringRZGaussianPattern(), GenerateSignalStringUsingInputSequence(), GetAveragePowerFreqDomain(), GetAveragePowerFreqDomainInsideChannels(), GetChirp(), GetEnergyInTimeRange(), GetLocalFrequency(), GetSigmaSqOptSignal(), ifftshift(), InitializeInStokes(), InputTimeDataFromFile(), operator=(), OptSignal(), ResetPDVectorOFLE(), SetRandomJonesVectors(), Time2Freq(), Time2FreqScalar(), TimeShiftSignal(), WriteDistTimeCplxWave(), WriteDistTimePower(), WriteDistTimePowerPhase(), WriteFileFreqPower(), WriteFileFreqPowerdBm(), WriteFileTimeAmpPhase(), WriteFileTimePower(), WriteFileWavelengthPower(), and WriteLocalFrequencyAndChirp().
bool OptSignal::UsingOptFiberLocalError [private] |
int OptSignal::WriteAccumulatedFirstOrderDispersionFlag [private] |