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

ocsReduPolDepAttenuator.hh

Go to the documentation of this file.
00001 // $Id: 
00002 //###################################################################
00003 //
00004 //           Optical Communication Systems Simulator
00005 //
00006 //       Copyright (2000):
00007 //       Optical Fiber Communications Laboratory (OFCL)
00008 //       Computer Science & Electrical Engineering Department (CSEE)
00009 //       University of Maryland Baltimore County (UMBC)
00010 //
00011 //###################################################################
00012 
00013 #ifndef _OCS_REDU_POL_DEP_ATTENUATOR_HH_
00014 #define _OCS_REDU_POL_DEP_ATTENUATOR_HH_
00015 
00016 #include "ocsReduOptSignal.hh"
00017 
00018 // ##############################################
00019 // #### Classes of objects for the reduced model
00020 // ##############################################
00021 
00022 // #### Class ReduPolDepAttenuator
00023 
00026 
00052 class ReduPolDepAttenuator
00053 {
00054    public:
00055 
00056 
00058 
00061       ReduPolDepAttenuator() {ObjectInitialized = 0;};
00062 
00064 
00080       ReduPolDepAttenuator(ReduOptSignal *oReduOptSignalTmp); 
00081 
00083 
00101       ReduPolDepAttenuator(ReduOptSignal *oReduOptSignalTmp
00102                           ,double PolDepAttenuationXTmp
00103                           ,double PolDepAttenuationYTmp);
00104 
00106 
00118       void InitPolDepAttenuator(ReduOptSignal *oReduOptSignalTmp);
00119 
00121 
00138       void SetPolDepAttenuation(double PolDepAttenuationXTmp
00139                               ,double PolDepAttenuationYTmp);
00140 
00142 
00154       void SetPolDepAttenuationX(double PolDepAttenuationXTmp);
00155 
00157 
00168       void SetPolDepAttenuationY(double PolDepAttenuationYTmp);
00169 
00172 
00173       double GetPolDepAttenuationPowerX(void)
00174             {return -Linear2dB(sq(LinearPolDepAttenuationX));};
00175 
00178 
00179       double GetPolDepAttenuationPowerY(void)
00180             {return -Linear2dB(sq(LinearPolDepAttenuationY));};
00181 
00182 
00185 
00186       double GetLinearPolDepAttenuationPowerX(void)
00187             {return sq(LinearPolDepAttenuationX);};
00188 
00191 
00192       double GetLinearPolDepAttenuationPowerY(void)
00193             {return sq(LinearPolDepAttenuationY);};
00194 
00197 
00211       void GetTransmMatrixCoefficients(void);
00212 
00215 
00219       void SyncNumChannels(void);
00220 
00222 
00231       void PolDepAttenuate(void);
00232 
00233    private:
00234       int ObjectInitialized;
00237 
00238       ReduOptSignal *oReduOptSignal;
00239 
00241 
00242       double NumChannels;       
00243 
00246 
00250       double LinearPolDepAttenuationX;
00251       
00254 
00258       double LinearPolDepAttenuationY; 
00259 
00262 
00266       double Tm00,Tm01,Tm22;
00267 
00268 
00269 };
00270 
00271 #endif //_OCS_REDU_POL_DEP_ATTENUATOR_HH_
00272 
00273 
00274 
00275 
00276 
00277 
00278 
00279 
00280 
00281 

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