IT++ 4.3.1
hammcode.h
Go to the documentation of this file.
1
28
29#ifndef HAMMING_H
30#define HAMMING_H
31
32#include <itpp/base/vec.h>
33#include <itpp/base/mat.h>
35#include <itpp/itexports.h>
36
37namespace itpp
38{
39
44class ITPP_EXPORT Hamming_Code : public Channel_Code
45{
46public:
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; };
78private:
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
Channel Code class virtual interface.
Channel_Code()
Default constructor.
bmat get_H() const
Gets the parity check matrix for the code.
Definition hammcode.h:75
virtual double get_rate() const
Get the code rate.
Definition hammcode.h:68
bmat get_G() const
Gets the generator matrix for the code.
Definition hammcode.h:77
virtual ~Hamming_Code()
Destructor.
Definition hammcode.h:51
int get_n() const
Gets the code length n.
Definition hammcode.h:71
Hamming_Code(int m)
Constructor for hamming(n,k). n = pow(2,m)-1 and k = pow(2,m)-m-1.
Definition hammcode.cpp:37
int get_k() const
Gets the number of information bits per code word, k.
Definition hammcode.h:73
Matrix Class Definitions.
Mat< bin > bmat
bin matrix
Definition mat.h:508
itpp namespace
Definition itmex.h:37
Templated Vector Class Definitions.