The present invention concerns in a general way the generation of coding signals for code division multiple access (CDMA) digital communications in a base station or a mobile station of a system of simultaneous transmissions at different bit rates, for example a cellular radiotelephone system. The invention concerns more particularly the generation of orthogonal variable spreading factor (OVSF) codes conforming to the Universal Mobile Telecommunications System (UMTS) standard in time division duplex (TDD) or frequency division duplex (FDD) mode, typically in the emitter or the receiver of a station over an uplink or a downlink.
For example, a TDD mode frame conforming to the UMTS mobile telephony standard comprises timeslots of predetermined duration and each including U simultaneous bursts of data, usually respectively assigned to U users. A code (channelisation code) for a burst allocated to a given user is constituted of a sequence of SF code elements (chips) associated with each complex symbol to be transmitted, where U≦SF. The code elements are in non-return to zero (NRZ) code whose values are +1 and −1. The length of each code, called the spreading factor, expressed as a number of code elements is equal to a power of 2 lying between 4=22 and 512=29. The spreading factor may vary in a station, in particular as a function of the bit rate, also variable, requested for a user; for example, a code for a given bit rate has a length equal to the half-length of a code for half the given bit rate.
The codes are traditionally generated by an iterative process reproducing a tree structure of the OVSF codes concerned, as shown schematically in
{CSF,NC}SF=2
The iterative process is governed by the following equations:
in which {tilde over (C)}SF,sf designates the code whose elements have values opposite to those of the elements of the code CSF,sf:
∀SF,∀sf ε[0,,SF−1], {tilde over (C)}SF,sf=−CSF,sf
In the emitter at the radio interface of a station, a spreading modulator processes the successive complex symbols leaving a QPSK phase modulator to produce the code associated with a user and modulating the real and imaginary components of each symbol to be applied to a scrambler before being filtered, amplified and transposed in frequency. For each user, a code is written in a code memory at the beginning of a call with that user and may be modified as a function of a code modification request during the call. Thus two memories are provided: a table of the correspondences between the user identification numbers and the code numbers and a table of the correspondences between the code numbers and the codes. Typically, for at least 29=512 codes each having 512 code elements, the capacity of the second memory must be at least
i.e. 43 kbytes.
Thus the codes must be generated before they are used and necessitate a memory space for storing them.
The invention aims to, obviate these drawbacks by generating codes directly as and when calls proceed in a station, without using any second memory establishing the correspondence between a code number and a code, i.e. without memorizing the codes.
Accordingly a device according to the invention for generating at most SFM=2BM orthogonal codes each comprising at most SFM code elements, BM being an integer, generates a code element thanks to the following means. The device receives a word representative of a determined position of the code element in a code, a word representative of the code number designating the code from SF=2B possible codes with SF elements and a word representative of a number allocated to the number SF of elements of the code, B being an integer such that B≦BM. The device comprises logic means for supplying an BM-bits intermediate word in which B less significant bits are the B less significant bits in the reverse order in the code number word and BM−B more significant bits are all in a predetermined state, means for respectively multiplying the bits having the same rank in the intermediate word and the position word to produce a BM-bits product word, and means for applying an EXCLUSIVE-OR operation to all the bits of the product word in order to generate the code element.
Thus the elements of a code are generated dynamically by logic means with no code memory. More generally, the codes are generated dynamically by the device of the invention in response to permanent requests at high frequency associated with traffic channels occupied by calls between a fixed or mobile station including the device and another mobile or fixed station.
The device of the invention advantageously has a relatively small size by virtue of microcircuit design and may be included more than once in the same station in order to generate a plurality of orthogonal codes simultaneously and in an independent fashion.
According to a preferred embodiment, the logic means comprises means for reversing the order of the bits of the code number word into a reversed word, means for determining the difference BM−B, and means for shifting by BM−B positions toward the less significant bits the B more significant bits of the reversed word in order to form the intermediate word with bits in the predetermined state as BM−B more significant bits and with the B more significant bits of the reversed word as B less significant bits.
According to a special embodiment directed towards the UMTS standard BM=9, and B=0 and B=1 are prohibited values, and the difference determining means consists in means for inverting the state of the bits of the word representative of the number allocated to the number of code elements into a shift parameter word to be applied to the shifting means.
Other features and advantages of the present invention will become more clearly apparent on reading the following description of a plurality of preferred embodiments of the invention with reference to the corresponding appended drawings, in which:
The code generation device according to the invention is included in a spreading modulator of the emitter for example of a base station and aims to generate codes including a maximum of SFM bits. For the UMTS standard, the maximum number of bits SFM is equal to 512=29=2BM.
In the remainder of the description, a binary word M comprising BM bits is designated by the bits MBM−1, MBM−2, . . . M2, M1, M0; MBM−1 and M0 being the most significant bit and the least significant bit of the word M. The logic functions defined hereinafter are implemented in positive logic by way of example.
As shown in
The first word is representative of a determined position PC of the code element EC in a given code (channelisation code) and is provided by a timebase in the modulator. The position of a code element being comprised between 0 and the length SF−1 of the code, and more generally able to vary from 0 to SFM−1=29−1=511, the word PC comprises BM=9 bits PCBM−1 to PC0.
The second and third words are provided by a correspondence table equivalent to the first memory cited above in the modulator in response to the identification number of a given user. The second word is representative of the number NC of the given code that designates the code from the SF=2B possible codes with SF elements and which is therefore from 0 to SF−1. Since SF is at most equal to SFM, the number of bits NCBM−1 to NC0 of the word NC also comprises BM=9 bits and the number may take 2BM=512 values. The third word is representative of the spreading factor SF of the given code, equal to the number of elements in the given code, where SF=2B and the integer B such that B≦BM.
In fact, the number of bits in the third word is at most equal to the maximum number of bits necessary for designating the BM spreading factors SF, i.e. for successively numbering the BM spreading factors respectively equal to the lengths of the codes varying from 2 to 2BM in successive powers of 2. The number of bits of the third word is therefore equal to the integer portion of log2(2×BM−1). The two columns of the next correspondence table 1 establish the correspondence of the 4=integer part (log2 17) bits B3, B2, B1 and B0 of the third word and the spreading factor SF for BM=9:
It is shown that the code element EC to be generated is deduced from the following logic equation:
EC=XOR(AND(SHR(REV(NC,BM),BM-SF),PC)).
REV, SHR, AND and XOR designate logic operations that are respectively effected by logic circuits 2, 3, 4 and 5 included in the code generation device 1, as shown in
The circuit 2 implements the REV (REVerse) function in order to reverse the order of the bits NC0 to NCBM−1 of the word representative of the code number NC. The circuit 2 supplies a reversed word NC′ whose bits NC′BM−1 to NC′0 are respectively identical to the bits NC0 to NCBM−1, as indicated in detail hereinafter for BM=9:
The circuit 3 is a programmable rightward shift register for shifting to the right, i.e. toward the less significant bits, the more significant bits of the reversed word NC′. The circuit 3 implements an SHR (SHift Right) function in which the shift is equal to the difference BM−B produced by a difference determination circuit 31. To the circuit 31 is applied the word B3,B2,B1,B0 with 4=integer part of log2(2BM−1) bits representative of the exponent B of the power of 2 equal to the spreading factor SF, i.e. the number B of the spreading factor from the BM spreading factors, i.e. from the BM stages of the tree structure shown in
The circuit 31 calculates the difference BM−B to supply a shift parameter word on 4 bits D3, D2, D1, D0, as indicated in the third and fourth columns of the above table 1, to be applied as shift parameters D to the circuit 3. The circuit 3 supplies an intermediate word NC″ with BM bits NC″BM−1 to NC″0 whose B less significant bits are the B more significant bits of the reversed word NC′ and therefore the B less significant bits in the reverse order in the word representative of the code number NC and whose BM−B more significant bits are bits in the predetermined binary state “0”, in accordance with the following table for BM=9:
In practice, the UMTS standard prohibits the use of values SF≦2 and B=0 and B=1, i.e. the use of the first stage with two codes in the tree structure from
The circuit 4 combines two by two respectively the BM bits of weight 0 to BM−1 in the intermediate word NC″ and the BM bits of weight 0 to BM−1 in the word representative of the position PC of the code element to be generated, using BM respective AND gates with two inputs. The BM−B first operations AND produce more significant bits PC′BM−1 to PC′BM−B of an intermediate product in the predetermined state “0”, and the remaining B operations AND produce less significant bits PC′BM−B−1=(NC″BM−B−1×PCBM−B−1) to PC′0=(NC″0×PC0) of the intermediate product.
The circuit 5 determines a parity bit BP of the intermediate product equal to the code element EC in binary to be generated. The parity bit BP is in the state “1” when the number of “1” bits in the intermediate product word PC′BM−1 to PC′0 is odd and the state “0” when the aforementioned number of “1” bits is even. The circuit 5 includes an EXCLUSIVE-OR gate with BM inputs for applying the EXCLUSIVE-OR operation to 3 bits of the intermediate result word, that is to say:
BP=PC′BM−1⊕PC′BM−2⊕ . . . ⊕PC′2⊕PC′1⊕PC′0.
Finally, the code generation device 1 comprises a binary to non-return to zero code converter 6 for converting the binary state “0” or “1” of the parity bit BP into the generated code element EC “1” or “−1” to be applied to the spreading data input of the scrambler referred to in the preamble of the description.
In practice, the code generation device 1 is designed in the form of a programmable logic circuit or an application-specific integrated circuit (ASIC) logic circuit. It constitutes a circuit of very small size in order for a plurality of devices 1 to be installed in parallel in a fixed or mobile station of a UMTS cellular radiotelephone network to generate simultaneously OVSF orthogonal codes.
Number | Date | Country | Kind |
---|---|---|---|
02/06006 | May 2002 | FR | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/FR03/01249 | 4/18/2003 | WO | 11/15/2004 |