Multiple access coding for radio communications5771288Abstract Individual information signals encoded with a common block error-correction code are assigned a unique scrambling mask, or signature sequence, taken from a set of scrambling masks having selected correlation properties. The set of scrambling masks is selected such that the correlation between the modulo-2 sum of two masks with any codeword in the block code is a constant magnitude, independent of the mask set and the individual masks being compared. In one embodiment, when any two masks are summed using modulo-2 arithmetic, the Walsh transformation of that sum results in a maximally flat Walsh spectrum. For cellular radio telephone systems using subtractive CDMA demodulation techniques, a two-tier ciphering system ensures security at the cellular system level by using a pseudorandomly generated code key to select one of the scrambling masks common to all of the mobile stations in a particular cell. Also, privacy at the individual mobile subscriber level is ensured by using a pseudorandomly generated ciphering key to encipher individual information signals before the scrambling operation. Claims What is claimed is: Description BACKGROUND
TABLE 1
______________________________________
Example of 16-bit Kerdock CSRs
representative
sequence
______________________________________
0 0000 0000 0000 0000
1 0011 1010 0101 1111
2 0001 1101 0110 1111
3 0100 1110 0111 0111
4 0010 0111 0111 1011
5 0101 0011 0111 1101
6 0110 1001 0111 1110
7 0111 0100 0011 1111
______________________________________
2. Permute each (N/2-bit) half of each Kerdock CSR to obtain the left and right halves of a permuted sequence. The permutation is based on the primitive element "a" in the Galois field GF(N/2) used to form each half of the Kerdock CSRs. The permutation is defined by forming the Galois field elements in the order 0, 1, a, a.sup.2, . . . , a.sup.N/2-2. These correspond to the positions 0 through N/2-1 in each half of the Kerdock CSR. The corresponding position in the permuted sequence is obtained by expressing each element as an r-tuple, where r=log.sub.2 (N/2). The r-tuple has the form b.sub.0 +b.sub.1 a+. . . +b.sub.r-1 a.sup.r-1. By interpreting the coefficients b.sub.0 through b.sub.r-1 as coefficients of powers of 2 (i.e., b.sub.0 +2b.sub.1 +4b.sub.2 +. . . +2.sup.r-1 b.sub.r-1), an integer in the range ›0, N/2-1! results (with b.sub.s =0 or 1, for all s), the coefficients b.sub.s providing a binary representation of the integer which gives the corresponding position in each half of the permuted sequence. Note that the binary number for the corresponding position is just b.sub.r-1 b.sub.r-2 . . . b.sub.2 b.sub.1 b.sub.0. For the example above, the primitive element "a" in GF(8) used to form the Kerdock code is defined by the primitive polynomial p(X)=X.sup.3 +X+1, which gives 3-tuple representations of the elements in GF(8) given in Table 2 (see the above-mentioned MacWilliams and Sloane text, page 110). Using the approach described above, the permutation mapping for each half of the sequence giving the corresponding new position in the permuted sequence is also shown in the following Table 2 (which is easily verified by reading the 3-tuples backwards).
TABLE 2
______________________________________
GF(8) and Half Sequences Permutations
field 3-tuple old new
element form position
position
______________________________________
0 000 0 0
1 100 1 1
a 010 2 2
a.sup.2 001 3 4
a.sup.3 110 4 3
a.sup.4 011 5 6
a.sup.5 111 6 7
a.sup.6 101 7 5
______________________________________
Applying the permutations to each Kerdock CSR in Table 1 gives the set of permuted sequences in the following Table 3.
TABLE 3
______________________________________
Set of 16-bit Permuted Sequences
index sequence
______________________________________
0 0000 0000 0000 0000
1 0011 1001 0101 1111
2 0001 1110 0111 0111
3 0101 0011 0110 1111
4 0010 0111 0111 1101
5 0100 1101 0111 1110
6 0111 0100 0111 1011
7 0110 1010 0011 1111
______________________________________
3. Having constructed N/2 permuted sequences of length N, these may be converted into N/2 scrambling masks by modulo-2 adding a "base" sequence of N bits. As in Method A, the base sequence can be chosen so that the scrambled information signals have desired auto-correlation properties, as well as cross-correlation properties, when echoes or time misalignments are present. Also, in the case of cellular mobile radio communication, a different base sequence can be assigned to different cells. In this case, correlation properties between different base station sequences would be considered. For the example above, suppose the arbitrary base sequence is {0000111100001111}. The resulting set of scrambling masks is given in Table 4.
TABLE 4
______________________________________
Set of 16-bit Scrambling Masks
index sequence
______________________________________
0 0000 1111 0000 1111
1 0011 0110 0101 0000
2 0001 0001 0111 1000
3 0101 1100 0110 0000
4 0010 1000 0111 0010
5 0100 0010 0111 0001
6 0111 1011 0111 0100
7 0110 0101 0011 0000
______________________________________
This completes Method B for forming an ideal set of N/2 scrambling masks of length N. It will be understood that the scrambling mask Methods A and B give masks having good cross-correlation properties when two signal waveforms are time-aligned, regardless of the base sequence, or mask, chosen. The base mask can provide good auto-correlation properties, which is important when echoes of a signal are present. The base mask can also provide good cross-correlation properties when two signals are not time-aligned, or echoes are present. The present invention may be readily incorporated into a multiple access spread spectrum communications system by storing these scrambling masks in a look-up table in a RAM or ROM memory, for example, from which a particular mask is retrieved by supplying its associated address. A system for implementing the scrambling masks into a spread spectrum system is illustrated in FIG. 7. While described in terms of a memory look-up table, it will be appreciated that a suitable code generator, such as a digital logic circuit or microcomputer, that produces on-line the scrambling masks indicated by selection control input signals may also be used. Source information, e.g., speech, is converted to blocks of M (or M+1) binary bits in a source coder 50, and these bit blocks are encoded by an error correction orthogonal (or bi-orthogonal) block coder 52. The orthogonal 2.sup.M -bit block codewords are scrambled by a modulo-2 N-bit adder 53 with a scrambling mask, constructed as described above, retrieved from a look-up table in a memory 60. In the case of ideal scrambling masks, there are either n.sub.A =N.sup.1/2 or n.sub.B =N/2 scrambling masks, depending on which method was used to generate the scrambling mask set. Thus, the number of bits needed to address each mask from storage 60 is either b.sub.A =log.sub.2 (n.sub.A) or b.sub.B =log.sub.2 (n.sub.B), and by transmitting the b.sub.A -bit or b.sub.B -bit scrambling mask selection address associated with a particular scrambling mask to the memory 60, that mask is retrieved from storage and modulo-2 added to the block coded signal. The ability selectively to address and retrieve a specific scrambling mask becomes important in determining the order in which signals are decoded from a received composite signal. For example, if stronger coded information signals are decoded first and removed from the composite signal before weaker signals are decoded, the scrambling masks must be ordered by the signal strength of their associated, coded information signals. In CDMA subtractive demodulation according to the patent applications incorporated by reference above, the scrambling mask corresponding to the strongest information signal would be selected for decoding. After that signal is removed, the scrambling mask corresponding to the next strongest information signal is selected and so forth until the weakest signal is decoded. The masked block codewords from the N-bit adder 53 may be applied to a parallel-to-serial converter and modulator 54 where they are impressed on a radio frequency carrier. The modulated signal is amplified and transmitted via a transmitter 56 and antenna 58. At the receiver, the composite signal received by an antenna 61 is provided to a receiver demodulator 62 that demodulates, samples, and digitizes the composite signal. A serial-to-parallel converter 64 converts the serial samples into parallel blocks of signal samples (which may be complex, corresponding to in-phase and quadrature signal components). The order in which each information signal is decoded in the receiver is determined by the receive scrambling mask selection address b.sub.A or b.sub.B applied to a scrambling mask memory 66. In a specialized N-sample multiplier 68, each of the N parallel samples buffered in the serial-to-parallel converter 64 is multiplied by +1 or -1, depending on the scrambling mask retrieved from the memory 66. One way to perform this multiplication is to exclusive-OR each bit of the digital sample with the corresponding scrambling mask bit. For example, if the first of the N digital samples is 1011 and the first scrambling mask bit corresponds to -1, then the first of the N output samples would be 0100. If the received samples are complex, different scrambling masks could be used for the in-phase and quadrature components. The descrambled signals are decoded in a block decoder 70, which may include an FWT circuit 72. The index of the transform component having the largest correlation magnitude (bi-orthogonal code) or value (orthogonal code) is determined and selected as the decoded information by an ordering and selection circuit 74. A suitable device for determining the largest of a number of input values is described in co-pending, commonly assigned U.S. patent application Ser. No. 761,380 filed Sep. 18, 1991, which is now U.S. Pat. No. 5,187,675. For simplicity in this application, the term "magnitude" will be used to refer to correlations with both orthogonal and bi-orthogonal codes. The FWT circuit 72 would preferably operate on complex numbers when the demodulator 62 and converter 64 deliver complex signal samples, which is often the case when the phase of the received signal is not known. The decoded M or M+1 bits of information are received by a source decoder 76 for conversion into analog form, e.g. speech. Using the scrambling masks generated as described above, interference from signals having scrambling masks different from the one selected at the receiver is distributed equally, at least in theory, over each of the FWT circuit's correlation outputs. Because no spurious peaks occur, the risk is minimized that an error will be made in determining the largest correlation as the decoded information. In multiple access spread spectrum communications, it is not uncommon for the receiver to use the method of RAKE combining to combine correlations from different signal rays (i.e., to collect energy from a signal and its echoes). For the system shown in FIG. 7, this would appear as a RAKE combining element 73 between the FWT circuit 72 and the ordering and selection circuit 74 as illustrated in FIG. 8. For each of the N outputs of the FWT circuit, results from different signal times-of-arrival would be weighted and accumulated, before being sent to the ordering and selection circuit. Data corresponding to the different times-of-arrival would be provided by the serial-to-parallel converter 64. Furthermore, a new method, referred to as WRAKE combining, could be used in place of conventional RAKE combining. The RAKE combining technique and the new efficient WRAKE approach are detailed in co-pending, commonly assigned U.S. patent application Ser. No. 07/857,433 filed on Mar. 25, 1992, for "RAKE Receiver with Selective Ray Combining", which is expressly incorporated here by reference and which is now U.S. Pat. No. 5,237,586. When the length N of the scrambling masks, or signature sequences, is an odd power of two (i.e., when N=2.sup.2Z-1 where Z=1, 2, 3, . . . ), ideal correlation properties are not obtainable. In other words, it is impossible to construct the scrambling masks such that the sum of any two is a bent sequence, equally correlated in magnitude to all N Walsh-Hadamard codewords. In this case, however, one can use a "half-bent" sequence, which is a sequence that is equally correlated in magnitude to half of the N codewords and has zero correlation with the other half. Thus, it is possible to construct sets of scrambling masks such that the sum of any two is a half-bent sequence. A set of scrambling masks having this property may be called a "semi-ideal" set. In accordance with the invention, two ways of constructing semi-ideal sets of scrambling masks are provided. In the first way, either Method A or Method B (the two Methods described above for creating ideal sets of scrambling masks) is used to generate a set of either (N').sup.1/2 or N'/2 scrambling masks, respectively, of length N', where N'=2N (where N is an odd power of two). The modulo-2 sum of any two of these scrambling masks of length N' would be a bent sequence, equally correlated in magnitude to N'=2N codewords of length N'=2N. Then, the last half of each scrambling mask (which is N bits long) is dropped, leaving masks of length N'/2=N. Therefore, the modulo-2 sum of any two of these truncated scrambling masks of length N would be a sequence of length N that could be equally correlated in magnitude to at most only N'/4=N/2 codewords of length N'/2=N. Thus, depending on which Method is used, a set of either (2N).sup.1/2 or N scrambling masks of length N is formed such that the sum of any two scrambling masks is half-bent. In the second way of constructing semi-ideal sets of scrambling masks, either Method A or Method B above is again used to generate a set of either (N').sup.1/2 or N'/2 scrambling masks, respectively, of length N', where N'=N/2 (where N is an odd power of two). The modulo-2 sum of any two of these scrambling masks of length N' would be a bent sequence, equally correlated in magnitude to N'=N/2 codewords of length N'=N/2. Then, for each N' length sequence, a copy of itself is appended, giving masks of length 2N'=N. Alternatively, it is also possible to append a copy of a different mask to each mask instead of appending to each a copy of itself. Therefore, the modulo-2 sum of any two of these duplicated scrambling masks of length N would be a sequence of length N that still could be equally correlated in magnitude to at most only N'=N/2 codewords of length 2N'=N. Thus, depending on which Method is used, a set of either (N/2).sup.1/2 or N/4 scrambling masks of length N is formed such that the sum of any two scrambling masks is half-bent. For both cases of N (i.e., N either an even or odd power of two), the above methods may not yield large enough sets of scrambling masks. These sets can be augmented by more scrambling masks, but the modulo-2 sum of two such masks may no longer be a bent or half-bent sequence. However, these sets can advantageously be augmented so that the modulo-2 sum of any two masks is equally correlated in magnitude to at least some subset of the codewords. A sequence that is equally correlated in magnitude to a subset of the codewords and uncorrelated to the remaining codewords will be referred to as a "partially bent" sequence. To augment ideal or semi-ideal sets of scrambling masks, two methods (Methods 1 and 2) may be employed. Both methods use special masks which are modulo-2 added to each scrambling mask in the original ideal or semi-ideal set. Each special mask produces another set of scrambling masks and these sets may be combined to form an augmented set of scrambling masks. If U is the number of scrambling masks in the original ideal or semi-ideal set, then the number of masks in the augmented set is SU, where S is the number of special masks. These special masks are formed by concatenating P patterns of length L, where PL=N and P and L are also powers of two. In Method 1, there are two possible patterns: the all-zero pattern (L zeroes), and the all-one pattern (L ones). A set of S.sub.1 scrambling masks with the length P is formed, using either Method A or Method B (the two Methods described above for forming ideal sets of scrambling masks, which are also known as "good" sets of scrambling masks because of their "good" correlation properties, such as having minimal mutual cross-correlations between members of the sets). Each of these P-length scrambling masks is extended to an N-length special mask (complement mask) by replacing each "0" with the pattern of L zeroes and replacing each "1" with the pattern of L ones. Then the original set of U scrambling masks of length N is augmented to S.sub.1 U masks by modulo-2 adding each special mask to the U masks in the original set. For example, consider the previous example set of four scrambling masks of 16-bit length created by Method A. To augment this set using method 1, a set of scrambling masks of length P=4 is needed. Using Method A for this set yields two masks: {0000}, and {0001}. Replacing each 0-bit with four zeroes and each 1-bit with four ones yields two special masks: {0000 0000 0000 0000} {0000 0000 0000 1111}. Applying the first special mask to the original set gives the elements of the original set: {0000 1010 0011 1001} {0000 1100 0110 1010} {0000 1001 0101 1100} {0000 1111 0000 1111}. Applying the second special mask to the original set gives the following elements of a new set: {0000 1010 0011 0110} {0000 1100 0110 0101} {0000 1001 0101 0011} {0000 1111 0000 0000}. Thus, using both special masks, an augmented set of eight scrambling masks of 16-bit length is obtained. In Method 2, each special mask consists of a single L-bit pattern repeated P times. A set of S.sub.2 scrambling masks with length L is formed using either Method A or Method B. Each of these length L masks is then repeated P times, giving rise to S.sub.2 special masks (pattern masks) of length N. As in Method 1, each special mask is modulo-2 added to the original set of U scrambling masks to produce U new scrambling masks. Thus, an augmented set of S.sub.2 U scrambling masks is formed. For example, consider again the previous example set of four scrambling masks of 16-bit length created by Method A. To augment this set using Method 2, a set of scrambling masks of length L=4 is needed. Again, using Method A for this set yields two masks: {0000}, and {0001}. Repeating each pattern P=4 times yields two special masks: {0000 0000 0000 0000} {0001 0001 0001 0001}. Applying the first special mask to the original set gives the elements of the original set: {0000 1010 0011 1001} {0000 1100 0110 1010} {0000 1001 0101 1100} {0000 1111 0000 1111}. Applying the second special mask to the original set gives the following elements of a new set: {0001 1011 0010 1000} {0001 1101 0111 1011} {0001 1000 0100 1101} {0001 1110 0001 1110}. Thus, using both special masks, an augmented set of eight scrambling masks of 16-bit length is obtained. It will be appreciated that Methods 1 and 2 advantageously can both be used together, either by combining them individually, yielding S.sub.1 +S.sub.2 special masks, or preferably by applying them to each other, yielding S.sub.1 S.sub.2 =S.sub.T special masks. Thus, as many as S.sub.T U scrambling masks, where U is the number of scrambling masks in the original set (Method A or B), can be generated. For example, consider the special masks formed in the examples above. Applying the first special mask of Method 2 to both special masks of Method 1 gives both Method 1 special masks: {0000 0000 0000 0000} {0000 0000 0000 1111}. Applying the second special mask of Method 2 to both special masks of Method 1 gives two new special masks: {0001 0001 0001 0001} {0001 0001 0001 1110}. Thus, using both Methods 1 and 2, four special masks are obtained. In general, S.sub.1 S.sub.2 >S.sub.1 +S.sub.2, except when S.sub.1 =S.sub.2 =2. Applying the first special mask to the original set gives the original set: {0000 1010 0011 1001} {0000 1100 0110 1010} {0000 1001 0101 1100} {0000 1111 0000 1111}. Applying the second special mask to the original set gives the new set (encountered in Method 1): {0000 1010 0011 0110} {0000 1100 0110 0101} {0000 1001 0101 0011} {0000 1111 0000 0000}. Applying the third special mask to the original set gives the new set (encountered in Method 2): {0001 1011 0010 1000} {0001 1101 0111 1011} {0001 1000 0100 1101} {0001 1110 0001 1110}. Applying the fourth special mask to the original set gives the new set (not yet encountered): {0001 1011 0010 0111} {0001 1101 0111 0100} {0001 1000 0100 0010} {0001 1110 0001 0001}. A cellular communications system consists of base stations and users in each cell. For both uplink (user to base station) and downlink (base station to user) transmissions, interference from adjacent or nonadjacent cell signals can be minimized by carefully assigning different scrambling masks to the signals in different cells. The problem is analogous to frequency assignment or allocation in current cellular mobile radio systems. There is some limited number of scrambling masks which form a set of scrambling masks having the desirable correlation properties. Of the total scrambling masks, there are subsets of scrambling masks which have good correlation properties, whereas correlation properties between masks of different subsets may not be as good. Also, if there are more signals than scrambling masks, the scrambling masks must be reused. To minimize interference, scrambling masks with "good" correlation properties (i.e., having the property that the average correlation of the sum of two scrambling masks to all possible codewords is minimal) should be used in close proximity (e.g., in the same cell or adjacent cells); those with correlation properties that are not as "good" (i.e., having the property that the average correlation of the sum of two scrambling masks to all possible codewords is more than minimal) should be used far apart (e.g., in nonadjacent cells). Correlation properties can include the average correlation to all possible codewords of the sum of two scrambling masks, where one of the masks has been shifted with respect to the other. Detailed above are methods for generating augmented sets of SU scrambling masks, where S is the number of special masks used (S=S.sub.1 or S.sub.2 or S.sub.1 S.sub.2). In this way, there are S subsets of U masks each. Two masks from the same subset have better cross-correlation properties (i.e., the sum of the masks has, on average, lower correlations to all possible codewords) than two masks from different subsets. This property can be exploited when allocating masks to different signals in a CDMA system. Signals in close proximity can be assigned masks from the same subset, whereas signals far apart can be assigned scrambling masks from different subsets. For example, each cell in a cellular system can be allocated one of the S subsets of U masks. Signals within a certain cell are assigned a mask from that cell's allocated subset. Thus, interference is minimized within the cell, since each subset has optimal correlation properties (i.e., the sum of two scrambling masks is bent or half-bent). Therefore, within each cell, the scrambling masks available are of the form s+u, where s is one of the S special masks, u is one of the masks in the original set of U masks, and "+" denotes bit by bit modulo-2 addition. Thus, all masks used within a cell have the same special mask s, which can be thought of as a base station identification (ID) mask. The mask u can then be termed a user ID mask. Thus, by storing or generating S base station ID masks and U user ID masks, a transmitter or receiver can obtain any of the SU scrambling masks. This is usually more economical than storing or generating all SU masks individually. For a first numerical example, suppose the mask length is N=128 bits. The above-mentioned second way of generating masks when N is an odd power of two together with Method B gives N/4=32 scrambling masks of 128-bit length. A single maximal-length sequence of 127-bit length, extended to 128 bits, can be added to all thirty-two scrambling masks. This gives one subset of U masks, where U=32. Suppose this set is augmented using both complement masks (Method 1) and pattern masks (Method 2), using P patterns of length L each, such that P.times.L=N=128. For the complement masks (Method 1), suppose P is chosen to be sixteen and L is chosen to be eight. Using Method B, this gives P/2=8 complement masks. For the pattern masks (Method 2), suppose P is eight and L is sixteen. Using Method B, this gives L/2=8 pattern masks. Together, using both complement and pattern masks, this gives 8.times.8=64 special masks. Thus, there are sixty-four subsets of thirty-two masks each. Therefore, there are sixty-four different base station ID masks and thirty-two different user ID masks (U=32). If only eight base station ID masks are needed, then either pattern masks or complement masks can be used to give eight subsets of thirty-two different user ID masks each. As a second numerical example with N=128, the above-mentioned first way of generating masks when N is an odd power of two together with Method A gives (2N).sup.1/2 =16 scrambling masks of 128-bit length. Using the same eight pattern masks and the same eight complement masks as in the first numerical example above, sixty-four different base station ID masks and sixteen different user (signal) ID masks can be obtained. As another example, 512 scrambling masks can be formed using sixteen base station ID masks and thirty-two user ID masks. One set of thirty-two scrambling masks is allocated to at most thirty-two conversations taking place in a particular cell. Another set of thirty-two scrambling masks is allocated to at most thirty-two conversations taking place in an adjacent cell, and so on. In this way, up to sixteen different base stations/cells can be provided with enough masks unique to themselves for supporting up to thirty-two conversations each, all on the same frequency channel. Furthermore, it is possible to factorize the mask set into sixteen base station ID masks and thirty-two user ID masks such that every desired mask can be produced by bitwise modulo-2 adding a desired base station ID mask with a desired user ID mask, thereby reducing storage requirements from 512 masks to 16+32=48 masks. In addition, in the case that cross-correlations between the masks are not all equally low, it is possible to choose each set of thirty-two masks used within the same cell, and therefore more likely to interfere with each other, to have the lowest mutual cross-correlations, while the cross-correlations with masks in different sets in different cells are allowed to have higher magnitudes. Which of the thirty-two user ID masks a particular mobile would use (in the case of a static, non-cycled allocation) would be conveyed to the mobile by the base station on call set-up. In the case of a pseudorandomly cycled mask allocation that is described below, the offset number to be used by a particular mobile would be conveyed by the base to the mobile at call set-up. The base ID mask in use by surrounding base stations would be conveyed by a base station to all mobiles in its cell by being broadcast on a broadcast channel. The base ID may be static, while the user ID mask selection that the base ID is combined with is cyclic. The reason for this is to permit a mobile station more easily to listen for fixed base ID codes in order to identify which bases it can hear. In situations where N is an odd power of two or when more than either n.sub.A =N.sup.1/2 or n.sub.B =N/2 scrambling masks are desired, it may not be possible to achieve the desirable Walsh spectrum flatness property. In that case, it may be preferable that the "non-flat" scrambling masks, which should be as "flat" as possible, be generated by numerical synthesis methods performed by a computer search. Using non-flat masks, it is desirable to average out an uneven distribution of interference correlations to avoid a particular pair of orthogonal codewords having more than the mean level of mutual interference or to avoid a particular codeword/information bit block from exhibiting a higher than average error rate. The effect of any unevenness may be reduced by cycling the selection of scrambling masks using a systematic or pseudorandom counter to select the masks, as described below. It will be appreciated that such an approach is a form of code hopping, which is analogous to the idea of frequency hopping, and may be applied in any CDMA system that employs a fixed set of codes or signature sequences. Any CDMA system can be viewed as encoding an information signal into blocks of L code symbols. Each block is then impressed with a scrambling mask (i.e., signature sequence) of length L. For example, traditional CDMA effectively repeats each information bit L times (the encoding) then applies a scrambling mask of length L (either a sequence of length L or a subsequence of length L). The method described below gives a form of orthogonal code hopping, where no two signals within the same group (e.g., cell or cluster of cells in a cellular system) use the same signature sequence at the same time. An alternative to orthogonal code hopping is semi-orthogonal code hopping, where hopping sequences are designed so that two signals within the same group rarely use the same signature sequence. This alternative is used when there are more signals than there are available signature sequences. A third alternative is random code hopping, where the signature sequence for each signal is chosen in a pseudorandom manner, independent of the other signals. Such an alternative is simpler to implement, but performance is degraded. When the allocation of scrambling masks to signals is fixed, and the mutual correlation properties between the members of the set of scrambling masks are not flat (e.g., the modulo-2 sum of two members of the set is not a bent sequence), an adverse situation can arise where two signals having greater than the mean level of correlation between themselves interfere permanently with each other to a greater than mean extent. This situation can be prevented by time-varying or cycling the allocation of scrambling masks to signals in such a way that they each still receive a unique mask at any point in time but the signals exhibiting more than the mean level of correlation between each other are not always the same signals. For example, the interfering signal exhibiting strong correlation with a given signal may be a weaker signal at one instant and a stronger signal at another instant, but the interfering signal will thus not always be a stronger signal. Therefore, adverse interference situations are not permanent, but rather are transient. A colloquial description of the effect is to say that the misery is equally shared so that it is tolerable to all instead of being intolerable to some. This desirable cyclic or time-varying allocation of scrambling masks to signals may be effected by generating a pseudorandom number as a function of a codeword counter. The pseudorandom number produced is the same at all transmitters and receivers. To guarantee that each transmitter-receiver selects a different scrambling mask at any time, this pseudorandom number is offset by zero for the first signal, by one for the second signal, and so forth using modulo-t addition, where t is the number of scrambling masks in the set. In this way t different signals can each be guaranteed a unique but time-varying choice of scrambling mask. The offset pseudorandom number may be used to address a memory containing the set of scrambling masks in order to extract the scrambling mask that applies at each moment. To give an even more random relation between the selections for different signals, the addressing order which maps each offset pseudorandom number to a particular scrambling mask may also be varied from instant to instant using another pseudorandom number. This variation may be accomplished by modulo adding this second pseudorandom number to the first offset pseudorandom number and/or by using the second pseudorandom number to permute the bits of the first offset pseudorandom number before they address the scrambling mask memory. The present invention may be used in a cellular radio telephone communications system although those skilled in the art will recognize that the present invention may be used in other types of communication systems as well. In CDMA based cellular systems employing subtractive demodulation, each set of scrambling masks generated in accordance with the present invention provides for privately protected transmissions in each cell. In other words, even if one were to decode the composite signal using the appropriate orthogonal block codes, one would still need to know which scrambling masks are assigned to each mobile communication before the information signal could be descrambled. However, in order for each mobile station to decode its own signal from the received composite signal, it must be able to decode and remove stronger signals received for other mobiles within the cell. As a result of this subtractive decoding procedure, each mobile within a cell must know the scrambling masks assigned to all other mobiles communicating with the base station associated with the cell. In addition, these scrambling masks may be selected in a pseudorandom manner based on a code key available to all mobiles serviced by that particular cell. To prevent mobiles within the cell from listening in on other conversations, preferred embodiments of the present invention ensure private individual conversations by enciphering the individual information signal before it is block coded and scrambled. Only that mobile and the associated base station know that individual cipher key. The system security and individual privacy features of the present invention will now be described in conjunction with FIG. 9. A source coder 80 converts speech information into digital form and assembles the information into blocks of M (or M+1) information bits for subsequent orthogonal (or bi-orthogonal) block coding. Only the M bit alternative is illustrated in FIG. 9, but the M+1 bit alternative is simply obtained by replacing M everywhere with M+1 in FIG. 9. Although not an essential aspect of this invention, the source coder 80 may also include conventional error correction coding capabilities. Before orthogonal coding, the M-bit (or (M+1)-bit) block is individually enciphered by modulo adding in an M-bit (or (M+1)-bit) adder 82 a unique enciphering bit sequence produced by a transmitter sequence generator 84. The pseudorandom numbers produced as a function of a cipher key K1 and a code key K2 are combined with the information from the source encoder 80 by M-bit adder 82 to the produce enciphered information signals. These enciphered information signals are then spread-spectrum encoded using preferably orthogonal or bi-orthogonal block error-correction coding in an orthogonal block coder 86 before application of selected scrambling masks to the block codes in a bitwise exclusive-OR circuit 88. The M-bit ciphered block is orthogonally (or bi-orthogonally) encoded in the orthogonal block coder 86 producing an N-bit encoded signal block (N=2.sup.M or 2.sup.M-1 for orthogonal or bi-orthogonal encoding, respectively) that is bitwise exclusive-OR'ed in the parallel exclusive-OR circuit 88 with a scrambling mask retrieved from a transmitter scrambling mask memory 90 and then converted to a serial bitstream and modulated on a radio carrier as represented in function block 92. The modulated signal is amplified by a suitable amplifier 94 and transmitted by an antenna 96. The scrambling mask is selected from a look-up table of masks in memory 90 by applying an N.sub.1 -bit address to the scrambling mask memory 90. Thus, N.sub.1 is the number of bits in the address to the scrambling mask memory 90, and 2.sup.N1 is the maximum number of scrambling masks in the memory 90 that are uniquely addressable with an N.sub.1 -bit address. An important feature of this embodiment of the present invention is the cyclical or pseudorandom variation of the scrambling masks retrieved by a specific look-up table address. Thus, a unique scrambling mask must be generated and that mask selection procedure must be pseudorandomly varied. That table address is advantageously determined in part by the N.sub.1 -bit sequence called above code key K2. When an access code is received for selecting a particular scrambling mask, the code key K2 may be combined with the received access code using modulo arithmetic in N.sub.1 -bit adder 98. The code key K2 is preferably not pseudorandomly generated, rather it is a constant that determines the operation of the pseudorandom number generator used for selecting scrambling masks. As described in more detail below, the code key K2 ensures that the actual scrambling mask address varies pseudorandomly for each mobile station. The adder 82 may be a bitwise exclusive-OR circuit or a modulo-2 M-bit adder or other equivalent circuit. A modulo-2 adder may be modified to generate different cipher keys such as K1 by varying the number of bit-carry connections in the adder. All that is required is that each possible M-bit input block maps to a unique output block dependent on the cipher key K1 sequence and, as described below, the code key K2 sequence. Of course, the cipher key K1 is preferably unique to individual mobile stations to achieve the requisite privacy. The cipher key K1 may also change for each new M-bit input block so that cipher key K1 changes many times during a single conversation. The intended receiver must therefore synchronize its receiver sequence generator with the transmitter sequence generator 84. Synchronization may be facilitated by driving the transmitter sequence generator 84 with a systematically varying time counter such as a frame counter 100. The receiver and transmitter then coordinate which frame or block number of the signal block is being decoded in order to synchronize operations. The details of obtaining initial frame counter agreement and maintaining it are not described here in detail because time-of-day synchronization of cipher systems is well known in the communications art. The pseudorandom number generator 84 for scrambling mask selection randomizing is required to produce the same value in each of the transmitter-receivers requiring a mutually unique selection. They each are therefore in possession of the same system code key K2 which is advantageously a multi-bit digital control word on which depends the pseudorandom number sequences produced by the generator 84. This system code key K2 may be globally used in one cell, one network, one country, or all over, in which case it could be permanently built into the design of the pseudorandom number generator. Otherwise, means may be provided either for programming a mobile transmitter-receiver with or for receiving the code key K2 for a particular cell or network. Such means can include a physical connection of the mobile to a programming unit, inserting a module or code card into the mobile, acoustic connection of the mobile to a programming unit via an acoustic coupler to its microphone, or receiving information over the air from the network that is used in generating a network code key K2. Because the code key K2 used for this purpose must be globally known by a number of a different users, it does not provide a high level of security against eavesdropping. Thus, a preferred system to protect against eavesdropping includes the cipher key K1 that is unique to each user. Just as procedures may be required to establish a correct system code key K2 at the mobile station, the preferred implementation of user privacy with the aid of a unique user cipher key K1 requires procedures to establish the correct cipher key K1 at the base station for each user. These procedures can include the mobile station's identifying itself to the network by sending its ID code over the air; the network would then refer to a secret database wherein cipher keys are stored in correspondence with mobile ID codes to obtain the correct cipher key K1. It can also be advantageous for both the mobile and the network stations to combine such a retrieved key KI with an extemporaneously generated pseudorandom number in order to produce a temporary cipher key K1 that is only used for one or a few conversations. The extemporaneously generated pseudorandom number may be transmitted from the network to the mobile station during a process of authenticating that the mobile is who it claims to be, as described in U.S. Pat. No. 5,091,942, which is expressly incorporated here by reference. An advantage of selecting scrambling masks pseudorandomly is the avoidance of the adverse interference situation, mentioned above, where two signals in adjacent cells are inadvertently assigned scrambling masks that have a larger than mean mutual correlation, and the disposition of the mobile stations is such that interference is thereby caused and persists. With pseudorandom variation of the choice of scrambling mask, such an interference condition would only exist transiently, as on the next block code period those two scrambling masks would be allocated to a different pair of mobile stations with a different relative disposition. The receiver portion of FIG. 9 has hardware analogous to the transmitter portion. A receiver/demodulator 102 receives a composite signal from an antenna 104, demodulates it to baseband frequency, and converts the serial signal into parallel signal samples or blocks of N bits. As described above, the signal samples may be complex, resulting from in-phase and quadrature components. These signal blocks are combined in a specialized N-sample multiplier 106 with an appropriately selected scrambling mask retrieved from a receiver scrambling mask storage device 108. In the specialized N-sample multiplier 106, each of the N parallel samples provided by the receiver/demodulator 102 is multiplied by +1 or -1, depending on the scrambling mask provided by the storage device 108. Thus, a sample is either passed as is or negated. One way to perform this multiplication is to exclusive-OR each bit of the digital sample with the corresponding scrambling mask bit. For example, if the first of the N digital samples is 1011 and the first scrambling mask bit corresponds to -1, then the first of the N output samples would be 0100. The descrambled signal produced by the multiplier 106 is decoded in an orthogonal block decoder 110 using, for example, the subtractive demodulation procedure described above. The decoded signal is descrambled by combining the appropriate cipher key K1 generated by a receiver sequence generator 112 with the decoded signal in an M-bit adder 114. Error correction codes are removed from the descrambled digital information in a source decoder 116, and the result is converted into speech. In FIG. 9, the RAKE combining element that was described above in connection with FIG. 8 would be part of the orthogonal block decoder 110. Data corresponding to the different times-of-arrival would be provided by the receiver/demodulator 102. The scrambling mask used in descrambling the received composite signal is determined in part by the code key K2 provided to the receiver sequence generator 112. The code key K2 is combined in an N.sub.1 -bit adder 118 with an access code chosen by the receiver system from a list of unused access codes as indicated by information broadcast by the system. The N.sub.1 -bit adder 118 generates the N.sub.1 -bit address applied to the receiver scrambling mask memory 108. The receiver sequence generator 112 is arranged to generate the same pseudorandom N.sub.1 -bit sequence for all memory accesses by having the sequence depend only on code key K2 that is common to all scrambling mask storage accesses. The pseudorandom sequence for a particular memory access is generated by adding an offset to that access, modulo the number of stored scrambling masks as described above. This process is explained below in a different way. Each mobile in a certain group is preferably allocated a unique scrambling mask. For example, if there are four scrambling masks M0, M1, M2, M3, they can be allocated to four signals S0, S1, S2, S3 as follows: S0 gets M0 S1 gets M1 S2 gets M2 S3 gets M3. Alternatively, they could be allocated in any one of twenty-three other ways such as: S0 gets M2 S1 gets M0 S2 gets M3 S3 gets M1. It is desirable to vary the allocation between these different ways pseudorandomly while still guaranteeing each signal a unique allocation. A first Method of randomizing the allocation is to generate, in each mobile transceiver, a pseudorandom number using the same recipe so that they all get the same pseudorandom number as a result. Let this number be 3 for example. Then each mobile transceiver adds a different offset, e.g., its own signal number, to this same pseudorandom number so that signal S0 adds 0 to 3 getting 3 (M3), signal S1 adds 1 to 3 getting 4, which is reduced modulo-4 to 0 (M0), signal S2 adds 2 to 3 getting 5 which reduces modulo-4 to (M1), and signal S3 adds 3 to 3 getting 6 which reduces modulo-4 to 2 (M2). Starting with other pseudorandom numbers 0-2, the possible allocations are:
______________________________________
pseudorandom = 3 0 1 2
______________________________________
S0 gets M3 M0 M1 M2
S1 gets M0 M1 M2 M3
S2 gets M1 M2 M3 M0
S3 gets M2 M3 M0 M1.
______________________________________
These are only four out of the twenty-four possible ways in which the signals could have been allocated codes. A second Method of randomizing the allocation may also be employed. This involves generating a second pseudorandom number which is modulo added to the offset, first pseudorandom number (which is the same as the mask number allocated as above). Bitwise modulo-2 addition can be chosen to illustrate the effect of this. The four possible 2-bit patterns 00, 01, 10, 11 may thus be bitwise modulo-2 added to the addresses (mask numbers) of the scrambling masks in the above giving the following possible allocations:
______________________________________
00 01
0 1 2 3 0 1 2 3
______________________________________
S0 gets M0 M1 M2 M3 M1 M0 M3 M2
S1 gets M1 M2 M3 M0 M0 M3 M2 M1
S2 gets M2 M3 M0 M1 M3 M2 M1 M0
S3 gets M3 M0 M1 M2 M2 M1 M0 M3
______________________________________
10 11
0 1 2 3 0 1 2 3
______________________________________
S0 gets M2 M3 M0 M1 M3 M2 M1 M0
S1 gets M3 M0 M1 M2 M2 M1 M0 M3
S2 gets M0 M1 M2 M3 M1 M0 M3 M2
S3 gets M1 M2 M3 M0 M0 M3 M2 M1
______________________________________
For example, to generate the eighth column from the fourth column, bitwise modulo-2 add 01 to the binary representation of the mask number in the fourth column. Thus, for signal S0, 11+01=10 modulo-2, so S0 gets M2, while for signal S1, 00+01=01 modulo-2, so S1 gets M1, and for signal S2, 01+01=00 modulo-2, so S2 gets M0, and for signal S3, 10+01=11 modulo-2, so S3 gets M3, and so forth. Some of these patterns produced with two pseudorandom numbers are the same as the patterns produced with one pseudorandom number, but the number of different patterns has increased from four to eight. A third Method of randomizing the allocation is to use further bits out of the pseudorandom number generator to control a permutation of the address bits. In the above, the only other permutation is obtained by reversing the order of the address bits so that 0 maps to 0, 1 maps to 2 and vice versa, and 3 maps to 3, giving the following patterns:
______________________________________
00 01
0 1 2 3 0 1 2 3
______________________________________
S0 gets M0 M2 M1 M3 M2 M0 M3 M1
S1 gets M2 M1 M3 M0 M0 M3 M1 M2
S2 gets M1 M3 M0 M2 M3 M1 M2 M0
S3 gets M3 M0 M2 M1 M1 M2 M0 M3
______________________________________
10 11
0 1 2 3 0 1 2 3
______________________________________
S0 gets M1 M3 M0 M2 M3 M1 M2 M0
S1 gets M3 M0 M2 M1 M1 M2 M0 M3
S2 gets M0 M2 M1 M3 M2 M0 M3 M1
S3 gets M2 M1 M3 M0 M0 M3 M1 M2
______________________________________
For example, to generate these sixteen allocations from the previous sixteen allocations, simply interchange M1 and M2 everywhere. This produces a further eight different patterns so that sixteen out of the possible twenty-four sets of allocations are now covered. With a number of address bits greater than two, it is clear that a greater number of possibilities to randomize the selection exist, for example, by varying the modulus of the arithmetic used in adding the offset, the first pseudorandom number, and/or the second pseudorandom number. It will be understood that a cipher machine generates pseudorandom numbers according to a recipe that depends on a secret code, or key, that is usually fixed for the length of a message or longer. The pseudorandom number stream still varies during the message, however. The sequence of pseudorandom numbers produced by the cipher machine is usually referred to as the "keystream", and the secret code that defines the recipe for producing the keystream is variously called the "key", "key variable", or "cipher variable". That part of the machine that generates the keystream from the key is called the "key generator". This is distinct from some other machine that produces pseudorandom, secret keys with which the cipher machine is programmed. To avoid confusion, this other machine would not also be called a "key generator", but a "key management unit". Keys produced by a key management unit may be transported to a cipher machine and then injected electronically using a "fill gun". Sometimes in cellular systems, the key used to encipher a conversation is only used for that one conversation. It is then sometimes called the "conversation key" or "talk variable". Such a temporary key is produced by mixing the fixed key with a random number sent from one correspondent to the other, e.g., from base (network) to mobile. This is not desirable in the case of the pseudorandom generator that drives scrambling mask selection since it must produce the same sequence, before offsets, in all stations. However, the technique of generating a temporary conversation key could well be applicable to the pseudorandom number generator that ciphers the source coded information before CDMA spreading. A further simple example is useful in illustrating how cyclic, pseudorandom scrambling mask addresses may be generated. If there are five scrambling masks designated (M0, . . . , M4), a 3-bit address (N.sub.1 =3) may be used to select one of the five. If at a particular instant, the receiver sequence generator 112 produces an offset of two, an access code of zero is offset by two, resulting in the selection of scrambling mask number 2 (M2). Alternatively, an access code of 3 is offset to a scrambling mask address of 5. Because of the modulo-5 constraint, imposed because there are only 5 scrambling masks stored, the count number 5 is actually reset to count 0 so that access 3 results in a mask address 0 (M0). Likewise, access 1 offsets to address 3 (M3), access 2 offsets to address 4 (M4), and access 4 offsets to address 6 which is reset to 1 (M1), because of the modulo-5 constraint. Of course, the offset number varies pseudorandomly so that the addresses vary pseudorandomly. If the number of scrambling masks is a power of two, i.e., 2.sup.N1, then the N.sub.1 -bit adders 98, 118 can either be modulo-2.sup.N1 adders or bitwise modulo-2 adders (bitwise exclusive-OR). If the number of scrambling masks is a composite number (a product of factors, some or all of which can be the same or different) L=n1.multidot.n2.multidot.n3.multidot. . . . , then the adder 98 may either be a modulo-L adder or a combination of modulo-n1, modulo-n2, modulo-n3, . . . adders separately for each factor or radix. It is of course much simpler to generate pseudorandom sequences of numbers over a range that is a power of two. From the discussion above, it will be appreciated that the use of scrambling masks can apply to control signals as well as user signals. In fact, it is sometimes desirable to use the fixed set of scrambling masks with optimal correlation properties for control signals only. The optimal correlation properties help to minimize interference between different control signals. In a cellular system, the correlation properties also help to minimize interference between control signals in nearby cells. These control signals or channels include broadcast, paging, synchronization, and pilot channels. The technique of using pseudorandom numbers to encipher the data or the address of a scrambling mask may or may not be used when the channel is a control channel. It will be appreciated by those of ordinary skill in this art that the foregoing methods and functions can be carried out by appropriately arranged, general-purpose, digital signal processor circuits and components. For better efficiency, however, specialized application-specific integrated circuits (ASICs) are preferred. While particular embodiments of the present invention have been described and illustrated, it should be understood that the invention is not limited thereto since modifications may be made by persons skilled in the art. The present application contemplates any and all modifications that fall within the spirit and scope of the underlying invention disclosed and claimed herein.
|
Same subclass Same class Consider this |
||||||||||
