IT++ Logo
channel_code.h
Go to the documentation of this file.
00001 
00029 #ifndef CHANNEL_CODE_H
00030 #define CHANNEL_CODE_H
00031 
00032 #include <itpp/base/vec.h>
00033 #include <itpp/comm/modulator.h>
00034 
00035 
00036 namespace itpp
00037 {
00038 
00043 //---------------------- BCH --------------------------------------
00044 
00050 class Channel_Code
00051 {
00052 public:
00054   Channel_Code() {}
00056   virtual ~Channel_Code() {}
00057 
00059   virtual void encode(const bvec &uncoded_bits, bvec &coded_bits) = 0;
00061   virtual bvec encode(const bvec &uncoded_bits) = 0;
00062 
00064   virtual void decode(const bvec &codedbits, bvec &decoded_bits) = 0;
00066   //virtual bvec decode(const bvec &coded_bits);
00067   virtual bvec decode(const bvec &coded_bits) = 0;
00068 
00070   virtual void decode(const vec &received_signal, bvec &decoded_bits) = 0;
00072   //virtual bvec decode(const vec &received_signal);
00073   virtual bvec decode(const vec &received_signal) = 0;
00074 
00076   virtual double get_rate() const = 0;
00077 };
00078 
00079 
00086 class Dummy_Code : public Channel_Code
00087 {
00088 public:
00090   Dummy_Code() {}
00092   virtual ~Dummy_Code() {}
00093 
00095   virtual void encode(const bvec &uncoded_bits, bvec &coded_bits) { coded_bits = uncoded_bits; }
00097   virtual bvec encode(const bvec &uncoded_bits) { return uncoded_bits; }
00098 
00100   virtual void decode(const bvec &coded_bits, bvec &decoded_bits) { decoded_bits = coded_bits; }
00102   virtual bvec decode(const bvec &coded_bits) { return coded_bits; }
00103 
00105   virtual void decode(const vec &received_signal, bvec &decoded_bits) { BPSK bpsk; bpsk.demodulate_bits(received_signal, decoded_bits); }
00107   virtual bvec decode(const vec &received_signal) { bvec out; decode(received_signal, out); return out; }
00108 
00110   virtual double get_rate() const { return 1.0; }
00111 };
00112 
00113 
00114 
00115 } // namespace itpp
00116 
00117 #endif // #ifndef CHANNEL_CODE_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
SourceForge Logo

Generated on Wed Jul 27 2011 16:27:04 for IT++ by Doxygen 1.7.4