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

ocsElecEqualizer.hh

Go to the documentation of this file.
00001 // $Id: ocsElecEqualizer.hh,v 1.1.1.1 2004/06/11 22:56:02 zweck Exp $
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 #ifndef _OCS_ELEC_EQUALIZER_HH_
00013 #define _OCS_ELEC_EQUALIZER_HH_
00014 
00015 #include "ocsPhotodetector.hh"
00016 #include "ocsElecSignalStat.hh"
00017 
00018 // ##### Class ElecEqualizer
00019 class ElecEqualizer
00020 {
00021    public:
00022       ElecEqualizer(string InFileName, 
00023                     ElecSignalStat *oElecSignalStat2 );
00024       ElecEqualizer(string InFileName, 
00025                     ElecSignalStat *oElecSignalStat2,
00026                     ElecSignalStat *oElecSignalStatImag2);
00027       void InitElecEqualizer(string InFileName, 
00028                              ElecSignalStat *oElecSignalStat2);
00029       ~ElecEqualizer();
00030       void AllocateMemory(void);
00031       void ResetEqualizer(void);
00032       void EqualizeBitIntensityWiener(void); 
00033       void EqualizeBitIntensityWienerReal(void); 
00034       void EqualizeBitIntensityWienerCplx(void); 
00035 
00036       void EqualizeBitIntensityLMS( int StringLength 
00037                                    ,double *DistortedBitIntensity
00038                                    ,double *EqualizedBitIntensity 
00039                                    ,double *Back2BackBitIntensity
00040                                    ,double StepSize); 
00041       void EqualizeBitIntensityWiener( int StringLength 
00042                                    ,double *DistortedBitIntensity
00043                                    ,double *EqualizedBitIntensity); 
00044       void EqualizeBitIntensityWiener( int StringLength 
00045                                    ,double *DistortedBitIntensity
00046                                    ,double *EqualizedBitIntensity 
00047                                    ,double *Back2BackBitIntensity); 
00048       double GetEffectiveAmpMargin(ElecSignalStat *oElecSignalStat2);
00049       void WriteFileEyeDiagram(string outFile);
00050       double GetTapWeight(int IndexTap);
00051 
00052       ElecSignalStat *oElecSignalStat;
00053       ElecSignalStat *oElecSignalStatIm;
00054    private:
00055       int qtInputTaps;
00056       int EqualizationTap;
00057       int FeedBackCorrectedBits;
00058       int UseFinalWeights;
00059       int NormalizeWeights;
00060       int SymmetricEqualization;
00061       int IsComplexEqualization;
00062       int UseExactDesired;
00063  
00064       int StringLength;
00065       double MeanBitIntensity;
00066       double MeanBitIntensityIm;
00067       int    *CorrelationVectorQtAverage;
00068  
00069       //## Pure real equalizer
00070       double *TapWeight;
00071       double **CorrelationMatrix;
00072       double *CorrelationVector;
00073       double *CrossCorrelationVector;
00074       double **TapWeightTmp;
00075 
00076       //## Complex equalizer
00077       cplx *TapWeightCplx;
00078       cplx **CorrelationMatrixCplx;
00079       cplx *CorrelationVectorCplx;
00080       cplx *CrossCorrelationVectorCplx;
00081       cplx **TapWeightTmpCplx;
00082 };
00083 #endif /* _OCS_ELEC_EQUALIZER_HH_ */

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