WO2006004550A2 - Non-contiguous variable length orthogonal codes - Google Patents

Non-contiguous variable length orthogonal codes Download PDF

Info

Publication number
WO2006004550A2
WO2006004550A2 PCT/SE2005/001129 SE2005001129W WO2006004550A2 WO 2006004550 A2 WO2006004550 A2 WO 2006004550A2 SE 2005001129 W SE2005001129 W SE 2005001129W WO 2006004550 A2 WO2006004550 A2 WO 2006004550A2
Authority
WO
WIPO (PCT)
Prior art keywords
code
spreading
codes
chips
pivot
Prior art date
Application number
PCT/SE2005/001129
Other languages
French (fr)
Other versions
WO2006004550A3 (en
Inventor
Paul Dent
Original Assignee
Telefonaktiebolaget Lm Ericsson (Publ)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget Lm Ericsson (Publ) filed Critical Telefonaktiebolaget Lm Ericsson (Publ)
Priority to ES05757933.6T priority Critical patent/ES2438532T3/en
Priority to EP05757933.6A priority patent/EP1763934B8/en
Priority to US11/631,790 priority patent/US8526482B2/en
Publication of WO2006004550A2 publication Critical patent/WO2006004550A2/en
Publication of WO2006004550A3 publication Critical patent/WO2006004550A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J13/00Code division multiplex systems
    • H04J13/10Code generation
    • H04J13/12Generation of orthogonal codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J13/00Code division multiplex systems
    • H04J13/10Code generation
    • H04J13/102Combining codes
    • H04J13/105Combining codes by extending
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J13/00Code division multiplex systems
    • H04J13/16Code allocation
    • H04J13/18Allocation of orthogonal codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J13/00Code division multiplex systems
    • H04J13/0007Code type
    • H04J13/004Orthogonal
    • H04J13/0044OVSF [orthogonal variable spreading factor]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J13/00Code division multiplex systems
    • H04J13/0007Code type
    • H04J13/004Orthogonal
    • H04J13/0048Walsh

Definitions

  • the invention is useful in Code Division Multiple Access communications systems employing orthogonal codes.
  • CDMA Code Division Multiple Access
  • CDMA refers to a method by which multiple transmitting stations (e.g., mobile phones) can communicate their independent data streams to a common receiver (e.g., a cellular base station receiver).
  • a common transmitter i.e., a cellular base station
  • receivers i.e., different mobile phones
  • Code Division Multiplex a common transmitter
  • CDMA Code Division Multiple Access
  • CDMA will be used as a term of description for both the uplink and the downlink, even though the downlink may be more accurately described as Code Division Multiplex (CDM).
  • the use of orthogonal Walsh codes in communications systems is well known.
  • the Code Division Multiple Access system known as IS59 uses Walsh codes of length 64 to scramble signals transmitted by a cellular base station to different mobile stations, the orthogonality of the codes reducing interference between signals intended for different mobiles.
  • the IS95 return link uses all 64, length-64 Walsh codes in every mobile station to encode 6-bit data blocks, the different mobile transmissions being rendered unlike by the use of different scrambling sequences.
  • This return link or uplink use of the Walsh codes does not attempt to make different signals orthogonal, but rather is a form of error correction coding called (64,6) orthogonal block encoding. See, for example, Garg, Vijay K. et al., Applications of CDMA in Wireless/Personal Communications, Prentice Hall (1997), which is incorporated herein by reference.
  • the wideband CDMA cellular system known as UMPTS also uses orthogonal Walsh codes to discriminate between different base-to-mobile links.
  • the orthogonal codes are not of a fixed length, but depend on the datarate of a particular link. Nevertheless, signals of different code length and datarate remain nominally orthogonal to each other.
  • the first code may be used to spread a first signal by multiplying each symbol to be transmitted by the code and transmitting the resulting sixteen chips.
  • the second code may be used to spread a different datastream.
  • the two spread signals are nominally orthogonal as the first code and the second code differ in as many chip positions as they agree, resulting in zero correlation.
  • the second code is also orthogonal to the first code even if only the first or last eight chips of it are considered, as within the first eight chips the second code agrees and disagrees with the first code's first eight chips in half the chip positions. The same is true for the second eight chips. Therefore a first data symbol may be spread using the first eight chips and a second data symbol may be spread with the second eight chips while retaining orthogonality with the first code. This process of subdivision may continue, as the first four chips of the second code are also orthogonal to the first four chips of the first code.
  • the subdivision to two chip codes however, in the particular example of the two codes mentioned in the preceding paragraph, does not retain orthogonality.
  • another Walsh code, 01010101010101 can be fractured down to length two chip codes while retaining orthogonality with the first code. Codes which can be fractured into shorter codes are called variable length orthogonal codes.
  • Table 1 shows the. complete set of Walsh codes having length 16.
  • every code differs from every other code in exactly half its bit positions.
  • the last eight codes may be split into codes of half the length while remaining orthogonal to the first eight codes.
  • These four distinct length-8 codes may also be split into length four codes, of which there are two distinct codes, 1010 and 1001. These are also orthogonal to the first eight codes of the original set of sixteen codes.
  • these codes may be split to give a single length-2 code 10 which remains orthogonal to the first eight, length-sixteen codes.
  • variable-length orthogonal codes are produced by splitting an NxN Walsh-Hadamard code matrix both horizontally and vertically to obtain an N/2 x N/2 matrix of half-length codes which are each still orthogonal to the original length-N codes.
  • the splitting process may continue to produce successively shorter codes, capable of carrying successively higher data rates in an orthogonal code- division multiple access system.
  • a technique used herein for scrambling an orthogonal code set while retaining one or more codes in common is to permute columns.
  • the first code comprised only of ones (1) is unchanged under any permutation of columns.
  • both the first and the second code remain unchanged under any permutation of the first eight columns and any permutation of the second eight columns.
  • the code set of Table 2 can be obtained by permuting columns (and recording the codes as necessary).
  • the code set of Table 2 may also be produced by rotating the length-fifteen maximum length sequence 0011101100101 and appending a first row and first column of ones (1). (The usual notation for a maximum length sequence is the complement of this, in which case a column of zeros should be added, obtaining a complementary code set. Either the code set or its complement may be used with equal effect.) Code sets produced by starting with different maximum length sequences are maximally different in all but their common member, the all ones (1) code. [00017] Table 2
  • Systems for transmitting information symbols utilize ternary codes or pivot codes in conjunction with spread spectrum encoding.
  • the systems comprise at least a first symbol source for supplying an information signal comprising at least a first stream of I,Q bit pairs, means for using either a ternary code or at least one pivot code for spreading the at least first stream of I,Q bit pairs and thereby respectively forming first chips and second chips, and a radio signal modulator for transmitting the first chips and second chips over a radio interface.
  • the current technology uses a more general N x N orthogonal code matrix which is related to a Walsh-Hadamard matrix apart from a scrambling of the order of columns.
  • This more general code matrix is split by choosing as a pivot code any code comprising N/ 2 number of ones (1) and N/2 number of zeroes (0) and replacing the columns containing one in the pivot code with columns of null symbols to form a first NxN submatrix, and replacing columns containing zero in the pivot code with null symbols to form a second NxN submatrix.
  • Each submatrix thus formed has pairs of identical rows.
  • one of each row pair is deleted from each submatrix to leave a first and a second N/2 x N submatrix.
  • Each row of each submatrix contains N/2 non-null symbols and N/2 null symbols, with the null columns of one submatrix occupying the same positions as the non-null columns of the other submatrix.
  • a first symbol stream may be CDMA encoded by multiplying each symbol with a code from the first matrix and a second symbol stream may be CDMA encoded by multiplying each symbol with a code of the second submatrix, the two encoded signals then being linearly added before transmission.
  • the technology eliminates the restriction to Walsh Hadamard column ordering, thus allowing greater choice of orthogonal code sets for minimizing interference between CDMA signals in neighboring geographical areas.
  • FIG. 1 is a flowchart illustrating basic steps involved in a technique of forming a pivot code pattern.
  • FIG. 2 is a flowchart illustrating basic steps involved in a technique of forming a ternary (separated) code (subcode).
  • Fig. 3 is a diagrammatic view of a prior art overlap of coded symbols.
  • FIG. 4 is a diagrammatic view of an example embodiment of a CDMA transmission system.
  • FIG. 5 is a diagrammatic view of another example embodiment of a CDMA transmission system.
  • FIG. 6 is a diagrammatic view of yet another example embodiment of a CDMA transmission system.
  • code sets can be produced by starting first with a simplex code set, which is produced by writing down all rotations of a maximum length sequence of length 2 N -1 and then augmenting the code set by appending a column of zeros.
  • a simplex code set which is produced by writing down all rotations of a maximum length sequence of length 2 N -1 and then augmenting the code set by appending a column of zeros.
  • the complement of the simplex code set can be used, augmented by a column of ones, using different maximum length sequences produces different code sets which are maximally different from each other apart from the common member.
  • Such code sets can be useful for adjacent cells of a CDMA cellular system or in adjacent beams of a satellite communications system.
  • An exemplary augmented simplex code set (such as that of Tsable.,2) can be used to form a "pivot" code pattern according to a technique having basic ; steps illustrated in Fig. 1.
  • the technique of Fig. 1 begins by picking any cod& haying eight ones (I)' arid eight zeroes (0) to be a "pivot" code.
  • a first code is selected from a set of binary spreading codes to serve as the pivot code.
  • the pivot code has a (preferably equal) non-zero number of members of a first binary value (e.g., one (I)) and non-zero number of members of a second binary value (e.g., zero (O)).
  • the pivot code being binary, thus has bits which are either of a first binary value (i.e., zero (O)) or a second binary value (i.e., one (I)).
  • step 1-2 of the technique of Fig. 1 target (bit) positions are selected for the pivot code, the target positions being either the first binary value (i.e., zero (O)) or the second binary value (i.e., one (I)).
  • step 1-2A null symbols ("x") are written into the selected column positions of the pivot code.
  • a pivot code pattern is produced which has null values in its target positions, and the (unselected, untargeted) binary values in its remaining positions.
  • the resulting pivot code pattern is as follows: lxxxxl 11x1 lxxlxl .
  • the resulting pivot code pattern is as follows: xOOOOxxxOxxOOxOx.
  • An exemplary augmented simplex code set (such as that of Table 2) can also be separated into two sub-codes by a technique including basic steps illustrated in Fig. 2.
  • the technique of forming sub-codes begins essentially in the same manner as the technique of Fig. 1, e.g., performing step 2-1 and step 2-2 which are essentially the same as step 1-1 and step 1-2 of Fig. 1, respectively.
  • Performance of step 2-1 involves selecting the pivot code (like step 1-1).
  • Step 2-2 involves selecting first target (bit) positions for the pivot code, the first target positions being either the first binary value (i.e., zero (O)) or the second binary value (i.e., one (I)).
  • first target positions being either the first binary value (i.e., zero (O)) or the second binary value (i.e., one (I)).
  • zero valued positions are chosen as the first target positions.
  • step 2-3 of the technique 'of Fig., 1 involves selecting a second code from the set of binary spreading codes (e.g., the code set of Table 2) to serve as a derivation code.
  • a second code from the set of binary spreading codes (e.g., the code set of Table 2) to serve as a derivation code.
  • Step 2-4 of the technique of Fig. 2 involves replacing chips of the second code (i.e., the derivation code) corresponding to the first target positions of the pivot code with a non-binary value (e.g., the null value ("x") and thereby forming a first ternary spreading code (e.g., a first "separated" or sub-code).
  • a non-binary value e.g., the null value ("x)
  • a first ternary spreading code e.g., a first "separated” or sub-code
  • Step 2-5 involves selecting second target (bit) positions for the pivot code, the second target positions being the bit positions not chosen in step 2-2 (for sake of the same discussion, the one (1) value positions are chosen as the second target positions).
  • Step 2-6 of the technique of Fig. 2 involves replacing chips of the second code (i.e., the derivation code) corresponding to the second target positions of the pivot code with a non-binary value (e.g., the null value ("x”) and thereby forming a second ternary spreading code (e.g., a second "separated" or sub-code).
  • the first separated code set of Table 3 (the codes of the code set of second table column of Table 3) are formed by writing null symbols in the second code (e.g., code 1000111101100101) corresponding to the position of zero symbols in the pivot code in accordance with steps 2-2 and 2-4, while the second separated code set of Table 3 (the codes of the code set of third table column of Table 3) are formed by writing null symbols in the positions of the second code corresponding to the position of non-zero symbols in the pivot code in accordance with steps 2-5 and 2-6.
  • the second code e.g., code 1000111101100101
  • the separated code in the second column for the original code of the second row (e.g., code 1000111101100101) is the same as (and thus duplicates) the separated code in the second column for the original code 1011101100101000.
  • Eliminating one of each pair results in the separated codes of Table 4.
  • Table 4 shows the original codes ("C" codes), as well as the two resulting separated (ternary) codes for the surviving original codes.
  • a first resulting separated code for each surviving original code is referred the "A" code and a second resulting separated code for each surviving original code is referred the "B" code .
  • eight unique codes remain in each of the separated code sets.
  • the pairs of eight unique codes are numbered as pairs 0 - 7 as reflected by the last table column of Table 4.
  • the x's in the above notation signify that no symbol (or a null symbol) exists in that location, while the ones (1) and zeroes (0) signify binary bits in Boolean notation.
  • the signal value +1 may be used for a Boolean 0; the signal level -1 used for a Boolean 1, and the signal level zero used for the x's or null symbols.
  • the correlation between any two of the separated codes is obtained by multiplying corresponding symbols and adding the products, using the logic of Table 5.
  • the sixteen separated codes are all mutually orthogonal, in that the above-defined sum-of-products is zero for all pairs of codes.
  • a separated code is also orthogonal to all of the original codes except the code from which it was separated and.one other.
  • This pair of original codes may thus be replaced by a pair of separated codes (Ai,Bi) while preserving a mutually orthogonal set of sixteen codes, the separated pair ;now however being ternary codes including null symbols.
  • the pair of separated codes may now be used to spread two data symbols Dl and D2, such as by forming Dl(Ai) + D2(Bi), where Ai and Bi are the ternary code vectors.
  • Dl(Ai) + D2(Bi) are the ternary code vectors.
  • Ai and Bi are the ternary code vectors.
  • the Dl and D2 valued chips are not interleaved.
  • the interleaving of the Dl and D2- valued chips when using the present technology arises essentially from' the 1 permutation of the columns of the code set, which mixes chips of the second half of the code with 1 chips of the first half of the code.
  • an overall complex scrambling code is applied to the above sequences, each successive chip is uncorrelated with the previous ones and the spectrum is thus indistinguishable between the interleaved and the non-interleaved sequences.
  • the current invention may in principle be produced by employing a system using the prior art Walsh-Hadamard variable length orthogonal codes, and then applying an interleaving process to the resulting chip sequence. However, this is not the preferred method, as applying an interleaving process to a high chiprate stream involves more onerous processing.
  • the interference from a transmitter using a different code set to one of the A or B separated codes depends on more than one data symbol of the interfering transmitter.
  • the interference depends on only one symbol, as may be seen in Fig. 3.
  • the coded symbol Dl transmitted by one transmitter overlaps only the coded symbol D3 transmitted by the second transmitter, and likewise D2 is only overlapped by D4.
  • Dl and D2 are overlapped by both D3 and D4, so there is more interference diversity.
  • the prior art multicode method therefore provides more interferer diversity than the prior art variable length orthogonal coding method.
  • Dl is distributed by the column interleaving in a different way than D3 and D4, so the chips carrying Dl no longer coincide only with chips carrying D3 or D4 alone, but some of each, thus obtaining the desirable interference diversity of the prior art multicode method but without its disadvantages of multi-level chip values and more onerous receive processing.
  • each separated code except index 0 has half of its contents as ones and hall of its contents as zeroes (i.e., contains 50% ones and, 50%- zeroes) Accordingly, the process of separation into two codes, each having half the number, of non-null symbols, can he repeated to form doubly-separated codes by choosing one of the separated codes (such as those of Table 4) other than index 0 to be a new pivot, e.g., a new pivot code, also known as a secondary pivot code.
  • code B5 of Table 4 (xlOOlxxxOxxl lxOx) were separated as indicated into two codes BA3 and BB3
  • all of the A codes may still be used as they are orthogonal to the BA and BB codes, but use of the original B 5 code must be foregone as must use of code B 6 which is not orthogonal to B A3 and BB 3.
  • two of the B codes are replaced by two of the doubly-separated codes.
  • Either the corresponding A code A3 may also be separated into two new codes AA and AB, or a different A code or a different doubly-separated B code may be used to obtain four doubly-separated codes with which to spread four data symbols Dl, D2, D3, D4 thus allowing a quadrupling of the transmitted datarate. If a doubly separated A code is used to obtain AA and AB, a different A code can be chosen as the pivot, i.e., it does not have to be the A code A3 corresponding to the pivot B3. On the other hand if two pairs of doubly separated B codes are used to encode Dl, D2, D3 and D4, they must be obtained by use of the same pivot in order to obtain orthogonal codes.
  • Fig. 4 illustrates a CDMA transmitting system 20 according to a first example embodiment and suitable for implementing techniques including those described above.
  • the particular example system of Fig. 4 uses QPSK modulation, which is a four-phase modulation conveying two bits per information symbol.
  • information bits enter a turbo-encoder 22 as shown by arrow 24.
  • the turbo-encoder 22 performs such example operations as error correction coding and interleaving and outputs coded bits (on line 26) in an interleaved order.
  • the number of coded bits is greater than the number of information bits by a factor in the region of two to four, reflecting the rate of the code.
  • the coded bits output from turbo-encoder 22 are separated into two streams. Such separation by switch 20 can occur, for example, by directing even-numbered bits to one path and odd-numbered bits to another path, i.e., 1-bits to one path and Q-bits to another path.
  • each of the,even or odd bits is then expanded by a CDMA spreading factor by combining .them with the assigned ternary code to provide a greater number of chips per second,- some'of which are null chips having a zero amplitude corresponding to the x's in the assigned code.
  • the assigned code utilized by spreader 34 is a ternary code generated in accordance with techniques such as those previously described, e.g., with reference to Fig. 2.
  • Fig. 4 shows the assigned ternary code as being stored in a memory or register 36.
  • the assigned code i.e., the contents of register 36, is hereinafter also referred to as assigned code AC.
  • the same assigned code AC is used to spread both the I and Q bits.
  • the assigned ternary code (AC) in register 36 can be pre-stored therein or alternatively (and optionally) generated by ternary code generator 40.
  • the ternary code generator 40 can comprise any suitable structure for generating one or more ternary codes in accordance with techniques such as those described previously by way of example with reference to Fig. 2. Such structure can comprise individual hardware circuits, using software functioning in conjunction with a suitably programmed digital microprocessor(s) or general purpose computer(s), either distributed or concentrated, and using an application specific integrated circuit (ASIC), and/or using one or more digital signal processors (DSPs). In generating such ternary code(s), the ternary code generator 40 can utilize inputs such as choice of pivot code, choice of derivation code, and the like.
  • the even and odd (I and Q) bits and the corresponding even and odd (I and Q) chips produced by spreader 34 using assigned code AC in register 36 are directed to be transmitted using the cosine and sine or "I and 0" channels of a complex radio signal modulator 44, and so may thus be called "I-bits, Q-bits" and "I-chips, Q-chips” respectively.
  • a pair of bits comprising an I-bit and a Q-bit, if the bit periods are synchronized, comprises a QPSK symbol as is well known in art, and a pair of I, Q chips comprises a QPSK symbol at the CDMA spread rate.
  • the I-chips will be filtered before modulating a cosine radio carrier signal and the Q-chips will be filtered before modulating a sine carrier signal, this being performed by quadrature modulator 44.
  • the (I- chip,Q-chip) stream Prior to modulation in modulator 44, however, the (I- chip,Q-chip) stream is scrambled by scrambler 46. Scramber 46 performs scrambling by rotating the phase of the QPSK symbol or complex number it represents through either 0, 90, 180, or 270 degrees by complex-multiplication with a pseudorandom
  • This scrambling code is common to different signals transmitted by the same cell txansmittery and may also be common to different cells when different assigned code sets (AC) are used to distinguish the signals transmitted in different cells.
  • AC assigned code sets
  • the use of a common scrambling code ensures that the mutual orthogonality of different signals in the same cell is undisturbed, and that the cross-correlation between different cell signals is substantially determined by the choice of code sets (AC).
  • a multi-signal transmitter for a cellular base station is usually formed by adding the output of many scramblers 46 prior to filtering and modulating the sum signals using a common filter/modulator 44.
  • the outputs of many complex scramblers may be applied to a beamformer to generate satellite antenna array element drive signals for forming beams in different directions for each signal using the plurality of array elements, the plurality of drive signals then being preferably quadrature time- multiplexed before filtering and upconverting in a corresponding plurality of filter- modulators.
  • first symbol source 22, 30
  • means including spreader 34
  • means for using a ternary spreading code to spread bits of the first bit stream and the second bit stream and thereby respectively forming first chips and second chips
  • means e.g., modulator 44
  • radio signal modulation for transmitting the first chips and second chips over a radio interface.
  • Fig. 5 illustrates another example embodiment of a CDMA transmitting system 120 suitable for implementing techniques described herein.
  • a first coded information symbol source 110a produces I,Q bit pairs (IA 5 QA) for CDMA encoding using a first split-code according to the technology described herein.
  • a second coded symbol source 110b produces a second stream of I,Q bit pairs (IB,QB).
  • Sources (110a, 110b) may each correspond to the turbo encode 22 and even/odd separator 30 of Fig. 4.
  • the sources HOa, HOb may equate to a single source which supplies half its bits (IA 5 QA) on one output and half oh another output (IB 5 QB).
  • the arrangement of Fig. 5 illustrates how either two basic data-rate signals may be transmitted or alternatively one double-rate signal.
  • the switches 130 will be toggled from position A to position B 5 so that the first coded symbol source output symbols are selected where there are non-null chips in code (AC), thereby spread-spectrum encoding symbols IA 5 QA with the "A" split of the full orthogonal code (ACa) 5 and the second coded symbol source symbols are selected where there are null-chips in code (AC), thereby spread-spectrum encoding symbols (IB 5 QB) with the B-split of code (ACa).
  • the pivot code pattern (ACb) is applied to the control input of selector switches 130 simultaneously with supplying the undivided code (ACa) to the spreader 134.
  • the pivot code pattern (ACb) is shown in Fig. 5 as being stored or pre-stored in a register or alternatively (and optionally) generated by pivot code generator 138.
  • the pivot code generator 138 can comprise any suitable structure for generating a pivot code in accordance with techniques such as those described previously by way of example with reference to Fig. 1.
  • Such structure can comprise individual hardware circuits, using software functioning in conjunction with a suitably programmed digital microprocessor(s) or general purpose computer(s), either distributed or concentrated, and using an application specific integrated circuit (ASIC), and/or using one or more digital signal processors (DSPs).
  • ASIC application specific integrated circuit
  • DSPs digital signal processors
  • the CDMA transmitting system 120 of Fig. 5 comprises a first symbol source HOa for supplying an information signal comprising at least a first stream of I,Q bit pairs and a second symbol source 110b for supplying a second stream of I,Q bit pairs; means (including switches 130 and spreader 134) for using a pivot code to spread bits of the first bit stream and the second bit stream and thereby respectively forming first chips and second chips; and, means (e.g., modulator 44) for using radio signal modulation for transmitting the first chips and second chips over a radio interface.
  • the spreading means comprises a switch or selector (130c) for selecting between I,Q bit pairs of the first stream and the second stream in dependence upon a pattern of the at least one pivot code (ACb) and for applying selected bits of the first stream and the second stream to the spreader
  • the system 120 of Fig. 5 may be readily extended to the use of four doubly-split codes, by using a four-way selector switch system 230.
  • Switch system 230 has a two-bit control input, the two bits being corresponding bits of the first pivot code (ACb) used for deriving the first code split, and a second pivot code chosen to provide the second code split.
  • Fig. 6 shows the arrangement of a four-way selector 230 for the case where a different pivot code ACd is selected to split the first B-split code into BB and BA codes as compared with the pivot code ACc used to split the A-split code into AA and AB codes.
  • the pivot code ACc and pivot code ACd may be generated using the same pivot code generator 138 which generates the pivot code ACb, or other generator(s) which generating a pivot code in accordance with techniques such as those described previously by way of example with reference to Fig. 1.
  • the pivot code (ACb) used to effect the first code-split is applied to selector 230c to determine whether a symbol encoded with a code derived from an A-code or a symbol encoded with a code derived from a B-code is selected. If the former, the symbol will be selected by selector 230a. Selector 230a is controlled by the A-split pivot code (Ace) which is selected to be the second pivot for deriving doubly-split codes AA and AB. If the latter, the symbol will be selected by selector 230b, which is controlled by the B -split pivot code (ACd) selected to be the second pivot for deriving doubly-split code BA and BB.
  • Ace A-split pivot code
  • ACd B -split pivot code
  • the second pivots (i.e., the secondary pivot codes) can be different for the A code branch and the B code branch.
  • the second pivots i.e., the secondary pivot codes
  • the first pivot code deselects the selector 230a or 230b in these bit positions.
  • the X's may be filled in with the other bits from the original unsplit codes from which they were derived, i.e., second pivot code ACc can be original code 2 and the second pivot code ACd can be original code c.
  • all pivot codes applied to selectors 230a, 230b and 230c may be binary as opposed to ternary codes.
  • the output stream to spreader 234 is spread with a full binary orthogonal code selected from the set (0, 2 ,3, 4, 6, 7, 8, c) except for the pivot codes.
  • a further degree of freedom is to select a first spreading code when selector 230c is in the "A" position, in which case only the second A-pivot code must be excluded, and a second spreading code when selector 230c is in the "B" position, in which case only the second B-pivot code need be excluded.
  • Another implementation is the use of a 2 N -way selector that is programmed to select among its input sequentially. A data symbol from a particular source is then applied to a number of inputs corresponding to the spreading factor for that data source, Moreover, the inputs used are not necessarily sequential, but correspond to the instants at which the data symbol would be reselected by the other implementations of the invention, such as that of as Fig. 6.
  • the four coded symbol sources (110a, HOb, HOc, and HOd) of Fig. 6 may be four independent information streams, or alternatively may each represent one fourth of the output symbols of a quadrupler-rate information symbol stream.
  • the arrangement may also be used with modulation symbols of higher order than QPSK.
  • a value-pair such as (IAA 5 QAA) denotes the complex coordinates of a constellation point in the complex plane assigned to represent a symbol in the higher-order alphabet.
  • the method of deriving lower spreading factor codes from higher spreading factor codes by splitting a first higher spreading factor code according to the chip values of a second higher spreading-factor code can in principle be executed whether the code set is an orthogonal code set or not.
  • the code set is not orthogonal, then the derived split codes are not guaranteed to be orthogonal either; non- orthogonal codes are however sometimes useful in CDMA systems.
  • This technology allows non-Walsh-Hadamard orthogonal code sets to be used as variable length codes.
  • the current technology uses a more general N x N orthogonal code matrix which is related to a Walsh-Hadamard matrix apart from a scrambling of the order of columns.
  • This more general code matrix is split by choosing as a pivot code any code comprising N/ 2 number of ones (1) and N/2 number of zeroes (0) and replacing the columns containing one in the pivot code with columns of null symbols to form a first N x N submatrix, and replacing columns containing zero in the pivot code with null symbols to form a second N x N submatrix.
  • Each submatrix thus formed has pairs of identical rows.
  • each row pair is deleted from each submatrix to . leave a first and a second N/2 x N submatrix.
  • Each row of each submatrix contains jN/2 non-null symbols and*N/2 null symbols, with the null columns of one submatrix occupying the same positions as the non-null columns of the other submatrix.
  • a first symbol stream may be CDMA encoded by multiplying each symbol with a code from the first matrix and a second symbol stream may be CDMA encoded by multiplying each symbol with a code of the second submatrix, the two encoded signals then being linearly added before transmission.

Abstract

[00085] Systems (20, 120, 220) for transmitting information symbols utilize ternary codes or pivot codes in conjunction with spread spectrum encoding. The systems comprise at least a first symbol source for supplying an information signal comprising at least a first stream of I,Q bit pairs, means (34)(130, 134)(230, 234) for using either a ternary code or at least one pivot code for spreading the at least first stream of I,Q bit pairs and thereby respectively forming first chips and second chips, and a radio signal modulator (44) for transmitting the first chips and second chips over a radio interface

Description

NON-CONTIGUOUS VARIABLE LENGTH ORTHOGONAL CODES
BACKGROUND
[0001] This application claims the benefit and priority of United States Provisional Patent Application 60/585,097 filed July 6, 2004, which is incorporated herein by reference in its entirety. This application is related to simultaneously filed PCT application PCT/SE / entitled "DIFFERENT ORTHOGONAL CODE
SETS WITH MEMBERS IN COMMON", also incorporated herein by reference in its entirety.
[0002] TECHNICAL FIELD
[0003] The invention is useful in Code Division Multiple Access communications systems employing orthogonal codes.
[0004] RELATED ART AND OTHER CONSIDERATIONS
[0005] The term Code Division Multiple Access (CDMA) refers to a method by which multiple transmitting stations (e.g., mobile phones) can communicate their independent data streams to a common receiver (e.g., a cellular base station receiver). The communication of multiple data streams from a common transmitter (i.e., a cellular base station) to a plurality of receivers (i.e., different mobile phones) by Code Division is perhaps more properly referred to as Code Division Multiplex. However, for sake of simplicity the two terms Code Division Multiple Access and Code Division Multiplex will herein be regarded as equivalent. Thus CDMA will be used as a term of description for both the uplink and the downlink, even though the downlink may be more accurately described as Code Division Multiplex (CDM).
[0006] The use of orthogonal Walsh codes in communications systems is well known. The Code Division Multiple Access system known as IS59 uses Walsh codes of length 64 to scramble signals transmitted by a cellular base station to different mobile stations, the orthogonality of the codes reducing interference between signals intended for different mobiles. The IS95 return link uses all 64, length-64 Walsh codes in every mobile station to encode 6-bit data blocks, the different mobile transmissions being rendered unlike by the use of different scrambling sequences. This return link or uplink use of the Walsh codes does not attempt to make different signals orthogonal, but rather is a form of error correction coding called (64,6) orthogonal block encoding. See, for example, Garg, Vijay K. et al., Applications of CDMA in Wireless/Personal Communications, Prentice Hall (1997), which is incorporated herein by reference.
[0007] The wideband CDMA cellular system known as UMPTS also uses orthogonal Walsh codes to discriminate between different base-to-mobile links. In this case, the orthogonal codes are not of a fixed length, but depend on the datarate of a particular link. Nevertheless, signals of different code length and datarate remain nominally orthogonal to each other.
[0008] For example, consider two Walsh codes of length 16, the first code being 1111111100000000 and the second code being 1100110000110011. The first code may be used to spread a first signal by multiplying each symbol to be transmitted by the code and transmitting the resulting sixteen chips. The second code may be used to spread a different datastream. The two spread signals are nominally orthogonal as the first code and the second code differ in as many chip positions as they agree, resulting in zero correlation.
[0009] However, the second code is also orthogonal to the first code even if only the first or last eight chips of it are considered, as within the first eight chips the second code agrees and disagrees with the first code's first eight chips in half the chip positions. The same is true for the second eight chips. Therefore a first data symbol may be spread using the first eight chips and a second data symbol may be spread with the second eight chips while retaining orthogonality with the first code. This process of subdivision may continue, as the first four chips of the second code are also orthogonal to the first four chips of the first code. The subdivision to two chip codes however, in the particular example of the two codes mentioned in the preceding paragraph, does not retain orthogonality. However, another Walsh code, 0101010101010101 can be fractured down to length two chip codes while retaining orthogonality with the first code. Codes which can be fractured into shorter codes are called variable length orthogonal codes.
[00010] Table 1: Walsh Codes of Length 16
1111111111111111 1111111100000000
1111000011110000
1111000000001111
1100110011001100
1100110000110011 1100001111000011
1100001100111100
1010101010101010
1010101010010101
1010010110100101 1010010101011010
1001100110011001
1001011010010110
1001011001101001
[00011] Table 1 shows the. complete set of Walsh codes having length 16. In the set of Table 1 , every code differs from every other code in exactly half its bit positions. Moreover, the last eight codes may be split into codes of half the length while remaining orthogonal to the first eight codes. When the codes are split, there are only four distinct codes that arise in pairs. These four distinct length-8 codes may also be split into length four codes, of which there are two distinct codes, 1010 and 1001. These are also orthogonal to the first eight codes of the original set of sixteen codes. Finally, these codes may be split to give a single length-2 code 10 which remains orthogonal to the first eight, length-sixteen codes.
[00012] Thus, as summarized above, variable-length orthogonal codes are produced by splitting an NxN Walsh-Hadamard code matrix both horizontally and vertically to obtain an N/2 x N/2 matrix of half-length codes which are each still orthogonal to the original length-N codes. The splitting process may continue to produce successively shorter codes, capable of carrying successively higher data rates in an orthogonal code- division multiple access system.
[00013] There is only one such Walsh-Hadamard code set, so in order to avoid confusion between signals in adjacent base station areas, i.e. cells, the Walsh code set can be differently scrambled for different base stations by combining an overall scrambling code with all members of the set. Such scrambling does not destroy the mutual orthogonality of codes within the set. U.S. Patent 5,550,809 to Bottomley and Dent, incorporated herein by reference, discloses optimum scrambling codes for rendering the scrambled Walsh code sets maximally unlike. When two Walsh sets are so scrambled, no code from one set is the same as any code in a differently scrambled set.
[00014] There are other ways to render two orthogonal code sets different however, that allow the differently scrambled sets to contain common codes, if such should have utility in a given application. For example, in a satellite system, it can be advantageous to reserve one code in all beams (cells) to be a pilot code to provide a coherent reference, and it is useful if the pilot code is the same code in all beams so that constructive addition occurs at the edge of two beams rather than inter-beam interference. Another application may be when it is desired to transmit the same signal to the same mobile station from two base stations operating in space diversity.
[00015] A technique used herein for scrambling an orthogonal code set while retaining one or more codes in common is to permute columns. With reference to the above code set of length sixteen, it may be seen that the first code comprised only of ones (1) is unchanged under any permutation of columns. Likewise, both the first and the second code remain unchanged under any permutation of the first eight columns and any permutation of the second eight columns. For example, the code set of Table 2 can be obtained by permuting columns (and recording the codes as necessary).
[00016] The code set of Table 2 may also be produced by rotating the length-fifteen maximum length sequence 0011101100101 and appending a first row and first column of ones (1). (The usual notation for a maximum length sequence is the complement of this, in which case a column of zeros should be added, obtaining a complementary code set. Either the code set or its complement may be used with equal effect.) Code sets produced by starting with different maximum length sequences are maximally different in all but their common member, the all ones (1) code. [00017] Table 2
1111111111111111
1000011101100101
1100001110110010 1010000111011001
1101000011101100
1010100001110110
1001010000111011
1100101000011101 1110010100001110
1011001010000111
1101100101000011
1110110010100001
1111011001010000 1011101100101000
1001110110010100
1000111011001010
[00018] It will be realized however that the above variant of the orthogonal code set cannot be split down the middle to produce half-length codes that remain, orthogonal, due to there being no longer any guarantee of 50% ones (1) and 50% zeros (Q),in the first eight chips. Problematically, therefore these orthogonal code sets do not form variable length orthogonal code sets.
[00019] What is needed therefore, and an object of the present invention, are systems and techniques which afford greater choice of orthogonal code sets for minimizing interference between CDMA signals.
SUMMARY
[00020] Systems for transmitting information symbols utilize ternary codes or pivot codes in conjunction with spread spectrum encoding. The systems comprise at least a first symbol source for supplying an information signal comprising at least a first stream of I,Q bit pairs, means for using either a ternary code or at least one pivot code for spreading the at least first stream of I,Q bit pairs and thereby respectively forming first chips and second chips, and a radio signal modulator for transmitting the first chips and second chips over a radio interface. [00021] In contrast to the known art, in one of its aspects the current technology uses a more general N x N orthogonal code matrix which is related to a Walsh-Hadamard matrix apart from a scrambling of the order of columns. This more general code matrix is split by choosing as a pivot code any code comprising N/ 2 number of ones (1) and N/2 number of zeroes (0) and replacing the columns containing one in the pivot code with columns of null symbols to form a first NxN submatrix, and replacing columns containing zero in the pivot code with null symbols to form a second NxN submatrix. Each submatrix thus formed has pairs of identical rows. In order to obtain submatrices in which each row is unique, one of each row pair is deleted from each submatrix to leave a first and a second N/2 x N submatrix. Each row of each submatrix contains N/2 non-null symbols and N/2 null symbols, with the null columns of one submatrix occupying the same positions as the non-null columns of the other submatrix.
[00022] A first symbol stream may be CDMA encoded by multiplying each symbol with a code from the first matrix and a second symbol stream may be CDMA encoded by multiplying each symbol with a code of the second submatrix, the two encoded signals then being linearly added before transmission.
[00023] The technology eliminates the restriction to Walsh Hadamard column ordering, thus allowing greater choice of orthogonal code sets for minimizing interference between CDMA signals in neighboring geographical areas.
BRIEF DESCRIPTION OF THE DRAWINGS
[00024] The foregoing and other objects, features, and advantages of the invention will be apparent from the following more particular description of preferred embodiments as illustrated in the accompanying drawings in which reference characters refer to the same parts throughout the various views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention.
[00025] Fig. 1 is a flowchart illustrating basic steps involved in a technique of forming a pivot code pattern.
[00026] Fig. 2 is a flowchart illustrating basic steps involved in a technique of forming a ternary (separated) code (subcode). [00027] Fig. 3 is a diagrammatic view of a prior art overlap of coded symbols.
[00028] Fig. 4 is a diagrammatic view of an example embodiment of a CDMA transmission system.
[00029] Fig. 5 is a diagrammatic view of another example embodiment of a CDMA transmission system.
[00030] Fig. 6 is a diagrammatic view of yet another example embodiment of a CDMA transmission system.
DETAILED DESCRIPTION
[00031] In, the following description, for purposes of explanation and not limitation, specific details are set forth such as particular architectures, interfaces, techniques', nodes, functional entities, protocols, standards, etc. in order to provide a thorough understanding, of the present invention. However, it will be apparent to those skilled, in the art that the present invention may be practiced in other embodiments that depart from these specific details. In other instances, detailed descriptions of well-known devices, circuits, and methods are omitted so as not to obscure the description of the present invention with unnecessary detail. Moreover, individual function blocks are shown in some of the figures. Those skilled in the art will appreciate that the functions may be implemented using individual hardware circuits, using software functioning in conjunction with a suitably programmed digital microprocessor(s) or general purpose computer(s), either distributed or concentrated, and using an application specific integrated circuit (ASIC), and/or using one or more digital signal processors (DSPs).
[00032] It is useful to be able to create two or more orthogonal code sets which possess one or more common members, but which otherwise are maximally different. Such code sets can be produced by starting first with a simplex code set, which is produced by writing down all rotations of a maximum length sequence of length 2N-1 and then augmenting the code set by appending a column of zeros. Alternatively, as discussed above, the complement of the simplex code set can be used, augmented by a column of ones, using different maximum length sequences produces different code sets which are maximally different from each other apart from the common member. Such code sets can be useful for adjacent cells of a CDMA cellular system or in adjacent beams of a satellite communications system.
[00033] While one such code Set can be recast into the Walsh-Hadamard form by column interchange, it is impossible to find a column permutation which will reduce two such code sets to the standard Walsh-Hadamard form, and it is not useful to apply different column permutations to two such code sets, as that would destroy the sought after "maximally different" property.
[00034] Thus at least one code set will remain in non- Walsh-Hadamard form and so cannot be split in the prior art manner into shorter codes to allow variable-length orthogonal coding. Therefore it is desired to find a different method to produce shorter but still orthogonal codes that can be used with an orthogonal code set that is not in Walsh-Hadamard format.
[00035] An exemplary augmented simplex code set (such as that of Tsable.,2) can be used to form a "pivot" code pattern according to a technique having basic ;steps illustrated in Fig. 1. The technique of Fig. 1 begins by picking any cod& haying eight ones (I)' arid eight zeroes (0) to be a "pivot" code. In other words,, as; shown ..by* step 1-1 of Fig. 1, a first code is selected from a set of binary spreading codes to serve as the pivot code. The pivot code has a (preferably equal) non-zero number of members of a first binary value (e.g., one (I)) and non-zero number of members of a second binary value (e.g., zero (O)). The pivot code, being binary, thus has bits which are either of a first binary value (i.e., zero (O)) or a second binary value (i.e., one (I)).
[00036] The columns which contain ones in the pivot code are replaced with null symbols (denoted below by "x") to obtain a first set of ternary codes and the columns containing zeros in the pivot codes are replaced with null symbols to obtain a second set of ternary codes. That is, as step 1-2 of the technique of Fig. 1, target (bit) positions are selected for the pivot code, the target positions being either the first binary value (i.e., zero (O)) or the second binary value (i.e., one (I)). As step 1-2A, null symbols ("x") are written into the selected column positions of the pivot code. Accordingly, a pivot code pattern is produced which has null values in its target positions, and the (unselected, untargeted) binary values in its remaining positions. [00037] For example, if the second code listed in the code set of Table 2 is selected as the pivot code, and positions having the binary value "0" are selected for the target positions, then the resulting pivot code pattern is as follows: lxxxxl 11x1 lxxlxl . On the other hand, if the second code listed in the code set of Table 2 is selected as the pivot code, and positions having the binary value " 1 " are selected for the target positions, then the resulting pivot code pattern is as follows: xOOOOxxxOxxOOxOx.
[00038] An exemplary augmented simplex code set (such as that of Table 2) can also be separated into two sub-codes by a technique including basic steps illustrated in Fig. 2. The technique of forming sub-codes begins essentially in the same manner as the technique of Fig. 1, e.g., performing step 2-1 and step 2-2 which are essentially the same as step 1-1 and step 1-2 of Fig. 1, respectively. Performance of step 2-1 involves selecting the pivot code (like step 1-1). Step 2-2 involves selecting first target (bit) positions for the pivot code, the first target positions being either the first binary value (i.e., zero (O)) or the second binary value (i.e., one (I)). For sake of discussion, it will be assumed that zero valued positions are chosen as the first target positions.
[00039] As explained subsequently, step 2-3 of the technique 'of Fig., 1, involves selecting a second code from the set of binary spreading codes (e.g., the code set of Table 2) to serve as a derivation code. So as not to be prematurely restrictive regarding derivation codes in explaining the technique, insofar as Table 3 is concerned the ensuing discussion caters for any of the codes of the code set of Table 2 as being the derivation code.
[00040] Step 2-4 of the technique of Fig. 2 involves replacing chips of the second code (i.e., the derivation code) corresponding to the first target positions of the pivot code with a non-binary value (e.g., the null value ("x") and thereby forming a first ternary spreading code (e.g., a first "separated" or sub-code).
[00041] If a second ternary spreading code is to be formed from the derivation code, steps 2-5 and 2-6 of Fig. 2 can be performed. Step 2-5 involves selecting second target (bit) positions for the pivot code, the second target positions being the bit positions not chosen in step 2-2 (for sake of the same discussion, the one (1) value positions are chosen as the second target positions). Step 2-6 of the technique of Fig. 2 involves replacing chips of the second code (i.e., the derivation code) corresponding to the second target positions of the pivot code with a non-binary value (e.g., the null value ("x") and thereby forming a second ternary spreading code (e.g., a second "separated" or sub-code).
[00042] For example, using the second code (e.g., code 1000111101100101) in the set of Table 2 as the pivot code, the technique of Fig. 2 results in the two "separated" code sets shown in the second and third table columns of Table 3. The first table column of Table 3 lists the codes of the code set of Table 2. The first separated code set of Table 3 (the codes of the code set of second table column of Table 3) are formed by writing null symbols in the second code (e.g., code 1000111101100101) corresponding to the position of zero symbols in the pivot code in accordance with steps 2-2 and 2-4, while the second separated code set of Table 3 (the codes of the code set of third table column of Table 3) are formed by writing null symbols in the positions of the second code corresponding to the position of non-zero symbols in the pivot code in accordance with steps 2-5 and 2-6.
[00043] Table3
1111111111111111 lxxxxlllxllxxlxl xllllxxxlxxllxlx 1000111101100101 lxxxxlllxllxxlxl xOOOOxxxOxxOOxOx 1100001110110010 lxxxxOllxOlxxOxO xlOOOxxxlxxlOxlx 1010000111011001 lxxxxOOlxlOxxOxl xOlOOxxxlxxllxOx 1101000011101100 lxxxxOOOxllxxlxO xlOlOxxxlxxOlxOx 1010100001110110 lxxxxOOOxllxxlxO xOlOlxxxOxxlOxOx 1001010000111011 lxxxxlOOxOlxxOxl xOOlOxxxOxxllxlx 1100101000011101 lxxxxOlOxOOxxlxl xlOOlxxxOxxllxOx 1110010100001110 lxxxxlOlxOOxxlxO xllOOxxxOxxOlxlx 1011001010000111 lxxxxOlOxOOxxlxl xOllOxxxlxxOOxlx 1101100101000011 lxxxxOOlxlOxxOxl xlOllxxxOxxOOxlx 1110110010100001 lxxxxlOOxOlxxOxl xllOlxxxlxxOOxOx 1111011001010000 lxxxxllOxlOxxOxO xlllOxxxOxxlOxOx 1011101100101000 IXXXXOOIXOIXXOXO xOlllxxxOxxOlxOx 1001110110010100 lxxxxlOlxOOxxlxO xOOllxxxlxxlOxOx 1000111011001010 lxxxxllOxlOxxOxO xOOOlxxxlxxOlxlx [00044] It will be seen from Table 3 that separated codes occur in pairs or complementary pairs. For example, the separated code in the second column for the original code of the second row (e.g., code 1000111101100101) is the same as (and thus duplicates) the separated code in the second column for the original code 1011101100101000. Eliminating one of each pair (e.g., the complementary or duplicate of each pair) results in the separated codes of Table 4. Table 4 shows the original codes ("C" codes), as well as the two resulting separated (ternary) codes for the surviving original codes. In Table 4, a first resulting separated code for each surviving original code is referred the "A" code and a second resulting separated code for each surviving original code is referred the "B" code . Thus, as shown in Table 4, eight unique codes remain in each of the separated code sets. The pairs of eight unique codes are numbered as pairs 0 - 7 as reflected by the last table column of Table 4.
[00045] Table4
ORIGINAL CODES C SEPARATEDCODEA SEPARATEDCODEB
0 1111111111111111, lxxxxlllxllxxlxl xl11lxxxlxxllxlx 0
1 1000011101100101
2 1000111101100101 lxxxxOllxOlxxOxO xlOOOxxxlxxlOxlx 1
3 1010000111011001 lxxxxOOlxlOxxOxl xOlOOxxxlxxlIxOx 2
4 1101000011101100 lxxxxOOOxllxxlxO xlOlOxxxlxxOlxOx 3
5 1010100001110110
6 1001010000111011 lxxxxlOOxOlxxOxl xOOlOxxxOxxllxlx 4
7 1100101000011101 lxxxxOlOxOOxxlxl xlOOlxxxOxxllxOx 5
8 1110010100001110 lxxxxlOlxOOxxlx xllOOxxxOxxOlxlx 6
9 1011001010000111 a 1101100101000011 b 1110110010100001 c 1111011001010000 lxxxxlIOXIOXXOXO xlllOxxxOxxlOxOx d 1011101100101000 e 1001110110010100 f 1000111011001010
[00046] As explained previously, the x's in the above notation signify that no symbol (or a null symbol) exists in that location, while the ones (1) and zeroes (0) signify binary bits in Boolean notation. When such a code is converted to a signal for transmission, the signal value +1 may be used for a Boolean 0; the signal level -1 used for a Boolean 1, and the signal level zero used for the x's or null symbols. The correlation between any two of the separated codes is obtained by multiplying corresponding symbols and adding the products, using the logic of Table 5.
[00047] Table 5
BOOLEAN ARITHMETIC
1 times 1 = +1
1 times 0 = -1 x time 1, 0 or x = 0
[00048] It may be determined that the sixteen separated codes are all mutually orthogonal, in that the above-defined sum-of-products is zero for all pairs of codes. A separated code is also orthogonal to all of the original codes except the code from which it was separated and.one other. This pair of original codes may thus be replaced by a pair of separated codes (Ai,Bi) while preserving a mutually orthogonal set of sixteen codes, the separated pair ;now however being ternary codes including null symbols.
[00049] The pair of separated codes may now be used to spread two data symbols Dl and D2, such as by forming Dl(Ai) + D2(Bi), where Ai and Bi are the ternary code vectors. For example using the 5th separated code pair of Table 4, i.e., A5
(lxxxxOlOxOOxxlxl) and B5 (x 100 lxxxOxxl IxOx) yields the following 16-chip sequence:
-Dl -D2 D2 D2 -D2 Dl -Dl Dl D2 Dl Dl -D2 -D2 -Dl D2 -D2
[00050] An alternative way to encode twice the datarate is to use one of the original codes (C7) to spread Dl and the other (C9) to encode D2, where Cl and C9 are the code pair replaced by A5 and B5. The two spread-spectrum encoded signals are then linearly added. This is called the 'multicode" approach to obtaining higher datarates.
[00051] The difference between using A5 and B5 and using the two original codes C7 and C9 is that, when using the inventive codes A5, B5, the resulting chip values are now just equal to the symbol values Dl and D2 or their inverses instead of being the multi-level values +/-D1+/-D2 that would arise if Cl and C9 were used. Thus the new method avoids multi-valued signal values that arise with the multicode approach, simplifying transmit signal generation. Moreover, the despreading process at the receiver correlates the received signal with the separated ternary codes A5 and B5 which have of 50% null symbols, for which multiplications do not need to be performed. Thus the receiver is simpler.
[00052] The difference between the inventive approach and the prior art variable-length orthogonal coding approach is that the prior art approach would yield a chip sequence such as
Dl -Dl -Dl Dl -Dl Dl Dl -Dl -D2 D2 D2 -D2 D2 -D2 -D2 D2
in which the Dl and D2 valued chips are not interleaved. The interleaving of the Dl and D2- valued chips when using the present technology arises essentially from' the1 permutation of the columns of the code set, which mixes chips of the second half of the code with1 chips of the first half of the code. When in addition an overall complex scrambling code is applied to the above sequences, each successive chip is uncorrelated with the previous ones and the spectrum is thus indistinguishable between the interleaved and the non-interleaved sequences. The current invention may in principle be produced by employing a system using the prior art Walsh-Hadamard variable length orthogonal codes, and then applying an interleaving process to the resulting chip sequence. However, this is not the preferred method, as applying an interleaving process to a high chiprate stream involves more onerous processing.
[00053] Yet another way of achieving the same result as the above is to form the sum D1+D2 of two symbols and their difference D1-D2. The sum stream is then multiplicatively combined with a first spreading code and added to the difference stream multiplicatively combined with a second spreading code orthogonal to the first spreading code. The result is that, in bit positions where the first and second spreading codes agree, (D1+D2) + (D1-D2) = 2Dl will be transmitted, while where the bits of the first and second code disagree, 2D2 will be transmitted. Thus the appearance of multilevel symbols in this multicode approach is avoided by precombining the symbols such that the additive combination of the multicodes undoes the precombination. [00054] Another difference in the new technique is that the interference from a transmitter using a different code set to one of the A or B separated codes depends on more than one data symbol of the interfering transmitter. When using prior art split codes, the interference depends on only one symbol, as may be seen in Fig. 3. In Fig. 3, the coded symbol Dl transmitted by one transmitter overlaps only the coded symbol D3 transmitted by the second transmitter, and likewise D2 is only overlapped by D4. When the multicode approach is used, on the otherhand, Dl and D2 are overlapped by both D3 and D4, so there is more interference diversity. The prior art multicode method therefore provides more interferer diversity than the prior art variable length orthogonal coding method. When using the current invention, Dl is distributed by the column interleaving in a different way than D3 and D4, so the chips carrying Dl no longer coincide only with chips carrying D3 or D4 alone, but some of each, thus obtaining the desirable interference diversity of the prior art multicode method but without its disadvantages of multi-level chip values and more onerous receive processing.
[00055] It may be seen that each separated code except index 0 has half of its contents as ones and hall of its contents as zeroes (i.e., contains 50% ones and, 50%- zeroes) Accordingly, the process of separation into two codes, each having half the number, of non-null symbols, can he repeated to form doubly-separated codes by choosing one of the separated codes (such as those of Table 4) other than index 0 to be a new pivot, e.g., a new pivot code, also known as a secondary pivot code.
[00056] If the secondary pivot code is an "A" code, the resulting doubly-separated codes will be orthogonal to all the "B" codes but not orthogonal to the pivot and one other A code, which are therefore deleted in favor of the two new doubly-separated codes. Table 6 shows how doubly-separated codes can be formed from the separated codes of Table 4 when, for example, code B3 of Table 4 (i.e., xlOlOxxxlxxOlxOx) is chosen as the secondary pivot. In Table 6, the notation "code BA" and "code BB" indicates that the two new codes have been derived from code B. Had two doubly- separated codes been derived from an A-code secondary pivot instead, they would be denoted AA and AB. [00057] Table6
SEPARATEDCODEA SEPARATEDCODEE 5 SEPARATEDCODEBA SEPARATEDCODEBB
0 lxxxxlllxllxxlxl xl11lxxxlxxllxlx xlxlxxxxlxxxlxxx xxlxlxxxxxxlxxlx
1 lxxxxOllxOlxxOxO xlOOOxxxlxxlOxlx x1xOxxxx1xxxOxxx xxOxOxxxxxx1xx1x
2 1xxxxOO1x1Oxxox1 xOlOOxxxlxxllxOx xOxOxxxxlxxxlxxx xx1xoxxxxxx1xxOx
3 lxxxxOOOxllxxlxO xlOlOxxxlxxOlxOx xlxlxxxxlxxxlxxx xxOxOxxxxxxOxxOx
4 lxxxxlOOxOlxxOxl xOOlOxxxOxxllxlx xOx1xxxxcxxx1xxx xxOxOxxxxxx1xx1x
5 lxxxxOlOxOOxxlxl xlOOlxxxOxxllxOx x1xOxxxxOxxx1xxx xxOx1xxxxxx1xxOx
6 lxxxxlOlxOOxxlxO xllOOxxxOxxOlxlx x1xOxxxxOxxO1xxx xx1xOxxxxxxOxx1x
7 lxxxxllOxlOxxOxO xlllOxxxOxxlOxOx x1x1xxxxOxxxOxxx xx1xOxxxxxx1xxex
[00058] By eliminating one of each pair or complementary pair of BA or BB of codes in Table 6, there remain 4 unique BA codes and 4 unique BB codes as shown in Table
7.
[000591 Table7
SEPARATEDCODEA SEPARATEDCODEB SEPARATEDCODEBA SEPARATEDCODE'BB
O lxxxxlllxllxxlxl xllllxxxlxxllxlx xlxlxxxxlxxxlxxx xxlxlxxxxxxlxxlx O
1 lxxxxOllxOlxxOxO xlOOOxxxlxxlOxlx x1xOxxxx1xxxOxxx xxOxOxxxxxxlxxlx 1
2 lxxxxOO1x1Oxxox1 xOlOOxxxlxxllxOx xOxOxxxx1xxx1xxx xx1xoxxxxxx1xxOx 2
3 lxxxxOOOxllxxlxO xlOlOxxxlxxOlxOx
4 lxxxxlOOxOlxxOxl xOOlOxxxOxxllxlx
5 lxxxxOlOxOOxxlxl xlOOlxxxOxxllxOx x1xOxxxxOxxx1xxx xxOx1xxxxxx1xxOx 3
6 lxxxxlOlxOOxxlxO xllOOxxxOxxOlxlx
7 lxxxxllOxlOxxOxO xlllOxxxOxxlOxOx
[00060] If, for example, code B5 of Table 4 (xlOOlxxxOxxl lxOx) were separated as indicated into two codes BA3 and BB3, all of the A codes may still be used as they are orthogonal to the BA and BB codes, but use of the original B 5 code must be foregone as must use of code B 6 which is not orthogonal to B A3 and BB 3. Thus two of the B codes are replaced by two of the doubly-separated codes. Either the corresponding A code A3 may also be separated into two new codes AA and AB, or a different A code or a different doubly-separated B code may be used to obtain four doubly-separated codes with which to spread four data symbols Dl, D2, D3, D4 thus allowing a quadrupling of the transmitted datarate. If a doubly separated A code is used to obtain AA and AB, a different A code can be chosen as the pivot, i.e., it does not have to be the A code A3 corresponding to the pivot B3. On the other hand if two pairs of doubly separated B codes are used to encode Dl, D2, D3 and D4, they must be obtained by use of the same pivot in order to obtain orthogonal codes.
[00061] Fig. 4 illustrates a CDMA transmitting system 20 according to a first example embodiment and suitable for implementing techniques including those described above. The particular example system of Fig. 4 uses QPSK modulation, which is a four-phase modulation conveying two bits per information symbol. In Fig. 4, information bits enter a turbo-encoder 22 as shown by arrow 24. The turbo-encoder 22 performs such example operations as error correction coding and interleaving and outputs coded bits (on line 26) in an interleaved order. The number of coded bits is greater than the number of information bits by a factor in the region of two to four, reflecting the rate of the code.
[00062] At a selecting means or switch 30, the coded bits output from turbo-encoder 22 are separated into two streams. Such separation by switch 20 can occur, for example, by directing even-numbered bits to one path and odd-numbered bits to another path, i.e., 1-bits to one path and Q-bits to another path. At spreader 34 each of the,even or odd bits is then expanded by a CDMA spreading factor by combining .them with the assigned ternary code to provide a greater number of chips per second,- some'of which are null chips having a zero amplitude corresponding to the x's in the assigned code. The assigned code utilized by spreader 34 is a ternary code generated in accordance with techniques such as those previously described, e.g., with reference to Fig. 2. Fig. 4 shows the assigned ternary code as being stored in a memory or register 36. The assigned code, i.e., the contents of register 36, is hereinafter also referred to as assigned code AC. The same assigned code AC is used to spread both the I and Q bits.
[00063] The assigned ternary code (AC) in register 36 can be pre-stored therein or alternatively (and optionally) generated by ternary code generator 40. The ternary code generator 40 can comprise any suitable structure for generating one or more ternary codes in accordance with techniques such as those described previously by way of example with reference to Fig. 2. Such structure can comprise individual hardware circuits, using software functioning in conjunction with a suitably programmed digital microprocessor(s) or general purpose computer(s), either distributed or concentrated, and using an application specific integrated circuit (ASIC), and/or using one or more digital signal processors (DSPs). In generating such ternary code(s), the ternary code generator 40 can utilize inputs such as choice of pivot code, choice of derivation code, and the like.
[00064] The even and odd (I and Q) bits and the corresponding even and odd (I and Q) chips produced by spreader 34 using assigned code AC in register 36 are directed to be transmitted using the cosine and sine or "I and 0" channels of a complex radio signal modulator 44, and so may thus be called "I-bits, Q-bits" and "I-chips, Q-chips" respectively. A pair of bits comprising an I-bit and a Q-bit, if the bit periods are synchronized, comprises a QPSK symbol as is well known in art, and a pair of I, Q chips comprises a QPSK symbol at the CDMA spread rate.
[00065] The I-chips will be filtered before modulating a cosine radio carrier signal and the Q-chips will be filtered before modulating a sine carrier signal, this being performed by quadrature modulator 44. Prior to modulation in modulator 44, however, the (I- chip,Q-chip) stream is scrambled by scrambler 46. Scramber 46 performs scrambling by rotating the phase of the QPSK symbol or complex number it represents through either 0, 90, 180, or 270 degrees by complex-multiplication with a pseudorandom
QPSK symbol stream from an I,Q code generator 48. This scrambling code is common to different signals transmitted by the same cell txansmittery and may also be common to different cells when different assigned code sets (AC) are used to distinguish the signals transmitted in different cells. The use of a common scrambling code ensures that the mutual orthogonality of different signals in the same cell is undisturbed, and that the cross-correlation between different cell signals is substantially determined by the choice of code sets (AC).
[00066] A multi-signal transmitter for a cellular base station is usually formed by adding the output of many scramblers 46 prior to filtering and modulating the sum signals using a common filter/modulator 44. In the case of a multi-signal satellite communications transmission system, the outputs of many complex scramblers may be applied to a beamformer to generate satellite antenna array element drive signals for forming beams in different directions for each signal using the plurality of array elements, the plurality of drive signals then being preferably quadrature time- multiplexed before filtering and upconverting in a corresponding plurality of filter- modulators. [00067] Thus, the CDMA transmitting system 20 of Fig. 4 comprises at least a first symbol source (22, 30) for supplying an information signal comprising at least a first stream of I,Q bit pairs; means (including spreader 34) for using a ternary spreading code to spread bits of the first bit stream and the second bit stream and thereby respectively forming first chips and second chips; and, means (e.g., modulator 44) for using radio signal modulation for transmitting the first chips and second chips over a radio interface.
[00068] Fig. 5 illustrates another example embodiment of a CDMA transmitting system 120 suitable for implementing techniques described herein. In Fig. 5, a first coded information symbol source 110a produces I,Q bit pairs (IA5QA) for CDMA encoding using a first split-code according to the technology described herein. A second coded symbol source 110b produces a second stream of I,Q bit pairs (IB,QB). Sources (110a, 110b) may each correspond to the turbo encode 22 and even/odd separator 30 of Fig. 4. Alternatively the sources HOa, HOb may equate to a single source which supplies half its bits (IA5QA) on one output and half oh another output (IB5QB). Thus the arrangement of Fig. 5 illustrates how either two basic data-rate signals may be transmitted or alternatively one double-rate signal.
[00069] In Fig. 5, the whole (unsplit) orthogonal code (ACa, stored, for example, in register 136)) is applied to the CDMA spreader 134. However, corresponding to where there were x's in code (AC) of Fig. 4, the switches 130 will be toggled from position A to position B5 so that the first coded symbol source output symbols are selected where there are non-null chips in code (AC), thereby spread-spectrum encoding symbols IA5QA with the "A" split of the full orthogonal code (ACa)5 and the second coded symbol source symbols are selected where there are null-chips in code (AC), thereby spread-spectrum encoding symbols (IB5QB) with the B-split of code (ACa). Recalling that the split into an A and a B code is determined by the locations of ones or zeroes respectively in the chosen pivot code, the pivot code pattern (ACb) is applied to the control input of selector switches 130 simultaneously with supplying the undivided code (ACa) to the spreader 134. The pivot code pattern (ACb) is shown in Fig. 5 as being stored or pre-stored in a register or alternatively (and optionally) generated by pivot code generator 138. The pivot code generator 138 can comprise any suitable structure for generating a pivot code in accordance with techniques such as those described previously by way of example with reference to Fig. 1. Such structure can comprise individual hardware circuits, using software functioning in conjunction with a suitably programmed digital microprocessor(s) or general purpose computer(s), either distributed or concentrated, and using an application specific integrated circuit (ASIC), and/or using one or more digital signal processors (DSPs).
[00070] Thus, the CDMA transmitting system 120 of Fig. 5 comprises a first symbol source HOa for supplying an information signal comprising at least a first stream of I,Q bit pairs and a second symbol source 110b for supplying a second stream of I,Q bit pairs; means (including switches 130 and spreader 134) for using a pivot code to spread bits of the first bit stream and the second bit stream and thereby respectively forming first chips and second chips; and, means (e.g., modulator 44) for using radio signal modulation for transmitting the first chips and second chips over a radio interface. In an example implementation, the spreading means comprises a switch or selector (130c) for selecting between I,Q bit pairs of the first stream and the second stream in dependence upon a pattern of the at least one pivot code (ACb) and for applying selected bits of the first stream and the second stream to the spreader
[00071] If the pivot code pattern; AGb of system 120 of Fig. 5 is set to all ones, i.e., all A's, then only coded symbol source ! 10a will be selected to be spread with all sixteen chips of code ACa. Thus the arrangement of Fig. 5 can operate in any of the following 3 modes (as, e.g., alternative modes):
(i) Spreading a single symbol source by a factor of 16
(ii) Spreading two symbol sources by a factor of 8 using split codes
(iii) Spreading a single source of double the data rate by a factor of 8 using the split-codes.
[00072] As shown by the system 220 of Fig. 6, the system 120 of Fig. 5 may be readily extended to the use of four doubly-split codes, by using a four-way selector switch system 230. Switch system 230 has a two-bit control input, the two bits being corresponding bits of the first pivot code (ACb) used for deriving the first code split, and a second pivot code chosen to provide the second code split. Fig. 6 shows the arrangement of a four-way selector 230 for the case where a different pivot code ACd is selected to split the first B-split code into BB and BA codes as compared with the pivot code ACc used to split the A-split code into AA and AB codes. The pivot code ACc and pivot code ACd may be generated using the same pivot code generator 138 which generates the pivot code ACb, or other generator(s) which generating a pivot code in accordance with techniques such as those described previously by way of example with reference to Fig. 1.
[00073] The pivot code (ACb) used to effect the first code-split is applied to selector 230c to determine whether a symbol encoded with a code derived from an A-code or a symbol encoded with a code derived from a B-code is selected. If the former, the symbol will be selected by selector 230a. Selector 230a is controlled by the A-split pivot code (Ace) which is selected to be the second pivot for deriving doubly-split codes AA and AB. If the latter, the symbol will be selected by selector 230b, which is controlled by the B -split pivot code (ACd) selected to be the second pivot for deriving doubly-split code BA and BB.
[00074J Thus with the arrangement of Fig. 6, the second pivots (i.e., the secondary pivot codes) can be different for the A code branch and the B code branch. As previously explained, in positions in which the second pivots contain X's signifies a "don't care" or null value, as the first pivot code deselects the selector 230a or 230b in these bit positions. Thus the X's may be filled in with the other bits from the original unsplit codes from which they were derived, i.e., second pivot code ACc can be original code 2 and the second pivot code ACd can be original code c. Thus all pivot codes applied to selectors 230a, 230b and 230c may be binary as opposed to ternary codes. Likewise, the output stream to spreader 234 is spread with a full binary orthogonal code selected from the set (0, 2 ,3, 4, 6, 7, 8, c) except for the pivot codes. A further degree of freedom is to select a first spreading code when selector 230c is in the "A" position, in which case only the second A-pivot code must be excluded, and a second spreading code when selector 230c is in the "B" position, in which case only the second B-pivot code need be excluded.
[00075] Some of the foregoing can be expressed in another way: at each chip interval, one of a number of coded information symbol sources is selected to be combined with a spreading code, scrambled, and transmitted. If all the information sources are of the same datarate, each symbol from each data source will be selected an equal number of times corresponding to the spreading factor. If each data source is not the same data rate, the number of times each symbol will be selected will correspond to the individual spreading factor of that data source. The selection among 2N data sources is controlled by the bits of at least N pivot codes. A corresponding bit from each of the N pivot codes, which must all be different and mutually orthogonal, forms the N-bit control input to a 2N-way selector tree. The choice of the pivot codes defines the order in which the different data sources will be selected and reselected for a determined number of repeats of each data symbol.
[00076] Another implementation is the use of a 2N-way selector that is programmed to select among its input sequentially. A data symbol from a particular source is then applied to a number of inputs corresponding to the spreading factor for that data source, Moreover, the inputs used are not necessarily sequential, but correspond to the instants at which the data symbol would be reselected by the other implementations of the invention, such as that of as Fig. 6.
[00077] The four coded symbol sources (110a, HOb, HOc, and HOd) of Fig. 6 may be four independent information streams, or alternatively may each represent one fourth of the output symbols of a quadrupler-rate information symbol stream.
[00078] The arrangement may be expended by a person skilled in the art to higher order binary selector trees to obtain other data rates in steps of a power of two.
[00079] The arrangement may also be used with modulation symbols of higher order than QPSK. In that case, a value-pair such as (IAA5QAA) denotes the complex coordinates of a constellation point in the complex plane assigned to represent a symbol in the higher-order alphabet.
[00080] The above principles may also be extended to the use of other than binary orthogonal codes, such as Fourier sequences or hybrid Walsh-Fourier sequences. Such code sets also remain mutually orthogonal under column permutations, different permutations being used to produce distinct sets. Such codes are not restricted to being a power of two long, but the length must not be prime if it is desired to split such codes into derived sets. For example, a Fourier code set of length fifteen may be split into either three sets of spreading factor 5 or five sets of spreading factor 3, but a code set of length seventeen may not be split in a meaningful way. [00081] The method of deriving lower spreading factor codes from higher spreading factor codes by splitting a first higher spreading factor code according to the chip values of a second higher spreading-factor code can in principle be executed whether the code set is an orthogonal code set or not. Of course if the code set is not orthogonal, then the derived split codes are not guaranteed to be orthogonal either; non- orthogonal codes are however sometimes useful in CDMA systems.
[00082] This technology allows non-Walsh-Hadamard orthogonal code sets to be used as variable length codes. In contrast to the known art, the current technology uses a more general N x N orthogonal code matrix which is related to a Walsh-Hadamard matrix apart from a scrambling of the order of columns. This more general code matrix is split by choosing as a pivot code any code comprising N/ 2 number of ones (1) and N/2 number of zeroes (0) and replacing the columns containing one in the pivot code with columns of null symbols to form a first N x N submatrix, and replacing columns containing zero in the pivot code with null symbols to form a second N x N submatrix. Each submatrix thus formed has pairs of identical rows. In order to obtain submatrices in which each row is unique, one of each row pair is deleted from each submatrix to . leave a first and a second N/2 x N submatrix. Each row of each submatrix contains jN/2 non-null symbols and*N/2 null symbols, with the null columns of one submatrix occupying the same positions as the non-null columns of the other submatrix. A first symbol stream may be CDMA encoded by multiplying each symbol with a code from the first matrix and a second symbol stream may be CDMA encoded by multiplying each symbol with a code of the second submatrix, the two encoded signals then being linearly added before transmission.
[00083] The technology described herein eliminates the restriction to Walsh Hadamard column ordering, thus allowing greater choice of orthogonal code sets for minimizing interference between CDMA signals in neighboring geographical areas.
[00084] Although various embodiments have been shown and described in detail, the claims are not limited to any particular embodiment or example. None of the above description should be read as implying that any particular element, step, range, or function is essential such that it must be included in the claims scope. The scope of patented subject matter is defined only by the claims. The extent of legal protection is defined by the words recited in the allowed claims and their equivalents. It is to be understood that the invention is not to be limited to the disclosed embodiment, but on the contrary, is intended to cover various modifications and equivalent arrangements.

Claims

WHAT IS CLAIMED IS:
1 1. A method of generating a ternary code for use in spreading an information
2 signal, the method characterized by:
3 selecting (2-1) a first code from a set of binary spreading codes to serve as a
4 pivot code, the pivot code having non-zero number of members of a first binary value
5 and non-zero number of members of a second binary value;
6 selecting (2-2) positions of the pivot code having one of the first binary value
7 and the second binary value to serve as first target positions;
8 selecting (2-3) a second code from the set of binary spreading codes to serve as a
9 derivation code; 0 replacing (2-4) chips of the second code corresponding to the first target 1 positions of the pivot code with a non-binary value and thereby forming a first ternary 2 spreading code. i
1 2. The method of claim 1, further characterized by:
2 selecting (2-5) positions of the pivot code having another of the first binary
3 value and the second binary value to serve as second target positions;
4 replacing (2-6) chips of the second code corresponding to the second target
5 positions of the pivot code with a non-binary value and thereby forming a second
6 ternary spreading code, i
1 3. A method of spreading an information signal characterized by:
2 selecting (2-1) a first code from a set of binary spreading codes to serve as a
3 pivot code, the pivot code having an equal non-zero number of members of a first
4 binary value and members of a second binary value;
5 selecting (2-2) positions of the pivot code having one of the first binary value
6 and the second binary value to serve as first target positions;
7 selecting (2-3) a second code from the set of binary spreading codes to serve as a
8 derivation code;
9 replacing (2-4) chips of the second code corresponding to the first target 0 positions of the pivot code with a non-binary value and thereby forming a first ternary 1 spreading code; and, 2 using the first ternary spreading code to spread bits of the information signal. i 1 4. The method of claim 3, further characterized by: selecting (2-5) positions of the pivot code having another of the first binary value and the second binary value to serve as second target positions; replacing (2-6) chips of the second code corresponding to the second target positions of the pivot code with a non-binary value and thereby forming a second ternary spreading code; using the first ternary spreading code to spread a first data symbol and using the
8 second ternary spreading code to spread a second data symbol, i
1 5. The method of claims 1 or 3, wherein said set of binary spreading codes are
2 mutually orthogonal, i
1 6. A method of communicating information symbols comprising:
2 transmitting each information symbol a repeated number of times corresponding
3 to a spread spectrum spreading factor, the instants at which a given symbol is repeated
4 being non-sequential and selected according to an assigned pattern, other information
5 symbols being transmitted likewise during the other instants not selected for
6 transmitting said given symbol;
7 for each of said repeat transmissions of said given symbol, altering the sign or
8 phase of repeat transmission of the given symbol by combining the given symbol with
9 one or both of 0 (a) selected bits of an assigned code from a set of mutually orthogonal codes, 1 and 2 (b) selected chips of a spread-spectrum scrambling code, 3 said selected bits or chips corresponding to said selected instants, i
1 7. A method of constructing a set of variable-rate orthogonal codes for a CDMA
2 communications system, comprising:
3 determining a code length corresponding to a lowest data rate;
4 determining a set of orthogonal codes of said determined code length, each code
5 except one containing an equal number of binary ones and binary zeros, and at least one
6 code having all its binary ones adjacently grouped, the bits of each code defining a
7 corresponding row of a bit matrix and corresponding bits of different codes defining a
8 column of said bit matrix; 9 determining a permutation of the columns of said bit matrix to obtain a permuted 0 bit matrix: 1 determining a first row in said permuted bit matrix to be used as a CDMA 2 spreading code when a first data stream to be communicated has a data rate equal to 3 said lowest data rate and combining each symbol of said first data stream with the bits 4 of said first row to obtain chips and transmitting said chips; 5 determining a second row from said permuted bit matrix from among the rows 6 containing an equal number of binary ones and binary zeros when a second data stream 7 to be communicated has a data rate equal to twice said lowest data rate; 8 repeatedly transmitting each symbol of a first half of the symbols of said second 9 data stream at instants corresponding to the location of binary ones in said determined 0 second row and repeatedly transmitting each symbol of the other half of the symbols of 1 said second data stream at instants corresponding to the location of binary zeros in said 2 determined second row. i
1 8. The method of claim 7, further comprising:
2 determining a third row of said permuted bit matrix, the bits of which to
3 combine with symbols of said second data stream transmitted at corresponding instants
4 such that when said first data stream and said second data stream are transmitted
5 simultaneously, their corresponding transmissions are orthogonal. i
1 9. A method of deriving lower spreading-f actor codes from a set of higher
2 spreading-factor codes, each chip of said lower spreading-factor codes having values
3 denoted by 'A', 7B' or null, comprising:
4 selecting a first, higher spreading-factor code to be a pivot code, the pivot code
5 comprising a non-zero number of 'A -valued symbols and a non-zero number of 5B -
6 valued symbols;
7 selecting a second, higher spreading-factor code from which to derive two lower
8 spreading-factor codes;
9 selecting chips of said second, higher spreading-factor code corresponding to 0 the positions of chips of value 'A' in said pivot code, placing null-valued chips in the 1 remaining chip positions to form a first lower-spreading-f actor code, and 2 selecting chips of said second code corresponding to the positions of chips of 3 value Ε ' in said pivot code, placing null- valued chips in the remaining chip positions to 4 form a second lower-spreading-factor code. i 1 10. The method according to claim 9, wherein said set of higher spreading- factor codes are mutually orthogonal.
1 11. The method of claim 10, wherein said lower spreading factor codes are
2 mutually orthogonal and orthogonal to said higher spreading factor codes excluding
3 said selected pivot code and said second, higher spreading factor code, i
1 12. The method of claim 9, wherein said value denoted by 'A' is a signal level of
2 +1, wherein said value Ε' is a signal level of -1, and wherein said null value is a signal
3 level of zero, i
1 13. The method of claim 9, further comprising scrambling said transmissions
2 using a real or complex scrambling code. i
1 14. A method of deriving at least one lower spreading-factor code from a set of
2 mutually orthogonal higher spreading-factor codes comprising:
3 selecting a first, higher spreading-factor code from which to derive at least one
4 lower spreading factor code;
5 replacing a number of non-zero-amplitude chips of said selected first code with
6 zero-amplitude chips to obtain one of said at least one derived codes, locations of said
7 replaced chips being selected so that said at least one derived code is orthogonal to said
8 higher spreading factor codes, i
1 15. A system (20, 120, 200) for transmitting information symbols comprising:
2 a separator (30) for separating bits of an information signal into a first bit stream
3 and a second bit stream;
4 means ((34)(130, 134)(230, 234)) for using a ternary spreading code or a pivot
5 code to spread bits of the first bit stream and the second bit stream and thereby
6 respectively forming first chips and second chips;
7 means (44) for using radio signal modulation for transmitting the first chips and
8 second chips over a radio interface, l
1 16. An information symbol transmitter comprising: at least a first symbol source (22, 30) for supplying an information signal
3 comprising at least a first stream of I,Q bit pairs; means ((34)(130, 134)(230, 234)) for using either a ternary code or at least one pivot code for spreading the at least first stream of I, Q bit pairs and thereby respectively
6 forming first chips and second chips; a radio signal modulator (44) for transmitting the first chips and second chips
8 over a radio interface, i
1 17. The apparatus of claim 16, wherein the ternary code is generated by:
2 selecting a first code from a set of binary spreading codes to serve as a pivot
3 code, the pivot code having non-zero number of members of a first binary value and
4 non-zero number of members of a second binary value;
5 selecting positions of the pivot code having one of the first binary value and the
6 second binary value to serve as first target positions;
7 selecting a second code from the set of binary spreading codes to serve as a
8 derivation code;
9 replacing chips of the second code corresponding to the first target positions of 0 the pivot code with a non-binary value, and thereby forming the ternary code. l
1 18. The apparatus of claim 16, further comprising:
2 a second symbol source for supplying a second stream of I,Q bit pairs;
3 wherein the means for spreading further comprises:
4 a spreader;
5 a selector for selecting between I,Q bit pairs of the first stream and the
6 second stream in dependence upon a pattern of the at least one pivot code and for
7 applying selected bits of the first stream and the second stream to the spreader; and
8 wherein the spreader uses a higher spreading-factor binary code for
9 spreading the applied selected bits of first stream and the applied selected bits of second o stream and thereby respectively forming the first chips and the second chips. i
1 19. The apparatus of claim 18, further comprising:
2 2N number of symbol sources for supplying a respective 2N number of I,Q bit
3 pairs;
4 wherein the selector selects between I,Q bit pairs of the 2N number of symbol
5 sources in dependence upon patterns of respective N number of second pivot codes, and
6 wherein after selection using the N number of second pivot codes the selector further
7 selects in dependence upon the pattern of the at least one pivot code, i 20. The system of claim 16, further comprising a scrambler for scrambling the first chips and second chips prior to transmission.
PCT/SE2005/001129 2004-07-06 2005-07-06 Non-contiguous variable length orthogonal codes WO2006004550A2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
ES05757933.6T ES2438532T3 (en) 2004-07-06 2005-07-06 Non-contiguous variable length orthogonal codes
EP05757933.6A EP1763934B8 (en) 2004-07-06 2005-07-06 Non-contiguous variable length orthogonal codes
US11/631,790 US8526482B2 (en) 2004-07-06 2005-07-06 Non-contiguous variable length orthogonal codes

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US58509704P 2004-07-06 2004-07-06
US60/585,097 2004-07-06

Publications (2)

Publication Number Publication Date
WO2006004550A2 true WO2006004550A2 (en) 2006-01-12
WO2006004550A3 WO2006004550A3 (en) 2006-02-23

Family

ID=35783259

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/SE2005/001129 WO2006004550A2 (en) 2004-07-06 2005-07-06 Non-contiguous variable length orthogonal codes
PCT/SE2005/001130 WO2006004551A2 (en) 2004-07-06 2005-07-06 Different orthogonal code sets with members in common

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/SE2005/001130 WO2006004551A2 (en) 2004-07-06 2005-07-06 Different orthogonal code sets with members in common

Country Status (4)

Country Link
US (2) US8526482B2 (en)
EP (2) EP1763933B1 (en)
ES (1) ES2438532T3 (en)
WO (2) WO2006004550A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3200368A4 (en) * 2014-09-25 2017-10-25 ZTE Corporation Multi-user code division multiple access communication method, and corresponding transmitter and receiver

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2438532T3 (en) * 2004-07-06 2014-01-17 Telefonaktiebolaget L M Ericsson (Publ) Non-contiguous variable length orthogonal codes
US7643536B2 (en) * 2004-08-10 2010-01-05 Mayo Foundation For Medical Education And Research Asynchronus communication system for remote monitoring of objects or an environment
FI20055175A0 (en) * 2005-04-15 2005-04-15 Nokia Corp The radio accesses in the CDMA-based communication system
WO2006134666A1 (en) * 2005-06-17 2006-12-21 Fujitsu Limited Wireless access method, wireless base station device, and wireless terminal device
FR2891423B1 (en) * 2005-09-23 2007-11-09 Alcatel Sa DEVICE AND METHOD FOR DATA PROCESSING BY MODULATION OF PSEUDO-CODING GAMES FUNCTION OF CELLS TO DATA, FOR MULTI-BEAM COMMUNICATION SATELLITE
US7729235B2 (en) * 2005-09-27 2010-06-01 Mediatek Inc. Method and apparatus for OVSF code generation
JP4767700B2 (en) * 2006-01-17 2011-09-07 株式会社エヌ・ティ・ティ・ドコモ Base station and downlink channel transmission method
TW200808656A (en) 2006-04-27 2008-02-16 Solvay Fluor Gmbh Reversible water-free process for the separation of acid-containing gas mixtures
JP5247441B2 (en) 2006-06-16 2013-07-24 シャープ株式会社 data structure
WO2008021062A1 (en) * 2006-08-11 2008-02-21 Interdigital Technology Corporation Wireless communication method and system for indexing codebook and codeword feedback
WO2008037114A1 (en) * 2006-09-25 2008-04-03 Huawei Technologies Co., Ltd. Information carrying synchronization code and method for frame timing synchronization
EP3585018A1 (en) 2006-09-30 2019-12-25 Huawei Technologies Co., Ltd. Sequence distributing method, sequence processing method and apparatus in communication system
WO2008041916A1 (en) * 2006-10-02 2008-04-10 Telefonaktiebolaget Lm Ericsson (Publ) Method for reducing intra-cell interference between cell phones performing random access
US7817574B2 (en) * 2006-10-19 2010-10-19 Motorola Mobility, Inc. Inter-packet-node paging between communication networks
CN101198087A (en) * 2006-12-08 2008-06-11 昂达博思公司 System and method for reducing pilot frequency interference between sectors in mobile communication system
PT2101419E (en) 2007-03-07 2011-04-19 Huawei Tech Co Ltd Sequence distributing, processing method and apparatus in communication system
JP5006106B2 (en) * 2007-05-25 2012-08-22 株式会社エヌ・ティ・ティ・ドコモ Mobile communication system, base station apparatus, user apparatus and method
US20120320821A1 (en) * 2010-03-02 2012-12-20 Sumei Sun Method and device for relaying data
US10229488B2 (en) 2010-03-31 2019-03-12 Agency For Science, Technology And Research Method and system for determining a stage of fibrosis in a liver
EP2555452B1 (en) * 2010-04-02 2018-08-15 Fujitsu Limited Apparatus and method for orthogonal cover code (occ) generation, and apparatus and method for occ mapping
US8832144B2 (en) * 2011-07-11 2014-09-09 International Business Machines Corporation Search optimization in a computing environment
EP2876942B1 (en) * 2012-07-20 2021-04-14 Fujitsu Connected Technologies Limited Wireless communication method, wireless communication system, base station, and wireless terminal
US9357507B2 (en) * 2012-09-13 2016-05-31 Qualcomm Incorporated Centralized management for pilot pollution mitigation in small cell networks
US8817735B1 (en) * 2012-09-28 2014-08-26 Sprint Spectrum L.P. Systems and methods for allocating fully-orthogonal and quasi-orthogonal spreading codes to access terminals in radio access networks based on a tolerance level for additional interference on a per-access-terminal basis
CN105991159B (en) * 2015-02-13 2019-07-02 中兴通讯股份有限公司 Data transmission method and device
WO2019047060A1 (en) * 2017-09-06 2019-03-14 Zte Corporation Method and device for pilot sequence transmission
WO2019128465A1 (en) * 2017-12-27 2019-07-04 西安科锐盛创新科技有限公司 Cdma system channel spreading device and method, and mobile communication system
US11196594B2 (en) 2019-02-28 2021-12-07 Nokia Solutions And Networks Oy Probabilistic signal shaping using multiple codebooks

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IE53125B1 (en) * 1981-06-19 1988-07-06 Marconi Co Ltd Radio communications apparatus
US5151919A (en) * 1990-12-17 1992-09-29 Ericsson-Ge Mobile Communications Holding Inc. Cdma subtractive demodulation
US5353352A (en) * 1992-04-10 1994-10-04 Ericsson Ge Mobile Communications Inc. Multiple access coding for radio communications
US5550809A (en) * 1992-04-10 1996-08-27 Ericsson Ge Mobile Communications, Inc. Multiple access coding using bent sequences for mobile radio communications
US6643319B1 (en) * 1994-09-29 2003-11-04 Ricoh Company, Ltd. Wireless computer network communication system and method which determines an available spreading code
US5844894A (en) * 1996-02-29 1998-12-01 Ericsson Inc. Time-reuse partitioning system and methods for cellular radio telephone systems
US6141373A (en) * 1996-11-15 2000-10-31 Omnipoint Corporation Preamble code structure and detection method and apparatus
US6122266A (en) * 1997-02-19 2000-09-19 Lucent Technologies Inc. Multi-level sectorized CDMA communications
US6680928B1 (en) * 1997-07-22 2004-01-20 Ericsson Inc. Communications system and method for multi-carrier orthogonal coding
US6359874B1 (en) * 1998-05-21 2002-03-19 Ericsson Inc. Partially block-interleaved CDMA coding and decoding
US6215762B1 (en) * 1997-07-22 2001-04-10 Ericsson Inc. Communication system and method with orthogonal block encoding
US6590889B1 (en) * 1997-08-11 2003-07-08 Gte Internetworking Incorporated Data communications system and hybrid time-code multiplexing method
SE9703161L (en) 1997-09-02 1999-03-03 Ericsson Telefon Ab L M Procedure for telecommunications
KR100279944B1 (en) * 1997-12-09 2001-02-01 윤종용 Method of walsh code allocation by group in cdma cellular system
US6317422B1 (en) * 1998-04-15 2001-11-13 Nortel Networks Limited Methods and apparatus of N-chip resistant spreading in CDMA systems
US6324159B1 (en) * 1998-05-06 2001-11-27 Sirius Communications N.V. Method and apparatus for code division multiple access communication with increased capacity through self-noise reduction
US6240143B1 (en) * 1998-08-18 2001-05-29 Qualcomm Inc. Method and apparatus for the reflection and transmission of quasi orthogonal vectors
FI982203A (en) * 1998-10-09 2000-04-10 Nokia Networks Oy Method and generator for generating an orthogonal spreading code in a CDMA radio system
US6618430B1 (en) * 1998-12-14 2003-09-09 Nortel Networks Limited Methods and apparatus for receiving N-chip resistant codes
US6388998B1 (en) * 1999-02-04 2002-05-14 Lucent Technologies Inc. Reuse of codes and spectrum in a CDMA system with multiple-sector cells
KR20000066904A (en) * 1999-04-21 2000-11-15 윤종용 Apparatus and method for generating spreading code in cdma communications system
JP2003503875A (en) 1999-06-28 2003-01-28 エリクソン インコーポレイテッド Communication system and method for multi-carrier orthogonal coding
US6728225B1 (en) * 2000-02-10 2004-04-27 Interdigital Technology Corporation Asymmetrical forward/reverse transmission bandwidth
US7103026B2 (en) * 2000-10-27 2006-09-05 L-3 Communications Corporation Use of chip repetition to produce a flexible bandwidth DS-CDMA system
CN1146171C (en) * 2000-11-24 2004-04-14 华为技术有限公司 Method for implementing high-capacity spectrum-spreading synchronous CDMA communication system
JP2002232391A (en) * 2001-01-30 2002-08-16 Matsushita Electric Ind Co Ltd Orthogonal code generating circuit
US6907060B2 (en) * 2001-04-03 2005-06-14 Accton Technology Corporation Method for generating OVSF codes in CDMA multi-rate system
KR100384894B1 (en) * 2001-06-11 2003-05-23 한국전자통신연구원 Construction apparatus and method of ternary spreading code with zero correlation duration
US20030002566A1 (en) * 2001-06-19 2003-01-02 Mcdonough John G. System and method for shifting the phase of pseudorandom noise code in direct sequence spread spectrum communications
US7349421B2 (en) * 2001-08-06 2008-03-25 Qualcomm Incorporated Method and apparatus for assigning spreading codes
CN1613193A (en) 2002-03-22 2005-05-04 连宇通信有限公司 Coding method for generating general spread spectrum sequence zero with zero correlation window
US7173900B1 (en) * 2002-06-26 2007-02-06 Nortel Networks Limited Method and apparatus for chip generation of a chip sequence
US20040071115A1 (en) * 2002-10-11 2004-04-15 Mark Earnshaw Intelligent uplink SCDMA scheduling incorporating polarization and/or spatial information to determine SCDMA code set assignment
US9143255B2 (en) 2002-10-18 2015-09-22 Microsoft Technology Licensing, Llc Orthogonal signaling for CDMA
US7010060B2 (en) * 2003-01-10 2006-03-07 Cornell Research Foundation, Inc. Real-time software receiver
US8170079B2 (en) * 2003-07-28 2012-05-01 Los Alamos National Security, Llc Code division multiple access signaling for modulated reflector technology
US7330522B2 (en) * 2004-04-07 2008-02-12 Integrated System Solution Corp. Complementary code keying (CCK) sequentially decoding apparatus and process thereof
ES2438532T3 (en) 2004-07-06 2014-01-17 Telefonaktiebolaget L M Ericsson (Publ) Non-contiguous variable length orthogonal codes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of EP1763934A4 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3200368A4 (en) * 2014-09-25 2017-10-25 ZTE Corporation Multi-user code division multiple access communication method, and corresponding transmitter and receiver
JP2017532895A (en) * 2014-09-25 2017-11-02 ゼットティーイー コーポレーションZte Corporation Multi-user code division multiple access communication method and corresponding transmitter and receiver
RU2666744C1 (en) * 2014-09-25 2018-09-12 ЗетТиИ Корпорейшн Data transmission method with multi-user code division multiple access and corresponding transmitter and receiver
US10326547B2 (en) 2014-09-25 2019-06-18 Zte Corporation Multi-user code division multiple access communication method, and corresponding transmitter and receiver

Also Published As

Publication number Publication date
EP1763933A2 (en) 2007-03-21
EP1763934B1 (en) 2013-10-23
US20070248148A1 (en) 2007-10-25
EP1763934A2 (en) 2007-03-21
EP1763934B8 (en) 2013-12-04
US8526482B2 (en) 2013-09-03
ES2438532T3 (en) 2014-01-17
WO2006004551A2 (en) 2006-01-12
US20080285534A1 (en) 2008-11-20
EP1763933A4 (en) 2012-09-19
US8004959B2 (en) 2011-08-23
WO2006004551A3 (en) 2006-02-23
EP1763934A4 (en) 2012-09-19
WO2006004550A3 (en) 2006-02-23
EP1763933B1 (en) 2018-03-14

Similar Documents

Publication Publication Date Title
EP1763934B1 (en) Non-contiguous variable length orthogonal codes
CN100448188C (en) Method for producing scramble code in mobile communication system
CA2212265C (en) Is-95 compatible wideband communication scheme
RU2160504C1 (en) Method and device for generation of pseudonoise sequence in code-division multiple- access communication system
US6091760A (en) Non-recursively generated orthogonal PN codes for variable rate CDMA
AU665254B2 (en) Multiple access coding for radio communications
US6982946B2 (en) Partly orthogonal multiple code trees
JP2002536864A (en) Apparatus and method for reducing peak / average rate in CDMA communication
EP1047215B1 (en) A method of enhancing security for the transmission of information
CA2315311C (en) Device and method for generating short pn code in mobile communication system
RO121304B1 (en) Method and system for encoding message signals to be transmitted within a communication system
US7586835B2 (en) Apparatus for generating 2D spreading code and method for the same
KR100321998B1 (en) Method for generating complex quasi-orthogonal code and apparatus and method for spreading channel data using the quasi-orthogonal code in cdma communication system
AU4934699A (en) Quasi-orthogonal code mask generating device in mobile communication system
KR20030081779A (en) Coding method and apparatus for constant amplitude transmission in code select cdma communication system and device thereof
Mahalakshmi et al. Review on codes for multiple access communications
Yongguang et al. Scrambling Code and Channelisation Code Parallel Generation for WCDMA on Vector Core
Minn et al. Linear transformation of multi-level signal set in multi-code CDMA

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

DPEN Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2005757933

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 2005757933

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 11631790

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 11631790

Country of ref document: US