Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef _PULSE_EVOLUTION_ANALYZER_HH_
00015 #define _PULSE_EVOLUTION_ANALYZER_HH_
00016
00017 #include "ocsBitString.hh"
00018 #include "ocsOptSignal.hh"
00019 #include "ocsOptFiberLocalError.hh"
00020 #include "ocsHistogram.hh"
00021
00022 class PulseEvolutionAnalyzer
00023 {
00024
00025 public:
00026
00027 PulseEvolutionAnalyzer(OptSignal * PropagatingSignal2,
00028 string InDir, string Job2,
00029 bool ComputeTimeFreqShifts2,
00030 bool ComputeTimingJitter2,
00031 bool ComputeMeanZerosStdDevOnes2,
00032 int ComputeEnergyInBitSlot2);
00033
00034 void SetBitString(BitString * oBitString2);
00035
00036 void ApplyPulseAnalyzer(double PropagatedLength2);
00037
00038 void LinearlyCompressPulses(void);
00039
00040 void IsolatePulse(OptSignal * FullSignal, OptSignal * SinglePulse,
00041 int BitSlotSinglePulse);
00042
00043 void SeparatePulses(void);
00044
00045 void ComputeTimeShift(void);
00046 void ComputeFreqShift(void);
00047 void ComputeMaxPower(void);
00048 void WriteTimeFreqShifts(string OutFileName);
00049
00050 void WriteMeanZerosStdDevOnes(string OutFileName);
00051 void ComputePulseEnergyStats(void);
00052
00053 void WriteEnergyInBitSlot(string OutFileName);
00054
00055 bool GetComputeMeanZerosStdDevOnesFlag(void)
00056 {return ComputeMeanZerosStdDevOnes;};
00057
00058
00059
00060
00061 private:
00062
00063 OptSignal * PropagatingSignal;
00064 OptSignal * CompressedSignal;
00065 OptSignal * TrailingPulse;
00066
00067 Histogram * HistogramZeros;
00068 Histogram * HistogramOnes;
00069 BitString * oBitString;
00070
00071 OptFiberLocalError * LinearFiber;
00072
00073 string Job;
00074
00075 double PropagatedLength;
00076
00077 bool ComputeTimingJitter;
00078 bool ComputeTimeFreqShifts;
00079 bool ComputeMeanZerosStdDevOnes;
00080
00081 int ComputeEnergyInBitSlot;
00082
00083 int LeadingPulseBitSlot,TrailingPulseBitSlot;
00084
00085 double LeadPulseTimeShift,TrailPulseTimeShift;
00086 double LeadPulseFreqShift,TrailPulseFreqShift;
00087
00088 double LeadPulseMaxPower,TrailPulseMaxPower;
00089
00090 double LeftTimeZero,LeftTimeOne,RightTimeZero,RightTimeOne;
00091
00092 double MeanZeros,MeanOnes,StdDevOnes;
00093
00094 };
00095
00096 #endif // _PULSE_EVOLUTION_ANALYZER_HH_
00097
00098