Quantcast

Documentation Center

  • Trial Software
  • Product Updates

hammgen

Produce parity-check and generator matrices for Hamming code

Syntax

h = hammgen(m)
h = hammgen(m,pol)
[h,g] = hammgen(...)
[h,g,n,k] = hammgen(...)

Description

For all syntaxes, the codeword length is n. n has the form 2m-1 for some positive integer m greater than or equal to 3. The message length, k, has the form n-m.

h = hammgen(m) produces an m-by-n parity-check matrix for a Hamming code having codeword length n = 2^m-1. The input m is a positive integer greater than or equal to 3. The message length of the code is n-m. The binary primitive polynomial used to produce the Hamming code is the default primitive polynomial for GF(2^m), represented by gfprimdf(m).

h = hammgen(m,pol) produces an m-by-n parity-check matrix for a Hamming code having codeword length n = 2^m-1. The input m is a positive integer greater than or equal to 3. The message length of the code is n-m. pol is a row vector that gives the coefficients, in order of ascending powers, of the binary primitive polynomial for GF(2^m) that is used to produce the Hamming code. hammgen produces an error if pol represents a polynomial that is not, in fact, primitive.

[h,g] = hammgen(...) is the same as h = hammgen(...) except that it also produces the k-by-n generator matrix g that corresponds to the parity-check matrix h. k, the message length, equals n-m, or 2^m-1-m.

[h,g,n,k] = hammgen(...) is the same as [h,g] = hammgen(...) except that it also returns the codeword length n and the message length k.

    Note:   If your value of m is less than 25 and if your primitive polynomial is the default primitive polynomial for GF(2^m), the syntax hammgen(m) is likely to be faster than the syntax hammgen(m,pol).

Examples

The command below exhibits the parity-check and generator matrices for a Hamming code with codeword length 7 = 23-1 and message length 4 = 7-3.

[h,g,n,k] = hammgen(3)

h =

     1     0     0     1     0     1     1
     0     1     0     1     1     1     0
     0     0     1     0     1     1     1


g =

     1     1     0     1     0     0     0
     0     1     1     0     1     0     0
     1     1     1     0     0     1     0
     1     0     1     0     0     0     1


n =

     7


k =

     4

The command below, which uses 1 + x2 + x3 as the primitive polynomial for GF(23), shows that the parity-check matrix depends on the choice of primitive polynomial. Notice that h1 below is different from h in the example above.

h1 = hammgen(3,[1 0 1 1])

h1 =

     1     0     0     1     1     1     0
     0     1     0     0     1     1     1
     0     0     1     1     1     0     1

More About

expand all

Algorithms

Unlike gftuple, which processes one m-tuple at a time, hammgen generates the entire sequence from 0 to 2^m-1. The computation algorithm uses all previously computed values to produce the computation result.

See Also

| |

Was this topic helpful?