#include <ocsPhotodetector.hh>
Photodetector::Photodetector | ( | ) |
References ObjectInitialized.
Photodetector::Photodetector | ( | string | InFileName, | |
OptSignal * | oOptSignal2 | |||
) |
References AddShotNoiseFlag, ConvFactOptElecPhotod, DebugLevel, fftPowerMatrices::fPowerSignal, OptSignal::GetDebugLevel(), OptSignal::GetTypePulse(), LogFile, LogFileSeparator(), LOWER_AND_UPPER, LOWER_ONLY, NewCplx(), ObjectInitialized, oOptSignal, OPTIONAL_NO_WARNING, OPTIONAL_WARNING, qtPoints, ReadDouble(), ReadInt(), OptSignal::RNG, RNG, SetOptSignal(), sfftPM, ShotNoiseCoeff, ShotNoiseVarianceCoeff, fftPowerMatrices::tPowerSignal, and WorksfftPM.
References AddShotNoiseFlag, ConvFactOptElecPhotod, DebugLevel, fftPowerMatrices::fPowerSignal, OptSignal::GetDebugLevel(), OptSignal::GetTypePulse(), LogFile, LogFileSeparator(), LOWER_AND_UPPER, LOWER_ONLY, NewCplx(), ObjectInitialized, oOptSignal, OPTIONAL_NO_WARNING, qtPoints, ReadDouble(), ReadInt(), RNG, SetOptSignal(), sfftPM, ShotNoiseCoeff, ShotNoiseVarianceCoeff, fftPowerMatrices::tPowerSignal, and WorksfftPM.
Photodetector::Photodetector | ( | string | InFileName, | |
OptSignal * | oOptSignal2, | |||
RanNumGen * | RNG2, | |||
fftPowerMatrices & | sfftPM2, | |||
fftPowerMatrices & | WorksfftPM2 | |||
) |
Photodetector::Photodetector | ( | Photodetector & | OrigPhotodetector | ) |
References AddShotNoiseFlag, BitPeriod, ConvFactOptElecPhotod, DeltaFreq, DeltaTime, fft, fftPowerMatrices::fPowerSignal, FreqWindow, OptSignal::GetTypePulse(), NewCplx(), ObjectInitialized, oOptSignal, qtPoints, qtPointsLast, RNG, sfftPM, ShotNoiseCoeff, ShotNoiseVarianceCoeff, TimeWindow, fftPowerMatrices::tPowerSignal, and WorksfftPM.
Photodetector::~Photodetector | ( | ) |
void Photodetector::AddShotNoise | ( | void | ) |
References AddShotNoiseFlag, DeltaFreq, fftPowerMatrices::fPowerSignal, Freq2Time(), GetAverageElecCurrent(), RanNumGen::GetRanNum(), jc, pi, qtPoints, RNG, sfftPM, ShotNoiseCoeff, and sqrt().
Referenced by DetectOptSignal().
void Photodetector::AddShotNoiseOLD | ( | void | ) |
void Photodetector::ComputeWorkBinaryEXORElecSignal | ( | void | ) |
References BitPeriod, DeltaTime, GetAverageElecPower(), qtPoints, sfftPM, sq(), fftPowerMatrices::tPowerSignal, WorksfftPM, and WorkTime2Freq().
Referenced by ElecSignalStat::ComputePhaseTargetFreq().
void Photodetector::ComputeWorkContEXORElecSignal | ( | void | ) |
References BitPeriod, DeltaTime, qtPoints, sfftPM, fftPowerMatrices::tPowerSignal, WorksfftPM, and WorkTime2Freq().
Referenced by ElecSignalStat::ComputePhaseTargetFreq().
void Photodetector::ComputeWorkDifferentiatedThenSquaredElecSignal | ( | void | ) |
References DeltaTime, qtPoints, sfftPM, fftPowerMatrices::tPowerSignal, WorksfftPM, and WorkTime2Freq().
Referenced by ElecSignalStat::ComputePhaseTargetFreq().
void Photodetector::ComputeWorkSumDelayedHalfBitPeriodThenSquare | ( | void | ) |
References OptSignal::GetStringLength(), oOptSignal, Periodicity(), qtPoints, sfftPM, fftPowerMatrices::tPowerSignal, WorksfftPM, and WorkTime2Freq().
Referenced by ElecSignalStat::ComputePhaseTargetFreq().
void Photodetector::DetectOptSignal | ( | ) |
References AddShotNoise(), ConvFactOptElecPhotod, ObjectInitialized, qtPoints, sfftM, sfftPM, sq(), Time2Freq(), fftMatrices::tOptSignalX, fftMatrices::tOptSignalY, and fftPowerMatrices::tPowerSignal.
Referenced by ChiSquareReceiver::ChiSquareReceiver(), ElecSignalStat::GetCurrentExtinctionRatio_GaussianStatistics(), ElecSignalStat::GetEnhancementFactor(), ElecSignalStat::GetESNR_GaussianStatistics(), ElecSignalStat::GetESNR_Mark_GaussianStatistics(), ElecSignalStat::GetNormalizedEnhancementFactor(), ElecSignalStat::GetNormKcoeff0_GaussianStatistics(), ElecSignalStat::GetNormKcoeff1_GaussianStatistics(), ElecSignalStat::GetNormNumberNoiseModes_GaussianStatistics(), ElecSignalStat::GetQ_FactorFromESNR_GaussianStatistics(), ElecSignalStat::GetQ_FactorGaussianStatisticsFirstPattern(), ElecSignalStat::GetQ_FactorGaussianStatisticsFromBER(), ElecSignalStat::GetQ_FactorGaussianStatisticsWorstPattern(), ElecSignalStat::GetStdDevSignal_ASE_BitSlot(), ElecSignalStat::GetStdDevWorstBit0_GaussianStatistics(), ElecSignalStat::GetStdDevWorstBit1_GaussianStatistics(), ChiSquareReceiver::ReceiveNoiseFreeSignalAndRecoverClock(), ReceiverSubsystem::ReceivePreviouslyDemultiplexedSingleChannnel(), ReceiverSubsystem::ReceiveSignal(), ReceiverSubsystem::ReceiveSignalBackToBack(), ReceiverSubsystem::ReceiveSignalBackToBackCenterFreq(), ReceiverSemiAnalytical::ReceiveSignalBackToBackMonteCarlo(), ReceiverSubsystem::ReceiveSignalCenterFreq(), GaussianReceiver::ReceiveSignalDGD_NoisePartiallyPolarized(), ReceiverSemiAnalytical::ReceiveSignalMonteCarlo(), ReceiverSemiAnalytical::ReceiveSignalSemiAnalytical(), GaussianReceiver::ReceiveSignalUnpolarizedNoise(), and GaussianReceiver::RecoverClockAndSetTimeSlices().
void Photodetector::fftshift | ( | void | ) |
References fft, cfftw::fftshift(), fftPowerMatrices::fPowerSignal, and sfftPM.
Referenced by TimeShiftSignal().
void Photodetector::Freq2Time | ( | void | ) |
void Photodetector::GenerateImpulseCurrent | ( | void | ) |
Used in ChiSquareReceiver class to construct the transfer function of the electric filter. JZ May 2004
Used in ChiSquareReceiver class to construct the transfer function of the electric filter.
References OptSignal::GenerateImpulseSignal(), oOptSignal, qtPoints, OptSignal::sfftM, sfftPM, Time2Freq(), fftMatrices::tOptSignalX, and fftPowerMatrices::tPowerSignal.
Referenced by ChiSquareReceiver::ComputeTimeIndependentPartOfFilterMatrix(), ElecFilter::GetCurrentEquivalentSpectralWidth(), and ElecFilter::WriteFilterImpulseResponse().
double Photodetector::GetAverageAbsElecPower | ( | void | ) |
References DeltaTime, qtPoints, sfftPM, sq(), TimeWindow, and fftPowerMatrices::tPowerSignal.
double Photodetector::GetAverageElecCurrent | ( | void | ) |
References DeltaTime, qtPoints, sfftPM, TimeWindow, and fftPowerMatrices::tPowerSignal.
Referenced by AddShotNoise().
double Photodetector::GetAverageElecPower | ( | void | ) |
References DeltaTime, qtPoints, sfftPM, sq(), TimeWindow, and fftPowerMatrices::tPowerSignal.
Referenced by AddShotNoiseOLD(), and ComputeWorkBinaryEXORElecSignal().
double Photodetector::GetConvFactOptElecPhotod | ( | ) | [inline] |
References ConvFactOptElecPhotod.
Referenced by ChiSquareReceiver::ComputeTimeIndependentPartOfFilterMatrix(), ElecSignalStat::GetEnhancementFactor(), ElecSignalStat::GetMeanASE_ASE(), ElecSignalStat::GetMeanNoiseGaussianStatistics(), ElecSignalStat::GetNoiseNoiseVarianceGaussianStatistics(), ElecSignalStat::GetNormalizedEnhancementFactor(), ElecSignalStat::GetStdDevASE_ASE(), ElecSignalStat::GetStdDevSignal_ASE_TimeIndex(), and GaussianReceiver::ReceiveSignalDGD_NoisePartiallyPolarized().
int Photodetector::GetDebugLevel | ( | void | ) | [inline] |
References DebugLevel.
Referenced by ElecFilter::ElecFilter().
double Photodetector::GetDeltaFreq | ( | void | ) | [inline] |
References DeltaFreq.
Referenced by ElecFilter::GetCurrentEquivalentSpectralWidth(), ElecSignalStat::GetIntegralForNoiseNoiseVarianceGaussianStatistics(), ElecSignalStat::GetIntegralForSignalNoiseVariance(), ElecSignalStat::GetMeanASE_ASE(), ElecSignalStat::GetMeanNoiseGaussianStatistics(), ElecSignalStat::GetStdDevASE_ASE(), and ElecSignalStat::GetStdDevSignal_ASE_TimeIndex().
double Photodetector::GetDeltaTime | ( | void | ) | [inline] |
References DeltaTime.
double Photodetector::GetFreqWindow | ( | void | ) | [inline] |
References FreqWindow.
double Photodetector::GetMaxCurrentIsolatedBit1 | ( | void | ) |
int Photodetector::GetQtPoints | ( | void | ) | [inline] |
References qtPoints.
Referenced by ChiSquareReceiver::ComputeAveragePDFs(), and ElecFilter::GetCurrentEquivalentSpectralWidth().
double Photodetector::GetRFPhase | ( | double | Freq | ) |
References fftPowerMatrices::fPowerSignal, sfftPM, and TimeWindow.
double Photodetector::GetRFPhaseFromFreqIndex | ( | int | FreqIndex | ) |
References fftPowerMatrices::fPowerSignal, and sfftPM.
double Photodetector::GetRFPower | ( | double | Freq | ) |
References fftPowerMatrices::fPowerSignal, sfftPM, sq(), and TimeWindow.
double Photodetector::GetRFPowerFromFreqIndex | ( | int | FreqIndex | ) |
References fftPowerMatrices::fPowerSignal, sfftPM, and sq().
double Photodetector::GetSignalBandwidth | ( | void | ) |
References DeltaFreq, fftPowerMatrices::fPowerSignal, qtPoints, sfftPM, and sq().
int Photodetector::GetStringLength | ( | void | ) | [inline] |
References BitPeriod, and TimeWindow.
double Photodetector::GetTimeWindow | ( | void | ) | [inline] |
References TimeWindow.
void Photodetector::ifftshift | ( | void | ) |
References fft, fftPowerMatrices::fPowerSignal, cfftw::ifftshift(), and sfftPM.
Referenced by TimeShiftSignal().
void Photodetector::InitPhotodetector | ( | ) |
void Photodetector::InitPhotodetector | ( | cfftw * | fft2, | |
fftMatrices | sfftM2, | |||
double | ConvFactOptElecPhotod2 | |||
) |
References AddShotNoiseFlag, ConvFactOptElecPhotod, cfftw::delta_f, DeltaFreq, DeltaTime, fft, fftPowerMatrices::fPowerSignal, FreqWindow, OptSignal::GetTypePulse(), cfftw::give_N(), NewCplx(), ObjectInitialized, oOptSignal, qtPoints, qtPointsLast, ReleaseMemory(), sfftM, sfftPM, ShotNoiseCoeff, ShotNoiseVarianceCoeff, fftPowerMatrices::tPowerSignal, and WorksfftPM.
Photodetector & Photodetector::operator= | ( | Photodetector & | RHS_Photodetector | ) |
References AddShotNoiseFlag, BitPeriod, ConvFactOptElecPhotod, DeltaFreq, DeltaTime, fft, fftPowerMatrices::fPowerSignal, FreqWindow, OptSignal::GetTypePulse(), LogFile, ObjectInitialized, oOptSignal, qtPoints, qtPointsLast, RNG, sfftPM, ShotNoiseCoeff, ShotNoiseVarianceCoeff, TimeWindow, fftPowerMatrices::tPowerSignal, and WorksfftPM.
void Photodetector::ReleaseMemory | ( | void | ) |
References fftPowerMatrices::fPowerSignal, FreeCplx(), OptSignal::GetTypePulse(), oOptSignal, sfftPM, fftPowerMatrices::tPowerSignal, and WorksfftPM.
Referenced by InitPhotodetector(), and ~Photodetector().
void Photodetector::SetOptSignal | ( | OptSignal * | oOptSignal2 | ) |
References BitPeriod, cfftw::delta_f, DeltaFreq, DeltaTime, OptSignal::fft, fft, FreqWindow, OptSignal::GetStringLength(), OptSignal::GetTimeWindow(), cfftw::give_N(), oOptSignal, qtPoints, OptSignal::sfftM, sfftM, and TimeWindow.
Referenced by Photodetector(), ElecSignalStat::ResetOptElecFiltersForGaussianStatistics(), and ElecSignalStat::SetOptElecFiltersForGaussianStatistics().
void Photodetector::Time2Freq | ( | void | ) |
References cfftw::FFT(), fft, fftPowerMatrices::fPowerSignal, sfftPM, and fftPowerMatrices::tPowerSignal.
Referenced by AddShotNoiseOLD(), DetectOptSignal(), GenerateImpulseCurrent(), ElecSignalStat::GetIntegralForNoiseNoiseVarianceGaussianStatistics(), ElecSignalStat::GetIntegralForSignalNoiseVariance(), ElecSignalStat::GetMeanASE_ASE(), ElecSignalStat::GetMeanNoiseGaussianStatistics(), ElecSignalStat::GetStdDevASE_ASE(), and ElecSignalStat::GetStdDevSignal_ASE_TimeIndex().
void Photodetector::TimeShiftSignal | ( | double | dTime | ) |
This method shifts the signal (JZFeb03: to right) by the amount dTime using the fft By: Brian Marks
References fftshift(), fftPowerMatrices::fPowerSignal, Freq2Time(), ifftshift(), jc, pi, qtPoints, sfftPM, and TimeWindow.
Referenced by ElecSignalStat::ComputePerformanceStatistics(), ChiSquareReceiver::ReceiveNoiseFreeSignalAndRecoverClock(), ReceiverSubsystem::ReceiveSignal(), ReceiverSubsystem::ReceiveSignalBackToBack(), and GaussianReceiver::ReceiveSignalDGD_NoisePartiallyPolarized().
void Photodetector::WorkTime2Freq | ( | void | ) |
void Photodetector::WriteFileFreqPower | ( | string | OutFile | ) |
References DeltaFreq, fft, cfftw::fftshift(), fftPowerMatrices::fPowerSignal, FreqWindow, cfftw::ifftshift(), ObjectInitialized, qtPoints, and sfftPM.
void Photodetector::WriteFileFreqPower | ( | string | outFile, | |
int | OmitDCFlag | |||
) |
Outputs power spectral density to a file
References DeltaFreq, fft, cfftw::fftshift(), fftPowerMatrices::fPowerSignal, FreqWindow, cfftw::ifftshift(), ObjectInitialized, qtPoints, and sfftPM.
Referenced by ChiSquareReceiver::ComputeTimeIndependentPartOfFilterMatrix(), ChiSquareReceiver::ReceiveNoiseFreeSignalAndRecoverClock(), and ElecFilter::WriteFilterImpulseResponse().
void Photodetector::WriteFileTimePower | ( | string | OutFile | ) |
References DeltaTime, ObjectInitialized, qtPoints, sfftPM, and fftPowerMatrices::tPowerSignal.
Referenced by ChiSquareReceiver::ComputeTimeIndependentPartOfFilterMatrix(), ChiSquareReceiver::ReceiveNoiseFreeSignalAndRecoverClock(), GaussianReceiver::ReceiveSignalDGD_NoisePartiallyPolarized(), GaussianReceiver::ReceiveSignalUnpolarizedNoise(), and ElecFilter::WriteFilterImpulseResponse().
int Photodetector::AddShotNoiseFlag [private] |
Referenced by AddShotNoise(), AddShotNoiseOLD(), InitPhotodetector(), operator=(), and Photodetector().
double Photodetector::BitPeriod [private] |
double Photodetector::ConvFactOptElecPhotod [private] |
Referenced by DetectOptSignal(), GetConvFactOptElecPhotod(), InitPhotodetector(), operator=(), and Photodetector().
int Photodetector::DebugLevel [private] |
Referenced by GetDebugLevel(), and Photodetector().
double Photodetector::DeltaFreq [private] |
double Photodetector::DeltaTime [private] |
Referenced by ComputeWorkBinaryEXORElecSignal(), ComputeWorkContEXORElecSignal(), ComputeWorkDifferentiatedThenSquaredElecSignal(), GetAverageAbsElecPower(), GetAverageElecCurrent(), GetAverageElecPower(), GetDeltaTime(), InitPhotodetector(), operator=(), Photodetector(), SetOptSignal(), and WriteFileTimePower().
double Photodetector::FreqWindow [private] |
Referenced by AddShotNoiseOLD(), GetFreqWindow(), InitPhotodetector(), operator=(), Photodetector(), SetOptSignal(), and WriteFileFreqPower().
int Photodetector::ObjectInitialized [private] |
Referenced by DetectOptSignal(), InitPhotodetector(), operator=(), Photodetector(), WriteFileFreqPower(), WriteFileTimePower(), and ~Photodetector().
int Photodetector::qtPoints [private] |
Referenced by AddShotNoise(), AddShotNoiseOLD(), ComputeWorkBinaryEXORElecSignal(), ComputeWorkContEXORElecSignal(), ComputeWorkDifferentiatedThenSquaredElecSignal(), ComputeWorkSumDelayedHalfBitPeriodThenSquare(), DetectOptSignal(), GenerateImpulseCurrent(), GetAverageAbsElecPower(), GetAverageElecCurrent(), GetAverageElecPower(), GetQtPoints(), GetSignalBandwidth(), InitPhotodetector(), operator=(), Photodetector(), SetOptSignal(), TimeShiftSignal(), WriteFileFreqPower(), and WriteFileTimePower().
int Photodetector::qtPointsLast [private] |
Referenced by InitPhotodetector(), operator=(), and Photodetector().
RanNumGen* Photodetector::RNG [private] |
Referenced by AddShotNoise(), AddShotNoiseOLD(), operator=(), and Photodetector().
fftMatrices Photodetector::sfftM [private] |
Referenced by DetectOptSignal(), InitPhotodetector(), and SetOptSignal().
Referenced by AddShotNoise(), AddShotNoiseOLD(), ChiSquareReceiver::ComputeTimeIndependentPartOfFilterMatrix(), ComputeWorkBinaryEXORElecSignal(), ComputeWorkContEXORElecSignal(), ComputeWorkDifferentiatedThenSquaredElecSignal(), ComputeWorkSumDelayedHalfBitPeriodThenSquare(), DetectOptSignal(), fftshift(), Freq2Time(), GenerateImpulseCurrent(), GetAverageAbsElecPower(), GetAverageElecCurrent(), GetAverageElecPower(), ElecFilter::GetCurrentEquivalentSpectralWidth(), ElecSignalStat::GetIntegralForNoiseNoiseVarianceGaussianStatistics(), ElecSignalStat::GetIntegralForSignalNoiseVariance(), ElecSignalStat::GetMeanASE_ASE(), ElecSignalStat::GetMeanNoiseGaussianStatistics(), GetRFPhase(), GetRFPhaseFromFreqIndex(), GetRFPower(), GetRFPowerFromFreqIndex(), GetSignalBandwidth(), ElecSignalStat::GetStdDevASE_ASE(), ElecSignalStat::GetStdDevSignal_ASE_TimeIndex(), ifftshift(), ElecSignalStat::InitElecSignalStat(), InitPhotodetector(), operator=(), Photodetector(), GaussianReceiver::ReceiveSignalDGD_NoisePartiallyPolarized(), ReceiverSemiAnalytical::ReceiveSignalSemiAnalytical(), GaussianReceiver::ReceiveSignalUnpolarizedNoise(), ReleaseMemory(), ElecFilter::SetPhotodetector(), Time2Freq(), TimeShiftSignal(), Histogram2D::UpdateEyeDiagram(), WriteFileFreqPower(), and WriteFileTimePower().
double Photodetector::ShotNoiseCoeff [private] |
Referenced by AddShotNoise(), InitPhotodetector(), operator=(), and Photodetector().
double Photodetector::ShotNoiseVarianceCoeff [private] |
Referenced by AddShotNoiseOLD(), InitPhotodetector(), operator=(), and Photodetector().
double Photodetector::TimeWindow [private] |
Referenced by ElecSignalStat::ComputePhaseTargetFreq(), ComputeWorkBinaryEXORElecSignal(), ComputeWorkContEXORElecSignal(), ComputeWorkDifferentiatedThenSquaredElecSignal(), ComputeWorkSumDelayedHalfBitPeriodThenSquare(), InitPhotodetector(), operator=(), Photodetector(), ReleaseMemory(), and WorkTime2Freq().