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 00051 class Extended_Golay : public Channel_Code { 00052 public: 00054 Extended_Golay(); 00056 virtual ~Extended_Golay(){ } 00057 00059 virtual void encode(const bvec &uncoded_bits, bvec &coded_bits); 00061 virtual bvec encode(const bvec &uncoded_bits); 00062 00064 virtual void decode(const bvec &coded_bits, bvec &decoded_bits); 00066 virtual bvec decode(const bvec &coded_bits); 00067 00068 // Soft-decision decoding is not implemented 00069 virtual void decode(const vec &received_signal, bvec &output); 00070 virtual bvec decode(const vec &received_signal); 00071 00073 virtual double get_rate() const { return 0.5; }; 00074 00076 bmat get_G() const { return G; } 00077 private: 00078 bmat B,G; 00079 }; 00080 00081 } // namespace itpp 00082 00083 #endif // #ifndef EGOLAY_H
Generated on Sun Dec 9 17:31:02 2007 for IT++ by Doxygen 1.5.4