Optimal block codes for M-ary runlength-constrained channels | IEEE Journals & Magazine | IEEE Xplore