Time diversity is a technique common to most digital transmission systems.  The Rake Receiver is used to find and demodulate multipath signals that are time delayed from the main signal.

Rake Receiver to Find and Demodulate Multipath Signals.

Data is Interleaved : Spreads Adjacent Data in time to Improve Error Correction Efficiency

Convolutional Encoding : Adds Error Correction and Detection

Viterbi Decoding : Most Likely Path Decoder for Convolutionaly Encoded Data

Transmitted signals are spread in time by use of interleaving.  Interleaving the data improves the performance of the error correction by spreading errors over time. Errors in the real world during radio transmission usually occur in clumps, so when the data is de-interleaved, the errors are spread over a greater period of time. This allows the error correction to fix the resulting smaller, spread out errors.

Forward error correction is also applied to the transmitted data. This is usually done by adding parity bits that allow received errors to be detected and to some extent corrected. Performance of the receiver can be further enhanced by using a maximal likelihood detector.  The particular scheme used for CDMA is convolutional encoding in the transmitter with Viterbi decoding using soft decision points in the receiver.