Abstract: A method of encoding a digital signal comprising a sequence of digital words, each comprising a first portion and a second portion, comprises the steps of successively encoding respective first portions using a trellis code to produce a corresponding sequence of trellis-encoded words, using each of the trellis-coded words to select one of a plurality of subcodes of a block code, and using the selected subcode to encode the corresponding second portion of the digital word corresponding sequentially to the trellis-coded word used to select the subcode, thereby providing a sequence of codewords corresponding to the sequence of digital words.