00001 00030 #ifndef EGOLAY_H 00031 #define EGOLAY_H 00032 00033 #include <itpp/base/vec.h> 00034 #include <itpp/base/mat.h> 00035 #include <itpp/comm/channel_code.h> 00036 00037 00038 namespace itpp 00039 { 00040 00052 class Extended_Golay : public Channel_Code 00053 { 00054 public: 00056 Extended_Golay(); 00058 virtual ~Extended_Golay() { } 00059 00061 virtual void encode(const bvec &uncoded_bits, bvec &coded_bits); 00063 virtual bvec encode(const bvec &uncoded_bits); 00064 00066 virtual void decode(const bvec &coded_bits, bvec &decoded_bits); 00068 virtual bvec decode(const bvec &coded_bits); 00069 00070 // Soft-decision decoding is not implemented 00071 virtual void decode(const vec &received_signal, bvec &output); 00072 virtual bvec decode(const vec &received_signal); 00073 00075 virtual double get_rate() const { return 0.5; }; 00076 00078 bmat get_G() const { return G; } 00079 private: 00080 bmat B, G; 00081 }; 00082 00083 } // namespace itpp 00084 00085 #endif // #ifndef EGOLAY_H
Generated on Thu Apr 23 20:04:04 2009 for IT++ by Doxygen 1.5.8