47void Hamming_Code::generate_H(
void)
57 for (i = 1; i <= n; i++) {
59 for (j = 0; j < n; j++)
60 if (i == indexes(j)) { NotUsed = 0; }
61 if (NotUsed) { indexes(NextPos) = i; NextPos = NextPos + 1; }
64 for (i = 0; i < n; i++) {
65 temp =
dec2bin(n - k, indexes(i));
66 for (j = 0; j < (n - k); j++) {
72void Hamming_Code::generate_G(
void)
75 for (i = 0; i < k; i++) {
76 for (j = 0; j < n - k; j++)
77 G(i, j) = H(j, i + n - k);
80 for (i = 0; i < k; i++) {
81 for (j = n - k; j < n; j++)
85 for (i = 0; i < k; i++)
121 for (
i = 0;
i < n;
i++) {
122 for (
j = 0;
j < n - k;
j++)
133 for (
j = 0;
j < n;
j++)
152 it_error(
"Hamming_Code::decode(vec, bvec); soft-decision decoding is not implemented");
157 it_error(
"Hamming_Code::decode(vec, bvec); soft-decision decoding is not implemented");
Array< T > mid(int pos, int n) const
Get n elements of the array starting from pos.
void set_size(int n, bool copy=false)
Resizing an Array<T>.
int length() const
Returns the number of data elements in the array object.
Array< T > right(int n) const
Get n right elements of the array.
virtual void encode(const bvec &uncoded_bits, bvec &coded_bits)
Hamming encoder. Will truncate some bits if not length = integer * k.
virtual void decode(const bvec &coded_bits, bvec &decoded_bits)
Hamming decoder. Will truncate some bits if not length = integer * n.
Hamming_Code(int m)
Constructor for hamming(n,k). n = pow(2,m)-1 and k = pow(2,m)-m-1.
Definitions of converters between different vector and matrix types.
#define it_error(s)
Abort unconditionally.
int pow2i(int x)
Calculate two to the power of x (2^x); x is integer.
int length(const Vec< T > &v)
Length of vector.
Definitions of a Hamming code class.
Logarithmic and exponenential functions - header file.
Mat< bin > bmat
bin matrix
ITPP_EXPORT int bin2dec(const bvec &inbvec, bool msb_first=true)
Convert a bvec to decimal int with the first bit as MSB if msb_first == true.
ITPP_EXPORT bvec dec2bin(int length, int index)
Convert a decimal int index to bvec using length bits in the representation.
int floor_i(double x)
The nearest smaller integer.