El código complementario ( CCK ) es un esquema de modulación utilizado con redes inalámbricas (WLAN) que emplean la especificación IEEE 802.11b . En 1999, se adoptó el CCK para complementar el código Barker en redes digitales inalámbricas para lograr una velocidad de datos superior a 2 Mbit/s a expensas de una distancia más corta. Esto se debe a la secuencia de chip más corta en CCK (8 bits frente a 11 bits en el código Barker), lo que significa una menor dispersión para obtener una mayor velocidad de datos, pero más susceptible a la interferencia de banda estrecha, lo que resulta en un rango de transmisión de radio más corto. Además de una secuencia de chip más corta, CCK también tiene más secuencias de chip para codificar más bits (4 secuencias de chip a 5,5 Mbit/s y 8 secuencias de chip a 11 Mbit/s), lo que aumenta aún más la velocidad de datos. Sin embargo, el código Barker solo tiene una única secuencia de chip.
Los códigos complementarios discutidos por primera vez por Golay eran pares de códigos complementarios binarios y observó que cuando los elementos de un código de longitud N eran [−1 o 1] se deducía inmediatamente de su definición que la suma de sus respectivas secuencias de autocorrelación era cero en todos los puntos excepto en el desplazamiento del cero donde es igual a K×N. (Siendo K el número de palabras de código en el conjunto).
CCK es una variación y mejora de M-ary Orthogonal Keying y utiliza "códigos complementarios polifásicos". Fueron desarrollados por Lucent Technologies y Harris Semiconductor y adoptados por el grupo de trabajo 802.11 en 1998. CCK es la forma de modulación utilizada cuando 802.11b opera a 5,5 o 11 Mbit/s. Se seleccionó CCK en lugar de otras técnicas de modulación porque utilizaba aproximadamente el mismo ancho de banda y podía utilizar el mismo preámbulo y encabezado que las redes inalámbricas preexistentes de 1 y 2 Mbit/s, facilitando así la interoperabilidad.
Los códigos complementarios polifásicos, propuestos por primera vez por Sivaswamy en 1978, son códigos donde cada elemento es un número complejo de magnitud unitaria y fase arbitraria, o más específicamente para 802.11b es uno de [1, −1, j, −j].
Las redes que utilizan la especificación 802.11g emplean CCK cuando operan a velocidades 802.11b.
La modulación CCK utilizada por 802.11b transmite datos en símbolos de ocho chips , donde cada chip es un par de bits QPSK complejo a una velocidad de chip de 11 Mchip/s. En los modos de 5,5 Mbit/s y 11 Mbit/s respectivamente, se modulan 4 y 8 bits en los ocho chips del símbolo c 0 ,...,c 7 , donde
y están determinados por los bits que se modulan.
En otras palabras, el cambio de fase se aplica a cada chip, se aplica a todos los chips de código par (empezando por ), se aplica a los dos primeros de cada cuatro chips y se aplica a los cuatro primeros de los ocho chips. Por lo tanto, también se puede considerar como una forma de codificación generalizada por transformada de Hadamard .