1. A communication system, comprising: a channel; a modulator at one end of the channel and a demodulator at the other end of the channel; a convolutional encoder having a constant length K and N=2.sup.(K-1) states and responsive to a data source and coupled to the modulator; a modified Viterbi decoder coupled to said demodulator; said decoder including means for reading successive words from the demodulator; said decoder including means for calculating kernel metric increments for only N/2 states; said decoder including selector means for comparing accumulative metrics for each metric increment and selecting survivors for two new states; and tracing means in said decoder for tracing back from a zero state; said calculating means being for calculating up to N/2 metrics.