Abstract: In a spread spectrum system, the transmitter encodes and modulates a data stream by use of trellis-coded modulation. Trellis-coded modulation uses a convolutional coding scheme or a block code scheme along with a bandwidth-efficient signal constellation, such as QAM (quadrature amplitude modulation) or MPSK (M-ary phase-shift keying). Mapping of the data stream to the constellation signals can be implemented in a look-up table. At the receiver, the received data is despread and passed to a decoder for recovery of the original data stream. The decoder can be a Viterbi decoder if convolutional coding is used or a different decoding mechanism if block coding is adopted. This system achieves high coding gain without a decrease in processing gain, as well as providing increased flexibility in the choice of coding rates.