Complementary code keying
Complementary code keying (CCK) can be added to direct sequence spread spectrum (DSSS) to enhance the speed. Consider DSSS operating at 11 million chips (Mchips) per second, which happens to be the rate of an IEEE 802.11b wireless LAN (also referred to as Wi-Fi). A chip is the term used to describe a signal component of the noise modulated code. In reality, the chipping rate and the data rate of the codes are often the same. Unfortunately the user's data rate can often be much less that the chip rate.
In IEEE 802.11b, for example, an 11-bit code is used and thus the basic DSSS operation is at 1 Mcodes per second. To achieve a user data rate of 1 Mbps, data are represented using 1 bit per codeword. For 2 Mbps operation, the algorithm uses 2 bits per code word. Recall that Shannon's Theorem relates the number of recognizable bits in a codeword to the amount of noise in the transmission environment. The more noise, the fewer the recognizable bits in a single codeword.
In CCK, the base codeword is changed from an 11-bit code to an 8-bit code, which yields a code rate of 1.375 Mcodes per second. Using 4 bits per codeword yields 5.5 Mbps (4 * 1.375) and 8 bits per codeword yields 11 Mbps (8 * 1.375).
Putting the pieces together, we see that if we start out with an 8-bit DSSS/CCK coding scheme, the facility achieves a speed of 11 Mbps. If there is too much noise the bits per code is cut in half and synchronization at 5.5 Mbps is attempted. If there is no success at this level, then the CCK component is dropped and the 11-bit codeword of basic DSSS is used in an attempt to get 2 Mbps. Again failure at 2 Mbps results in an attempt at 1 Mbps. Failure at 1 Mbps means that it is time to move the transmitters and receivers closer to one another or away from the source of the interference.