65.88 PuncturedCode

PuncturedCode( C )

PuncturedCode punctures C in the last column, and returns the result. Puncturing is done simply by cutting off the last column from each codeword. This means the word length decreases by one. The minimum distance in general also decrease by one.

PuncturedCode( C, L )

PuncturedCode punctures C in the columns specified by L, a list of integers. All columns specified by L are omitted from each codeword. If l is the length of L (so the number of removed columns), the word length decreases by l. The minimum distance can also decrease by l or less.

Puncturing a cyclic code in general results in a non-cyclic code. If the code is punctured in all the columns where a word of minimal weight is unequal to zero, the dimension of the resulting code decreases.

    gap> C1 := BCHCode( 15, 5, GF(2) );
    a cyclic [15,7,5]3..5 BCH code, delta=5, b=1 over GF(2)
    gap> C2 := PuncturedCode( C1 );
    a linear [14,7,4]3..5 punctured code
    gap> ExtendedCode( C2 ) = C1;
    false
    gap> PuncturedCode( C1, [1,2,3,4,5,6,7] );
    a linear [8,7,1..2]1 punctured code
    gap> PuncturedCode( WholeSpaceCode( 4, GF(5) ) );
    a linear [3,3,1]0 punctured code  # The dimension decreased from 4 to 3 

ExtendedCode extends the code again (see ExtendedCode) although in general this does not result in the old code.

Previous Up Top Next
Index

GAP 3.4.4
April 1997