| CPC H03M 13/3961 (2013.01) [H03M 13/152 (2013.01); H03M 13/19 (2013.01)] | 20 Claims | 

| 
               1. A storage system, comprising: 
            a storage device configured to store a plurality of codewords; 
                at least one processor configured to: 
              obtain information bits and a target constraints vector; 
                  place the information bits in an input vector; 
                  set balance bits included in the input vector to zero; 
                  encode the input vector using a systematic code to obtain a preliminary codeword; 
                  apply a constraints matrix to the preliminary codeword to obtain a preliminary constraints vector; 
                  apply a transition matrix to a sum of the preliminary constraints vector and the target constraints vector to determine updated balance bits; 
                  obtain an output codeword based on the information bits and the updated balance bits; and 
                  store the output codeword in the storage device. 
                 |