IT++ Logo

reedsolomon.h

Go to the documentation of this file.
00001 
00030 #ifndef REEDSOLOMON_H
00031 #define REEDSOLOMON_H
00032 
00033 #include <itpp/base/vec.h>
00034 #include <itpp/comm/galois.h>
00035 #include <itpp/comm/channel_code.h>
00036 
00037 
00038 namespace itpp {
00039 
00040   //---------------------- Reed-Solomon --------------------------------------
00041 
00051   class Reed_Solomon : public Channel_Code {
00052   public:
00054     Reed_Solomon(int in_m, int in_t, bool sys = false);
00056     virtual ~Reed_Solomon(){ }
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 static_cast<double>(k) / n; }
00074 
00075   protected:
00078     int m, t, k, n, q;
00080 
00081     GFX g;
00083     const bool systematic;
00084   };
00085 
00086 } // namespace itpp
00087 
00088 #endif // #ifndef REEDSOLOMON_H
SourceForge Logo

Generated on Sun Dec 9 17:30:26 2007 for IT++ by Doxygen 1.5.4