IT++ Logo
hammcode.h
Go to the documentation of this file.
1 
29 #ifndef HAMMING_H
30 #define HAMMING_H
31 
32 #include <itpp/base/vec.h>
33 #include <itpp/base/mat.h>
34 #include <itpp/comm/channel_code.h>
35 #include <itpp/itexports.h>
36 
37 namespace itpp
38 {
39 
44 class ITPP_EXPORT Hamming_Code : public Channel_Code
45 {
46 public:
48  Hamming_Code(int m);
49 
51  virtual ~Hamming_Code() { }
52 
54  virtual void encode(const bvec &uncoded_bits, bvec &coded_bits);
56  virtual bvec encode(const bvec &uncoded_bits);
57 
59  virtual void decode(const bvec &coded_bits, bvec &decoded_bits);
61  virtual bvec decode(const bvec &coded_bits);
62 
63  // Soft-decision decoding is not implemented
64  virtual void decode(const vec &received_signal, bvec &output);
65  virtual bvec decode(const vec &received_signal);
66 
68  virtual double get_rate() const { return static_cast<double>(k) / n; };
69 
71  int get_n() const { return n; };
73  int get_k() const { return k; };
75  bmat get_H() const { return H; };
77  bmat get_G() const { return G; };
78 private:
79  int n, k;
80  bmat H, G;
81  void generate_H(void);
82  void generate_G(void);
83 };
84 
85 } // namespace itpp
86 
87 #endif // #ifndef HAMMING_H
int get_n() const
Gets the code length n.
Definition: hammcode.h:71
int get_k() const
Gets the number of information bits per code word, k.
Definition: hammcode.h:73
Generic Channel Code class.
Definition: channel_code.h:50
bmat get_H() const
Gets the parity check matrix for the code.
Definition: hammcode.h:75
Binary Hamming codes.
Definition: hammcode.h:44
bmat get_G() const
Gets the generator matrix for the code.
Definition: hammcode.h:77
Matrix Class Definitions.
virtual ~Hamming_Code()
Destructor.
Definition: hammcode.h:51
virtual double get_rate() const
Get the code rate.
Definition: hammcode.h:68
Channel Code class virtual interface.
itpp namespace
Definition: itmex.h:36
Mat< bin > bmat
bin matrix
Definition: mat.h:508
Templated Vector Class Definitions.

Generated on Thu Jun 21 2018 16:06:18 for IT++ by Doxygen 1.8.13