· Walsh Codes
In the forward link (the leg from the tower to the handset), CDMA uses Walsh codes which are generated by applying the Haddamard transform on 0 repeatedly.
H1 = 
H2n = [Hn Hn ; Hn 1-Hn]
The matrix will grow by powers of 2. The first row is discarded because it will usually be a constant but all the rows below it will be mutually orthogonal. That is why you only get N-1 different codes for N length codes.
For H4 the first row (W0) is [ 0 0 0 0]
W1 = [ 0 1 0 1 ]
W2 = [ 0 0 1 1 ]
W3 = [ 0 1 1 0 ]
Notice first that W1, W2 and W3 are all orthogonal to each other. Second, note that a shifted version of W2 is W3. That is why Walsh codes can only be used for the forward link. Although Walsh codes are perfectly orthogonal to each other, shifted Walsh codes are not. That means that during transmission, all the signals sent using a particular set of Walsh codes must be in perfect sync. This is only possible from the tower to the handset since the tower is sending all the outgoing signals and thus has no problem with being in synchronization with itself. However, there is no effective way to synchronize all of the handsets to the degree necessary, so Walsh codes can't be used for the reverse link.
©2001 Kyle Bryson, Alison Chen, and Allen Wan