An infinite family of binary error correcting codes which is defined recursively.

Let D1 be a [n, k1, d1] code and D2 be a [n, k2, d2] code (where n denotes the length of a codeword, k the dimension of the code, and d the minimum distance between codewords). Then define C = {u|u+v | u in D1 and v in D2}
Note: | denotes concatentation, then the symbol for "such that"

If Gi is the generator matrix for the code Di, then the generator matrix of C is G= |G1 G1|
                                                                                                                                               |0    G2|

This is how we recursively define the code:

G(r,m) = |G(r,m-1)    G(r,m-1)  |
                |      0        G(r-1,m-1) |
with base cases:
   G(0,m)=[1 1 1 1 ... 1] the binary repetition code of length m.
   G(m,m)=Im the mxm identity matrix.


My apologies for the bad symbol formatting, but I discovered shortly after beginning that I couldn't view the HTML symbols in my browser. I tried other computers, and many of them couldn't register the symbols, so I decided to go with ASCII, and it doesn't look so nice. If there's any question about what I was trying to do, just /msg me.