• Main Page
  • Related Pages
  • Classes
  • Files
  • File List
  • File Members

PulseEvolutionAnalyzer.hh

Go to the documentation of this file.
00001 // $Id: PulseEvolutionAnalyzer.hh,v 1.1.1.1 2004/06/11 22:56:02 zweck Exp $
00002 
00003 //###################################################################
00004 //
00005 //           Optical Communication Systems Simulator
00006 //
00007 //       Copyright (2001):
00008 //       Optical Fiber Communications Laboratory (OFCL)
00009 //       Computer Science & Electrical Engineering Department (CSEE)
00010 //       University of Maryland Baltimore County (UMBC)
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   // ### Private Data ###
00060 
00061 private:
00062 
00063 OptSignal * PropagatingSignal;
00064 OptSignal * CompressedSignal; // Doubles as LeadingPulse
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 }; // end class PulseEvolutionAnalyzer
00095 
00096 #endif // _PULSE_EVOLUTION_ANALYZER_HH_
00097 
00098 

Generated on Fri Jul 2 2010 12:57:48 for OCS by  doxygen 1.7.1