A digital (de)modulation
system uses a larger code set of M codes for N length codes, where M>N, to provide an increased
data rate while maintaining the
coding gain. For example, the
system can use 16 different codes each having a length of 11 chips in a code set while the conventional M-ary
keying systems use a code set size of 8 for 11-
chip codes or 8-
chip codes. By extending the code set size, the
system increases the
data rate of the system. With 16 codes and the ability to change the sign of the code to be transmitted, the system can
encode 5
data bits on both I and Q, so a total of 10
data bits can be encoded per code symbol. In this embodiment, a code symbol contains an 11
chip code on a I modulation
branch and an 11 chip code on a Q modulation
branch. As such, using 11 chip codes and a chip rate of 11 Mhz, the system provides a
data rate of 10 Mbps while conventional M-ary
keying systems can only achieve 8 Mbps using the same code length and chip rate. By extending the code length, the
processing gain is increased. The extended code set is not orthogonal, so a non-zero cross-correlation value results between the different codes of the code set. However, the resulting
noise and multipath performance degradation can be kept small by choosing code sets with small cross-correlation values (nearly orthogonal). The magnitudes of both cross-correlation values and auto-correlation sidelobes should preferably be below half a code length. In some embodiments, the code set is derived from orthogonal codes which are modified to reduce the autocorrelation sidelobes associated with the orthogonal codes. In other embodiments, the code set is derived using a complementary code which provides low autocorrelation sidelobes and is modified to reduce the cross-correlation values between the codes.