A spread spectrum communication system employing a direct sequence method, as for example DS-CDMA (Direct Sequence Code Division Multiple Access) system, utilises a method of generating from an information signal, a transmission signal, where the transmission signal have a significantly wide bandwidth with respect to the original information signal. This is a result of spreading the information signal by a high rate spreading sequence such as for example a high bit rate pseudo noise (PN) sequence. The digitised informational signal and the high rate spreading sequence are typically multiplied together. This combination is called coding or spreading the informational signal. A plurality of coded information signals are transmitted on a same radio frequency carrier wave and jointly received as a composite signal at a receiver. Each of the coded signals overlaps all of the other coded signals, as well as noise-related signals, in both frequency and time. By correlating the composite signal with one of the unique spreading sequences, the corresponding information signal can be isolated and decoded. Each information signal is thus allocated a unique spreading code and a receiver uses the same spreading code as that used in the transmitter to perform a despread operation.
Multicode transmission scheme is a method to provide high-rate and variable-rate data services in DS-CDMA systems without decreasing the processing gain or increasing the spreading bandwidth. In such a scheme several code channels are assigned to a single user. High-rate data stream is split into a number of parallel low-rate streams. These low-rate streams are spread by different sequences and added together before power amplification.
To avoid interference between different code channels of a single user, all spreading sequences (codes) should be orthogonal within data symbol duration. To make the other-user interference as a noise-like interference, each single users code channels are further multiplied by a user specific pseudorandom spreading sequence. The number of used orthogonal codes depends on the current data rate. The receiver will have an easier task if it knows which spreading codes are currently used, or at least knows the number of code channels.
An example of orthogonal sequences is a so-called Orthogonal Gold sequences. A set (G) of Orthogonal Gold codes (OG.sub.0, OG.sub.1, . . . , OG.sub.N-1) with elements belonging to an alphabet of 0 and 1, is defined as a matrix obtained from a modulo-two summation (XOR) between each row of an orthogonal matrix (M) and a sequence (a), i.e. ##EQU1## where ##EQU2## and EQU a=[a.sub.1 a.sub.2. . . a.sub.N-1 0].
The orthogonal matrix (M) is obtained from another matrix (M) consisting of all cyclic shifts of a first maximum length PN sequence (m-sequence) {X.sub.k }, where k=1, 2, . . . , N-1, by bordering the matrix (M) on the top with a row of zeros and on the right side by a column of zeros.
The sequence (a) is another m-sequence {a.sub.k }, where k=1, 2, . . . , N-1, with a zero added on the right end. The sequences {X.sub.k } and {a.sub.k } should form a so-called preferred pair of m-sequences to obtain optimum periodic cross-correlation function. Optimum cross-correlation function is one which has minimum maximum value for a given sequence length and a given number of sequences.
However, the actual definition of the Orthogonal Gold sequences is more general, in the sense that the sequence (a) can be an arbitrary sequence with zero at the right end. In that case the set of sequences (G) would still be orthogonal but the periodic cross-correlation functions between the sequences from the set will not be optimum.
An equivalent definition of the set (G) of Orthogonal Gold sequences with elements belonging to a alphabet of -1 and +1 can be obtained by mapping 0.fwdarw.1 and 1.fwdarw.-1, while the modulo two summation should be replaced by multiplication between row elements of the matrix M and elements of the sequence a.
The usual receiver method for CDMA systems is so-called RAKE combining, which assumes weighted summation of separately despread multipath signal components, with appropriate compensation of corresponding components' delays.
In the multicode CDMA systems, the number of RAKE receivers needed for a single mobile-base station connection is equal to the maximum number of parallel code channels. As all RAKEs work in parallel, the baseband receiver consists of multiple despreaders, each corresponding to a different receiving path, and each consisting of a number of correlators corresponding to the different code channels.
The despreader implementation depends on the actual spreading method, i.e. which spreading sequence is used. If the spreading sequence is binary, with +1 and -1 elements, it is called Binary Phase Shift Keying (BPSK) spreading, while when the spreading method is complex, consisting of real and imaginary binary sequences it is called QuadraPhase Shift Keying (QPSK) spreading. Usually QPSK spreading is performed with different real and imaginary binary sequences.
The efficiency of the despreader for the multicode CDMA systems directly depends on a bank of correlators corresponding to the binary spreading sequences.
The maximum number of sequences in any orthogonal set is equal to the sequence length. Therefore, if the length of sequences is N, it is necessary to perform N.sup.2 operations for each sample at the output of the bank of correlators.
An implementation of the bank of correlators which provides less than N.sup.2 operations per output sample is an efficient implementation.
Two kinds of orthogonal sets of sequences are proposed for a Multicode DS-CDMA scheme; sets of Walsh sequences and sets of Orthogonal Gold sequences. A bank of correlators corresponding to a set of Walsh sequences can be efficiently implemented by using a Fast Hadamard Transform (FHT). In that, case the number of operations required for each output sample is N.times.log.sub.2 N. An implementation of a bank of correlators corresponding to orthogonal Gold sequences that requires less than N.sup.2 operations is also desirable.