A new technique is proposed for constructing trellis codes. which provides an alternative to Ungerboeck's method of "set partitioning." The new codes use a signal constellation consisting of points from ann-dimensional latticeLambda, with an equal number of points from each coset of a sublatticeLambda '. One part of the input stream drives a generalized convolutional code whose outputs are cosets ofLambda ', while the other part selects points from these cosets. Several of the new codes are better than those previously known.