Group code

In computer science, group codes are a type of code. Group codes consist of ${\displaystyle n}$ linear block codes which are subgroups of ${\displaystyle G^{n}}$, where ${\displaystyle G}$ is a finite abelian group.

A systematic group code ${\displaystyle C}$ is a code over ${\displaystyle G^{n}}$ of order ${\displaystyle \left|G\right|^{k}}$ defined by ${\displaystyle n-k}$ homomorphisms which determine the parity check bits. The remaining ${\displaystyle 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, consider the generator matrix

${\displaystyle G={\begin{pmatrix}{\begin{pmatrix}00\\11\end{pmatrix}}{\begin{pmatrix}01\\01\end{pmatrix}}{\begin{pmatrix}11\\01\end{pmatrix}}\\{\begin{pmatrix}00\\11\end{pmatrix}}{\begin{pmatrix}11\\11\end{pmatrix}}{\begin{pmatrix}00\\00\end{pmatrix}}\end{pmatrix}}}$

The elements of this matrix are ${\displaystyle 2\times 2}$ matrices which are endomorphisms. In this scenario, each codeword can be represented as ${\displaystyle g_{1}^{m_{1}}g_{2}^{m_{2}}...g_{r}^{m_{r}}}$ where ${\displaystyle g_{1},...g_{r}}$ are the generators of ${\displaystyle G}$.