1. Introduction
ERROR-CONTROL (EC) codes and constrained sequence (CS) codes are channel codes that are used to improve the performance of digital communication systems. EC codes enable detection and/or correction of errors when the coded sequence is corrupted due to an imperfect channel. CS codes make it possible for the channel-input sequences to avoid some patterns that are susceptible to corruption in practical systems. CS codes include runlength-limited (RLL) codes and DC-free codes.