Group code

In coding theory, group codes are a type of code. Group codes consist of $$n$$ linear block codes which are subgroups of $$G^n$$, where $$G$$ is a finite Abelian group.

A systematic group code $$C$$ is a code over $$G^n$$ of order $$\left| G \right|^k$$ defined by $$n-k$$ homomorphisms which determine the parity check bits. The remaining $$k$$ bits are the information bits themselves.

Construction
Group codes can be constructed by special generator matrices which resemble generator matrices of linear block codes except that the elements of those matrices are endomorphisms of the group instead of symbols from the code's alphabet. For example, considering the generator matrix



G = \begin{pmatrix} \begin{pmatrix} 0 0 \\ 1 1 \end{pmatrix} \begin{pmatrix}  0 1 \\ 0 1 \end{pmatrix} \begin{pmatrix}  1 1 \\ 0 1 \end{pmatrix} \\ \begin{pmatrix} 0 0 \\ 1 1 \end{pmatrix} \begin{pmatrix}  11 \\ 1 1 \end{pmatrix} \begin{pmatrix}  0 0 \\ 0 0 \end{pmatrix} \end{pmatrix} $$

the elements of this matrix are $$2\times 2$$ matrices which are endomorphisms. In this scenario, each codeword can be represented as $$g_1^{m_1} g_2^{m_2} ... g_r^{m_r}$$ where $$g_1,... g_r$$ are the generators of $$G$$.