Generator matrix

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

In coding theory, a generator matrix is a matrix whose rows form a basis for a linear code. The codewords are all of the linear combinations of the rows of this matrix, that is, the linear code is the row space of its generator matrix.

Terminology

[edit | edit source]

If G is a matrix, it generates the codewords of a linear code C by

w=sG

where w is a codeword of the linear code C, and s is any input vector. Both w and s are assumed to be row vectors.[1] A generator matrix for a linear [n,k,d]q-code has format k×n, where n is the length of a codeword, k is the number of information bits (the dimension of C as a vector subspace), d is the minimum distance of the code, and q is size of the finite field, that is, the number of symbols in the alphabet (thus, q = 2 indicates a binary code, etc.). The number of redundant bits is denoted by r=nk.

The standard form for a generator matrix is,[2]

G=[Ik|P],

where Ik is the k×k identity matrix and P is a k×(nk) matrix. When the generator matrix is in standard form, the code C is systematic in its first k coordinate positions.[3]

A generator matrix can be used to construct the parity check matrix for a code (and vice versa). If the generator matrix G is in standard form, G=[Ik|P], then the parity check matrix for C is[4]

H=[P|Ink],

where P is the transpose of the matrix P. This is a consequence of the fact that a parity check matrix of C is a generator matrix of the dual code C.

G is a k×n matrix, while H is a (nk)×n matrix.

Equivalent codes

[edit | edit source]

Codes C1 and C2 are equivalent (denoted C1 ~ C2) if one code can be obtained from the other via the following two transformations:[5]

  1. arbitrarily permute the components, and
  2. independently scale by a non-zero element any components.

Equivalent codes have the same minimum distance.

The generator matrices of equivalent codes can be obtained from one another via the following elementary operations:[6]

  1. permute rows
  2. scale rows by a nonzero scalar
  3. add rows to other rows
  4. permute columns, and
  5. scale columns by a nonzero scalar.

Thus, we can perform Gaussian elimination on G. Indeed, this allows us to assume that the generator matrix is in the standard form. More precisely, for any matrix G we can find an invertible matrix U such that UG=[Ik|P], where G and [Ik|P] generate equivalent codes.

See also

[edit | edit source]

Notes

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Ling & Xing 2004, p. 52
  3. ^ Roman 1992, p. 198
  4. ^ Roman 1992, p. 200
  5. ^ Pless 1998, p. 8
  6. ^ Welsh 1988, pp. 54-55

References

[edit | edit source]
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).

Further reading

[edit | edit source]
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
[edit | edit source]