An error control system based on an error control code corresponding to an error density location profile of a storage medium, the system comprising: an encoder configured to produce one or more codewords from data using an error control code generator matrix corresponding to the error density location profile of the storage medium, wherein the error density location profile of the storage medium is representative of probabilities of bit errors at corresponding memory locations within the storage medium; and a decoder configured to produce decoded data from one or more codewords using an error control code parity-check matrix corresponding to the error density location profile of the storage medium; wherein columns of the parity-check matrix are associated with corresponding data bits of memory locations in the storage medium, rows of the parity-check matrix are associated with check bits, and each matrix element of the parity-check matrix having a predefined value indicates a connection between a particular data bit and a particular check bit; wherein the memory locations of the storage medium include, in accordance with the error density location profile of the storage medium, high-error probability memory locations that meet predefined error probability criteria not satisfied by memory locations of the storage medium other than the high-error probability memory locations; and wherein the check bits of the parity-check matrix include low-connection check bits and other check bits, and the parity-check matrix has element values indicating that the low-connection check bits are connected to fewer memory locations of the storage medium than the other check bits, on average; Characterised In That: the low-connection check bits each have less than a threshold number of connections, and the other check bits have more than the threshold number of connections on average; wherein the low-connection check bits are connected to more high-error probability memory locations, on average, than the other check bits; wherein the threshold number of connections is associated with a convergence speed value of the decoder in a high defect environment. an encoder configured to produce one or more codewords from data using an error control code generator matrix corresponding to the error density location profile of the storage medium, wherein the error density location profile of the storage medium is representative of probabilities of bit errors at corresponding memory locations within the storage medium; and a decoder configured to produce decoded data from one or more codewords using an error control code parity-check matrix corresponding to the error density location profile of the storage medium; wherein columns of the parity-check matrix are associated with corresponding data bits of memory locations in the storage medium, rows of the parity-check matrix are associated with check bits, and each matrix element of the parity-check matrix having a predefined value indicates a connection between a particular data bit and a particular check bit; wherein the memory locations of the storage medium include, in accordance with the error density location profile of the storage medium, high-error probability memory locations that meet predefined error probability criteria not satisfied by memory locations of the storage medium other than the high-error probability memory locations; and wherein the check bits of the parity-check matrix include low-connection check bits and other check bits, and the parity-check matrix has element values indicating that the low-connection check bits are connected to fewer memory locations of the storage medium than the other check bits, on average; Characterised In That: the low-connection check bits each have less than a threshold number of connections, and the other check bits have more than the threshold number of connections on average; wherein the low-connection check bits are connected to more high-error probability memory locations, on average, than the other check bits; wherein the threshold number of connections is associated with a convergence speed value of the decoder in a high defect environment. the low-connection check bits each have less than a threshold number of connections, and the other check bits have more than the threshold number of connections on average; wherein the low-connection check bits are connected to more high-error probability memory locations, on average, than the other check bits; wherein the threshold number of connections is associated with a convergence speed value of the decoder in a high defect environment.