I want to design four systematic binary BCH codes B1,B2,B3,B4 with the following properties. I am using the notation (n,k,d) where n is the codeword length, k is the dimension and d is the minimum distance.
B1 = BCH(118,108,4)
B2 = BCH(118,99,6)
B3 = BCH(118,90,8)
B4 = BCH(118,81,12)
In addition, the following must be satisfied:
B4 ⊂ B3 ⊂ B2 ⊂ B1, that is B4 is a subcode of B3, B3 is a subcode of B2 and so on.
Shortening, extending or any other combination of modifications to known BCH codes is allowed. I know that designing such codes should be possible because I am trying to recreate the work presented in a publication.
My own approach was to start with BCH(511,502), then shorten it by 394 bits to get BCH(117,108) and then extend it by a parity bit to get B1 = BCH(118,108). Then I take BCH(511,493) and shorten and extend again to get B2 = BCH(118,99) and so on for B3 and B4. The problem is then I don't know if that guarantees B4 ⊂ B3 ⊂ B2 ⊂ B1. I can't do a brute force search to determine if the codewords are nested like I want, that seems intractable.
Edit: As an afterthought, if I had the generator matrices for the codes, would that make the task of determining if they are nested any easier?
You are on the right track. What you need to do is construct the length-$511$ cyclic BCH codes with generator polynomials $M_1(x)$, $M_1(x)M_3(x)$, $M_1(x)M_3(x)M_5(x)$ and $M_1(x)M_3(x)M_5(x)M_7(x)$ where $M_i(x)$ denotes the minimal polynomial of $\alpha^i$ where $\alpha$ denotes your favorite primitive element of GF$(2^9)$ or $\mathbb F_{2^9}$. The construction guarantees the subset property that you are looking for in the primitive (length-$511$) BCH codes thus constructed, and all that needs to be done is to make sure than when you are shortening the codes to length $118$, you are throwing away the same information bits in all four cases, thus guaranteeing that the subset property carries over to the shortened codes as well.