HK1044245B - Method and apparatus for assigning walsh codes - Google Patents
Method and apparatus for assigning walsh codes Download PDFInfo
- Publication number
- HK1044245B HK1044245B HK02105832.9A HK02105832A HK1044245B HK 1044245 B HK1044245 B HK 1044245B HK 02105832 A HK02105832 A HK 02105832A HK 1044245 B HK1044245 B HK 1044245B
- Authority
- HK
- Hong Kong
- Prior art keywords
- packet
- codes
- code
- spreading
- walsh
- Prior art date
Links
Description
Background
I. Field of the invention
The present invention relates to the field of communication systems. More particularly, the present invention relates to the field of transmitting message signals in a communication system.
II. background of the invention
It is well known that in cellular communication systems, it is necessary to combine the message signal to be transmitted with a spreading code vector, such as a walsh code vector. This enables the message signals to be combined, transmitted and then separated from each other at the receiver. The received signals can be separated because the spreading code vectors are orthogonal and they give zero theoretical interference between the signals to be combined.
To perform these operations, one randomly assigns one of the available spreading codes to each new originating call, or to each new handoff call added to the communication system. However, randomly allocating spreading codes in this manner may produce large peaks in the transmitted power level of the combined signal.
The most important consequence of the power level peaks is that the power amplifier amplifying the combined signal temporarily enters a non-linear region and saturates. Thereby causing interference between the combined signals, particularly between signals of adjacent channels. Interference between the combined signals can corrupt the separate and recovered signals.
This problem can be solved by making the power amplifier have a larger capacity. Such a power amplifier does not enter a non-linear region due to peaks in the combined signal power level. However, this is an expensive and inefficient solution. This is so because the increased capacity of the power amplifier is not used for the remaining ninety nine percent of the time.
It would be desirable to have a system and method for smoothing the transmit power level of a combined signal generated by randomly allocated spreading codes, thereby producing fewer peaks and causing the power amplifier to enter less of a nonlinear region.
Summary of The Invention
The present invention provides a method of transmitting messages in a communication system having a new call entering the communication system and walsh codes that may be active or inactive. The method includes dividing the walsh codes into groups (bins) and determining the number of active walsh codes in the groups. A walsh code is selected according to the determined number of walsh codes and the selected walsh code is assigned to the new call. The walsh codes have index marks and the walsh codes are divided by group according to the index marks. The walsh codes are divided by periods according to the index marks, and if the number of divided groups is n, the walsh codes are divided by groups according to the value of their index marks modulo n. The minimum number of active walsh codes in the sets is determined and walsh codes are selected according to the minimum number of active codes. Multiple code sets may contain the minimum number of active walsh codes. The method also selects one of a plurality of code sets that contains the minimum number of active walsh codes. The method also selects a walsh code from the selected code set. A block code is selected that contains the least number of active walsh codes and a first predetermined code group is selected, the predetermined code group having a priority lower than the priority of the remaining code groups in the code block.
According to the present invention there is provided a method of transmitting a message signal in a communication system having a new call entering the communication system and a spreading code allocated to the new call, the method comprising the steps of: (a) dividing the spreading codes into groups according to the indexes of the spreading codes; (b) determining a number of spreading codes operating in the packet; (c) selecting a spreading code in accordance with said determining step (b); and (d) allocating the selected spreading code to the new call.
According to the present invention, there is also provided an apparatus for transmitting a message signal in a communication system having a new call entering the communication system and a spreading code assigned to the new call, the apparatus comprising: (a) means for dividing the spreading codes into groups according to the index of the spreading codes; (b) means for determining the number of spreading codes operating in the packet; (c) means for selecting a spreading code in accordance with said determining step (b); and (d) means for allocating said selected spreading code to said new call.
According to the present invention, there is also provided an apparatus for transmitting a message signal in a communication system having a new call entering the communication system and a spreading code assigned to the new call, the apparatus comprising: (a) means for dividing the spreading codes into packets; (b) means for determining a traffic channel gain for a spreading code operating in said packet; (c) means for selecting a spreading code in accordance with said determining step (b); and (d) means for allocating said selected spreading code to said new call.
According to the present invention, there is also provided a method of transmitting a message signal in a communication system having a new call entering the communication system and a spreading code allocated to the new call, the method comprising the steps of: (a) dividing the spreading codes into groups; (b) determining a traffic channel gain for a spreading code operating in the packet; (c) selecting a spreading code in accordance with said determining step (b); and (d) allocating the selected spreading code to the new call.
Brief Description of Drawings
The features, objects, and advantages of the present invention will become more apparent to the reader upon reading the following detailed description of the invention in conjunction with the accompanying drawings. In the drawings, like numbering represents like elements.
FIG. 1 illustrates a block diagram of a system for generating waveforms suitable for transmission in a communication system;
fig. 2 depicts a system block diagram for generating waveforms suitable for transmission in a communication system in accordance with the present invention;
fig. 3 is a graph depicting a peak-to-average comparison of a plurality of different walsh code sets;
FIG. 4 is a graph showing a comparison of peak-to-average ratios at equal channel gains and peak-to-average ratios at very unequal channel gains for a plurality of Walsh code groups;
FIGS. 5A-E illustrate a flow chart of the offset coding group balancing algorithm of the present invention;
FIG. 6 shows a state diagram of the method of the present invention; and
fig. 7-9 are graphs showing a comparison of the effects of different assignments of walsh code vectors.
Detailed description of the invention
The message signal of the walsh code signal can be represented as a vector having-1/+ 1 components. A corresponding binary spreading code, such as a walsh code, can be represented as a vector having 0/1 components. Walsh code vectors can be denoted by subscripts. The subscript is used to denote the walsh code index (index) of the code vector. The order in which the index markers are encoded is a standard order, such as: wiOr Wi[n]. The corresponding binary walsh code of the walsh signal can be represented by w with an index, e.g., wi. Those of ordinary skill in the art will understand that from WiCan obtain wiBy the method of mixing WiReplaces each 1 in (1) with 0, and replaces W withiEach-1 in (1) is replaced with 1.
The binary walsh code is a linear code. Therefore, if wiAnd wjIs a Walsh code vector, then wi+wjModulo 2 is also a binary walsh code vector. Any codevector of a linear code can be expressed as a linear combination of a minimum set of codevectors, and the codevectors of the minimum set are referred to as base vectors. In particular, 2mA binary linear code can be expressed as a linear combination of some set of m vectors. For example, { w } may be selected1,w2,w4,w8,w16,w32As a basis vector of 64-sized binary walsh codes, with index markers based on 0. This type of coding IS specified in the industry standard IS-95 for mobile communications.
Thus, any binary walsh code vector can be expressed as:
wi=c1w1+c2w2+c4w4+c8w8+c16w16+c32w32
here, the modulo-2 addition is performed,and c1,c2,c4,c8,c16,c32Is a binary scalar and can therefore take either 0 or 1. From the total number of 64, each unambiguous binary parameter c is selected1,c2,c4,c8,c16,c32Will give an explicit binary walsh code vector. In addition, set of vectors { w1,w2,w4,w8,w16,w32Is a choice of several possible chosen basis vectors. Another set of basis vectors may be w1,w2,w4,w8,w16,w32}. However, to simplify the calculation, the basis vector selection is severely limited. Those of ordinary skill in the art will appreciate that the binary walsh code vector w0Is obtained by subjecting each c toiAre set to zero and for any one code vector wjAll have wj+wi=w0。
For any one Walsh code wjTo obtain the parameter ciThe binary form of integer j is expressed as:
j=c1+2c2+4c4+8c8+16c16+32c32
with the expression that it is used, the expression,
wj=c1w1+c2w2+c4w4+c8w8+c16w16+c32w32
the coding parameters refer to binary walsh code vectors wiThe component (c). In addition, to obtain any two Walsh code vectors wiAnd wjWalsh code index of the sum of (a) to (b), to obtain wiAnd wjThe component (c). If { c }1,c2,c4,c8,c16,c32And { c'1,c’2,c’4,c’8,c’16,c’32Is the vector wiAnd wjAnd k is the index of the sum, then:
k=(c1c′1)+2(c2c′2)+4(c4c′4)+8(c8c′8)+16(c16c′16)+32(c32c′32)
here, denotes modulo-2 addition.
The reader will also appreciate that modulo-2 addition of a binary walsh code vector is equivalent to multiplication of the corresponding walsh signal. Therefore, Wi·WjIs also a walsh signal and corresponds to a binary walsh code vector wi+wj. Hereinafter, walsh signal Wi,WjIs expressed as W<i,j>。
Another important feature of walsh code vectors is their maximum run length. The maximum run length of a binary walsh code is the maximum number of consecutive "0" or "1" in the code vector. One characteristic of the ordering of the walsh code vectors is that if the walsh code index is a multiple of 8, then the maximum run length of the vector is a multiple of 16. One exception is w8Its maximum run length is 8.
Another important feature of the walsh code vector ordering is that if the walsh code index is a multiple of 4 but not a multiple of 8, then the maximum run length of the vector is either 4 or 8. The maximum run length of all other walsh codes is 4 or less. Therefore, the walsh codes having the longest maximum run length are those whose indices are multiples of 8.
Fig. 1 illustrates a block diagram of a waveform generation system 100. In the waveform generation system 100, an adder circuit 106 receives a plurality of input signals 102a-n and combines the signals. Each input signal 102i is given a traffic channel gain GiAn information symbolNumber { d }iAnd Walsh code data bits WiAnd (4) forming. Traffic channel gain GiIt may be 0 for non-working channels. For convenience, all digital signals and waveforms are represented for a single symbol period i.
The waveform output of the waveform generation system 100 includes an in-phase component i (t) and an out-of-phase component q (t). The output of system 100 is applied to a high power amplifier (not shown) for transmission in the communication system of the present invention. The output of waveform generation system 100 can be expressed as:
r(t)=I(t)cos(2πfct)-Q(t)sin(2πfct)
the envelope of the signal r (t) is:
the output signal of waveform generation system 100 can also be expressed as:
where T is the chip interval, combining the above expressions yields:
equation (1)
When | n1-n2H (t-n) when | ≧ 21T)h(t-n2T) is small. In addition, h (t-n)1T)h(t-n2T) is relatively insensitive to which walsh code vectors are used. Therefore, the square a of the envelope set in equation (1)2(t) can be expressed as the sum of the following three terms:
equation 2
In the formula, W<i1,i2>Is a Walsh code word, which is a set of vectors WIAnd WjThe component-wise product of (a).
The first term on the right of equation (2) is the most dominant term. It does not depend on the assigned walsh code. It depends only on the product of each pair of assigned walsh codes or, in the binary domain, on the sum of the assigned walsh codes. When several Walsh codes W in the first entry<i1,i2>With larger run lengths, the first term has a much higher probability. This is particularly the case when the product or sum of each pair of assigned codes is a multiple of 8. This is a characteristic of the standard index of walsh code vectors, where vectors with lengths that are multiples of 8 have run lengths that are multiples of 8.
If W is<i1,i2>Is the same walsh code vector of several pairs of assigned walsh codes, the first term of equation (2) tends to be larger. At the chip sampling instant, if h (t) is a nyquist filter, then the second and third terms of equation (2) are reduced. It may be the case that the peaks do not occur more at the code region sampling instants. The second and third terms of equation (2) are quite insensitive to the particular walsh code. The peak-to-average ratio also depends on the traffic channel gain. In addition, pressIn equation (2), the peak-to-average ratio tends to be maximum when the operating channel gains are approximately equal. When the operating channel gain becomes very non-uniform, the peak-to-average ratio tends to decrease slightly.
Thus, from the foregoing, it appears that the primary determinant of peak-to-average ratio is not the particular walsh code assigned. Instead, it appears that the primary determinant is the run length of the product of each pair of walsh codes. In addition, it appears that if walsh codes with indices that are multiples of 8 often occur in the product of the assigned walsh code pairs, then the peak-to-average ratio is higher.
Fig. 2 is a block diagram of a waveform generation system 200. In the waveform generation system 200, an adder circuit 206 receives a plurality of input signals 202a-n and combines them. Each input signal 202i is gained by the traffic channel gain Gi}, message symbol diAnd Walsh code data bits WiAnd (4) forming. For non-operating channels, traffic channel gain GiIt may be 0. For convenience, all digital signals and waveforms are represented for one symbol period i.
According to the method of the invention, the permutation occurs after the combination performed by the adding circuit 200. The output of the addition circuit 200 is therefore applied to the permutation block 208 to perform the permutation operations described herein. The permuted output of the permutation block 208 is applied to combiners 214, 224 for combination with signals 210, 220, respectively.
Thus, the waveform output of the waveform generation system 200 includes an in-phase component i (t) at the output of the transformer 216, and a non-in-phase component q (t) at the output of the transformer 226. The output of system 200 is applied to a high power amplifier (not shown) for transmission in the communication system of the present invention.
Fig. 3 is a diagram 300 comparing equal channel gain peak-to-average ratios with unequal heights of channel gain peak-to-average ratios. Diagram 300 is a 1-CDF where N-8 and RS2 fix the full rate, where CDF is the cumulative distribution function. For comparison, simulations were performed with multiple sets of walsh codes using only the walsh codes described below. The overhead channel is not considered. In addition, it is assumed that all traffic channels have the same traffic channel gain.
The following three sets of walsh codes are used in the simulation of diagram 300. Each of these three groups contains 8 walsh codes. (1) WCC-1 ═ {1, 9, 17, 25, 33, 41, 49, 57 }. Therefore, according to WCC-1, the product of each pair of walsh codes used in the simulation has an index that is a multiple of 8. (2) WCC-2 ═ {0, 1, 2, 4, 8, 9, 10, 12 }. Therefore, the appropriate log of walsh codes used in the simulations have a binary sum with an index that is a multiple of 8. (3) WCC-3 ═ {0, 1, 2, 3, 4, 5, 6, 7 }. Therefore, none of the pairs of walsh codes in diagram 300 have a binary sum with an index that is a multiple of 8. Therefore, the peak-to-average values obtained using WCCC-1, depicted in FIG. 3, are much larger than those obtained using WCCC-2. WCCC-2, in turn, gives a peak-to-average value that is greater than that obtained with WCC-3. These results are consistent with what is described above.
Thus, as described below, there are four rules for approximating the peak-to-average characteristics of a set of fixed size walsh codes. Rule I is for a set of higher log binary walsh code vectors whose modulo-2 sum is a walsh code with a multiple of index 8. Such a set of coding vectors is expected to have a high peak-to-average ratio.
Rule II addresses the case where each walsh code has a higher frequency of occurrence as the product of the walsh code pairs in the set, according to rule I. These cases also correspond to higher peak-to-average ratios. From the simulations, it is believed that rule I is more important than rule II.
Rule IV addresses the case where (a) there is a higher traffic channel gain product for a pair of binary walsh code vectors, and (b) the sum of the binary walsh code vectors gives a walsh code with a multiple of the index 8. In such cases, the binary walsh code vector pairs contribute more to the peak-to-average ratio of the other pairs. For example, the pilot channel is given walsh code 0 and higher channel gain. The traffic channel may then be assigned a walsh code with a multiple of 8 index. This pair of codes contributes more to the peak-to-average ratio. For example, the contribution of this pair of codes is greater than the contribution of a pair of walsh codes having a binary sum of the index that is a multiple of 8.
Fig. 4 is a graph 400 comparing peak-to-average ratios at equal channel gains and highly unequal channel gains. Diagram 400 is a 1-CDF plot of different transmit channel gains. The walsh code set used in the simulation of diagram 400 is WCC-2. As described above with reference to the drawing 300, N-8, RS2, and is a fixed full rate. Thus, the graph 400 shows that if the traffic channel gains are approximately equal, the peak-to-average tends to be larger than when unequal.
Fig. 5A-E show block diagrams of an offset packet balancing algorithm 500. When walsh codes are assigned to new calls in a communication system in accordance with the offset packet balancing algorithm 500, large peaks in the transmit power level of the combined signal are reduced to one in a thousand. This should be compared to the case where the random walsh code assignment method occurs at approximately one percent.
The calculations involving the walsh codes performed during execution of the offset peak balance algorithm 500 can be performed using the principles involved herein. The offset packet balancing algorithm 500 may be performed in the call resource database management of the base station. The structure used in executing the offset bin balancing algorithm 500 is referred to as a walsh code control block. Such a data structure may be maintained at the base station.
The offset packet balancing algorithm 500 is based primarily on rule I. And is also based in part on rule II. The importance of rule II is that it also provides another possible embodiment. In addition, rule IV is also primarily related to the case where the pilot channel gain is higher than the channel gains of the remaining channels. The offset packet balancing algorithm 500 is adapted to assign a walsh code to a new user to place a call to the communication system or to perform a handoff in such a way that the binary sum of the walsh code with the smallest currently possible working walsh code has an index that is a multiple of 8 and rule II is partially employed. According to the method of the invention, new calls are immediately assigned a Walsh code upon request when they have resources. The update of the walsh code control block is performed immediately after the user is assigned or not assigned a walsh code.
Walsh code control blocks contain bins (bins), or data structures v0,v1,v2,v3,v4,v5,v6,v7For storing information about walsh codes. If its index modulo 8 is i, the Walsh code belongs to the group vi. In addition, the Walsh code belongs to the group v if it isiIs said to be operating at viAnd is currently assigned to an operating traffic channel or an overhead channel. Otherwise, the walsh code is said to be inactive. Each packet viAn indication of each walsh code belonging to itself is stored, including the walsh codes assigned to traffic channels and overhead channels. Packet viThe total number of active walsh codes in (a) is expressed as bin _ value.
For example, a packet viBin _ value of (a) may include a value from the set w2,w10,w18,w26,w34,w42,w50,w58The number of assigned walsh code indices. Therefore, the packet viIs 8, or the maximum bin value. The capacity of a bin can be verified by indicating that the modulo-2 sum of any two binary walsh code vectors belonging to the same bin is a multiple of 8 and that the sum of any two binary walsh code vectors belonging to different bins is not a multiple of 8. Therefore, the packet viHas bin _ label equal to i.
The walsh code control block also contains an integer variable cycle. Each walsh code having indices 8i through 8i +7 is defined as having cycle i. Therefore, when the number of walsh codes is 64, the cycle value is between 0 and 7. The walsh code is uniquely determined by specifying its cycle and its bin _ label value. The walsh code control block contains an integer array WC _ assign of the form:
WC_assign={current_cycle,current_bin_label}
wherein current _ cycle is the type of cycle and current _ bin _ label is the type of bin _ label. The WC _ assign array points to the cycle and bin _ label of the walsh code that is currently being used for assignment to the next call request.
In the initial state of the method of the invention, there is no traffic channel. In this state, the packet v0Including only pilot channels and synchronization channels, and therefore, for v0Bin _ value ═ 2. In addition, a packet v1Including only paging channels, and therefore, for v1Bin _ value is 1. All other packets are set to bin _ value ═ 0. In addition, current _ cycle is set to 0, and current _ bin _ label is set to 2.
Fig. 6 shows a walsh code assignment state diagram. Walsh code assignment state diagram 600 represents a process performed in accordance with the present invention and includes a total of 4 states. The transition from the leisure state 610 of the distribution state diagram 600 is controlled by two binary variables, new _ user _ areas and old _ user _ parts. When a new user makes an originating call or makes a handoff requesting a walsh code channel or an old user is de-allocated a walsh code channel, the two binary variables are set to TRUE values, respectively.
When new _ user _ areas becomes TRUE, the process of state diagram 600 exits the leisure state 610 and enters the allocate walsh code update packet state 620. At state 620, the walsh code referenced by the current value of WC _ assign is assigned to the user making the request. The assigned walsh code is set to be active in the packet with the label current _ bin _ label. The bin value of the packet with the label current bin label is incremented. The state transitions from state 620 to update _ ptr state 640 in state diagram 600.
When old _ user _ parts becomes TRUE, the process of state diagram 600 exits the leisure state 610 and enters the de-assign walsh code update packet state 630. At state 630, the walsh codes leaving the user are de-allocated. The de-allocated walsh code is set to an inactive state in the previously allocated packet. The bin value of the packet is decremented. The transition from state 630 to update _ ptr state 640 occurs in state diagram 600.
The offset bin balancing algorithm 500 operates in accordance with the present invention in the update _ ptr state 640 of the set walsh code assignment state diagram 600. In a preferred embodiment of the invention, the packets are uniformly loaded. This greatly improves the random assignment of walsh codes for peak-to-average ratios. However, by slightly offsetting the packet loading, further performance improvements can be achieved. For example, it is preferable to have packet v0With the smallest priority level because of the packet v0Carrying a high gain pilot signal. In addition, a packet v1Ratio v2To v7The priority level is smaller because v is1Including the paging channel. The rest of the packet v2To v7With equal priority levels.
In the biased packet balancing algorithm 500, the packet v is determined0And v7Which contains the minimum number of assigned active walsh codes as shown in block 505. For example, if the packet v2And v7Containing three active walsh codes and more than three remaining bins, the operation of block 505 returns to bin v1And v3. Subsequently, in block 510, it is determined to contain packet v2To v7The smallest number of bins in the constituent subset to which active walsh codes are assigned.
Execution of the offset packet balancing algorithm 500 then proceeds to decision 515 and the decision is made with respect to v of the packet as determined in block 5102And v7N between groups. If n is 1, the offset packet balancing algorithm 500 is executed byThe off paging (off-page) connector 519 and the on paging (on-page) connector 521 proceed from fig. 5A to fig. 5B. Since only one group has the least number of active codes in this case, the offset group balancing algorithm 500 selects only one of the existing inactive codes in the one group shown in block 520. The selected code is assigned to the new call as shown in block 525. As shown in block 530, the current loop is incremented and execution of the balancing algorithm 500 exits from exit 535. If packet v is determined as determined by decision 5152And v8With the least number of active walsh codes in more than one bin, execution of the offset bin balancing algorithm 500 proceeds from fig. 5A to fig. 5C by turning off the paging connector 518 and turning on the paging connector 551.
When taking this path, the algorithm 500 attempts to assign the lowest indexed walsh code with the least number of active codes in a bin as shown in block 550. The walsh codes can be divided into, for example, eight consecutive cyclic periods, according to their indices, modulo 8. Only if there are no inactive walsh codes in the cycle indicated by the current-cycle pointer can the walsh code from the next cycle be used as indicated in block 560. The selected walsh code is then assigned to the new call as shown in block 570. Then, the execution program exits through the exit terminal 575.
If packet v is determined as determined by decision 5151With the least number of active walsh codes, the offset group balancing algorithm 500 proceeds to fig. 5D by disconnecting the paging connector 517 and connecting the paging connector 581. The path of the disconnect paging connector 517 is not taken unless either of the disconnect paging connectors 518, 519 is not taken. In this manner, the algorithm 500 is relative to v, as described previously herein1But is offset. As shown in block 580, the inactive walsh codes are located in the bin v1In (1). The walsh code located in the packet is assigned to the new call as shown in block 585. In block 590, in accordance with block 590,the current loop is incremented and program execution proceeds to exit 595.
When execution of the offset packet balancing algorithm proceeds from decision 515, but not via other paths, the algorithm proceeds to fig. 5E by turning off paging connector 516 and turning on paging connector 820. Then, as shown in block 830, the non-working codes are found in the current packet and assigned to the new call as shown in block 840. As shown in block 850, the current loop is incremented and program execution exits the algorithm 500 through the exit 860.
A more detailed description of the offset packet balancing algorithm 500 is shown in table I. Table I is a conventional pseudo-code representation, as would be understood by one of ordinary skill in the art.
| Compute set min _ bin ═ packet with minimum packet value } |
| The calculation set min _ bin _ sub ═ { v ═ vilvIE.g., min _ bin, 2 ≦ i ≦ 7} If (lmin _ bin _ sub _ 1) For (i; ++ i; i < 8) If (in [ min _ bin _ sub _ label, current _ cycle + i)]Walsh code at (b) is inactive) Set WC _ assign [ [ current _ cycle + i, min _ bin _ sub _ label [ ]](ii) a set current _ cycle + i; exit; elseif (l min _ bin _ sub > 1) For (I; ++ I; I < 8) { Set current _ cycle ═ min { I lww in [ min _ bin _ sub, current _ cycle + I [ ]]Is inactive } Set current _ bin _ label min { at min _ bin _ sub, bin _ label corresponds to packet e w ═ WC, at [ current _ cycle, bin _ label]Set WC _ assign ═ current _ cycle, current _ bin _ label, which is inactive];}Elseif(v1Is belonged to min _ bin) For (i is 0; + i; i < 8) If (at [ current _ cycle + I, 1)]Where walsh codes are inactive); set WC _ assign ═ current _ cycle + i, 1];set current_cycle=current_cycle+i;exit, respectively; ElseFor (i ═ 0; ++ i; i < 8) If (in [ current _ cycle + i, 0)]Where walsh codes are inactive); set WC _ assign ═ current _ cycle + i, 0];set current_cycle=current_cycle+i;exit; |
In the operation of an example of the offset packet balancing algorithm 500, only the pilot, paging, and synchronization channels are active. They have walsh codes 0, 1, and 32, respectively. Therefore, the packet v0And v1Bin _ value with two and one, respectively, and all other packets have bin _ value 0. Although it is believed that the main advantage of the present invention arises in dynamic communication systems, the assumption is made that every new call requiring a walsh code is active for a long period of time. So, in this example, once a walsh code is allocated, it is not deallocated. In these cases, the offset packet balancing algorithm 500 gives the following sequence:
2,4,5,6,7,10,11,12,13,14,15,9,18,19,20,21,22,23,17,8,26,27,…
two principles on which the offset packet balancing algorithm 500 is based are as follows. First, different walsh code assignments corresponding to any bin configuration give approximately the same peak-to-average ratio. The bin value corresponding to a particular walsh code assignment can be referred to as the bin configuration of the walsh code assigned by the corresponding set. Second, the peak-to-average ratio increases with increasing imbalance of packets in the configuration of the groups.
To test the first principle, a packet configuration as shown in table II is given. In this configuration, there are 8 traffic channels active. The pilot, paging and synchronization channels are assigned walsh codes 0, 1, 32, respectively.
| v0 | v1 | v2 | v3 | v4 | v5 | v6 | v7 |
| 2 | 1 | 2 | 2 | 1 | 1 | 1 | 1 |
TABLE II
Fig. 7 is a graph 900 comparing peak-to-average ratios for different walsh code assignments with the same bin configuration shown in table II. Diagram 900 is a 1-CDF diagram with N-8, RS2, fixed full rate. The walsh code assignments for the active traffic channel are:
WCC-2={2,3,12,13,22,23,42,43}
WCC-3={2,11,20,29,38,47,58,3}
WCC-4={2,3,4,5,38,39,42,43}
the peak-to-average values of the walsh codes in graph 900 are very close to each other. It is believed that a slight increase in the peak-to-average ratio of WCC-3 correlates with rule III above.
To test the second principle given above, consider the case where there are fourteen active traffic channels and walsh codes 0, 1, 32 are assigned to the pilot, paging, and synchronization channels, respectively. A series of walsh code sets, and a block configuration structure, are given in table III below. The WCC-1 case is substantially balanced. The unbalanced case increases in WCC-2, and the unbalanced case further increases in WCC-3. The case of imbalance is greatest in WCC-4.
Fig. 8 shows the peak-to-average ratio of the walsh code sets in table III. According to the waveform shown in graph 1000, the peak-to-average ratio of the walsh code set increases with increasing bin imbalance.
As with rule IV above, the peak-to-average ratio also depends on the traffic channel gain. Therefore, in another embodiment of the offset bin balancing algorithm 500, the bin _ value of each bin may contain a traffic channel gain corresponding to the walsh code belonging to the bin. According to this embodiment, two methods may be employed to update the packet values with the traffic channel gain to improve performance.
One approach is to use the traffic channel gain immediately after the walsh code and corresponding set of WC _ assign are assigned or de-assigned. Another approach is to periodically update the packets and set WC _ assign accordingly. The latter approach may result in some improvement in performance because the traffic channel gain is dynamically changed during system operation. However, this would increase complexity. Updating the update _ ptr state of the pointer state diagram 600 is not affected by this embodiment.
In yet another embodiment, the probability that several pairs of walsh codes are added to give the same walsh code or codes is small. This example is given according to rule II above. In this embodiment, only update _ ptr is affected. To implement rule 500 according to this embodiment, the variable current _ cycle is incremented at least once after each code channel assignment during update _ WC _ assign (). Thus, the open-loop representation FOR in table _____ (i ═ 0; ++ i; i < 8) becomes FOR (i ═ 1; ++ i; i < 8).
The offset packet balancing algorithm 500 may be modified when coded channel blocks are simultaneously allocated. The allocation of blocks may be when, for example, multiple data rates are supported, which refers to the simultaneous allocation of multiple code channels. The array WC _ assign may take the form:
WC_assign={current_cycle2,current_bin_label1,…
current_cycleM,current_bin_labelM}
here, M is the maximum number of coding channels that can be simultaneously allocated.
Another embodiment presented is based on the fact that walsh codewords with multiples of 4 also have larger run lengths, e.g., 4 or 8. If a plurality of bins have the smallest bin _ value, a walsh code can be allocated from the bin having a useful characteristic. The minimum number of active walsh codewords are modulo-2 added such that a block of active walsh codewords has an index that is a multiple of 4. To give this example, each packet vjStore bin _ value v(j+4)mode8And v(j-4)mode8The sum of (1).
To evaluate the effectiveness of the offset packet balancing algorithm 500, a formula is given. This formula is used to approximate the probability of various unbalanced packet configurations occurring during random walsh code assignment. As previously described, the peak-to-average ratio increases when packet imbalance occurs.
In this equation, the total number of active traffic channels and overhead traffic channels is represented by N. When all of the walsh codes of the N code channels are randomly allocated, the probability that at least j bins contain at least M allocated walsh codes can be expressed as:
for larger values of M, this probability is well approximated.
Fig. 9 shows a graph 1100 depicting a probability map for packet imbalance. This imbalance is the constellation configuration when most of the assigned walsh codes belong to a few bins. This corresponds to a larger value of M and, possibly, j. The diagram 1100 gives the probability P (N, M, J) of the values of M and J, where N is 17. In another embodiment, v3And v4Are randomly selected if they have the same number of active walsh codes.
The previous description of the preferred embodiments is provided to enable any person skilled in the art to make or use the present invention. It will be apparent to those of ordinary skill in the art that various modifications can be made to the embodiments and that the basic principles can be applied to other embodiments without the aid of the inventors. Therefore, the present invention is not limited to these embodiments, and the invention defined by the claims should be construed in its broadest scope.
Claims (18)
1. A method of transmitting a message signal in a communication system having a new call entering the communication system and a spreading code assigned to the new call, the method comprising the steps of:
(a) dividing the spreading codes into groups according to the indexes of the spreading codes;
(b) determining a number of spreading codes operating in the packet;
(c) selecting a spreading code in accordance with said determining step (b); and
(d) allocating the selected spreading code to the new call.
2. The method of claim 1, wherein the spreading code is divided into cyclic periods according to the index.
3. The method of claim 1, wherein the number of packets is n and the spreading codes are divided into packets according to a value of index modulo n.
4. The method of claim 1, further comprising the step of determining a minimum number of active spreading codes in the packet.
5. The method of claim 4, further comprising the step of selecting spreading codes according to a minimum number of active spreading codes.
6. The method of claim 5, wherein the plurality of packets contain a minimum number of active spreading codes, and the method comprises the steps of:
(a) selecting one of a plurality of groups containing a minimum number of active spreading codes; and
(b) a spreading code is selected from the selected packet.
7. The method of claim 6, further comprising the steps of:
(a) determining a subset of the packet containing a minimum number of active spreading codes; and
(b) a first predetermined packet is selected having a priority level lower than the priority levels of the remaining subset of the subset of packets.
8. The method of claim 7, wherein the first predetermined packet comprises a pilot signal packet.
9. The method of claim 7, further comprising the step of selecting a second predetermined packet having a priority level greater than the priority level of the first predetermined packet but less than the priority levels of the remaining packets in said subset of packets.
10. The method of claim 7, further comprising the step of selecting one of the remaining subset of packets having the same priority level.
11. The method of claim 2, further comprising a current cycle, wherein the step of selecting the spreading code comprises the step of selecting the spreading code in the current cycle.
12. The method of claim 11, further comprising the step of selecting a spreading code in a different cycle only if no spreading code is present in the current cycle.
13. A method of transmitting a message signal in a communication system having a new call entering the communication system and a spreading code assigned to the new call, the method comprising the steps of:
(a) dividing the spreading codes into groups;
(b) determining a traffic channel gain for a spreading code operating in the packet;
(c) selecting a spreading code in accordance with said determining step (b); and
(d) allocating the selected spreading code to the new call.
14. The method of claim 13, wherein the spreading codes are divided according to the index.
15. The method of claim 14, wherein the spreading code is divided into cyclic periods according to the index.
16. The method of claim 13, wherein the number of packets is n, and the spreading codes are divided into packets according to a value of index modulo n.
17. The method of claim 13, further comprising the step of updating said packet with said traffic channel gain of a spreading code operating in said packet.
18. The method of claim 17, wherein the updating is periodic.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/176,740 US6314107B1 (en) | 1998-10-20 | 1998-10-20 | Method and apparatus for assigning spreading codes |
| US09/176,740 | 1998-10-20 | ||
| PCT/US1999/024705 WO2000024147A1 (en) | 1998-10-20 | 1999-10-19 | Method and apparatus for assigning walsh codes |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1044245A1 HK1044245A1 (en) | 2002-10-11 |
| HK1044245B true HK1044245B (en) | 2005-07-22 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN1178415C (en) | Method and apparatus for assigning Walsh codes | |
| CN1092869C (en) | Channel hopping in a radio communications system | |
| CN1258895C (en) | Information notification method, mobile communication system, base station and mobile station | |
| RU2197786C2 (en) | Device and method for generating and allocating coded symbols in code-division multiple-access communication system | |
| CN1123999C (en) | CDMA communication method and group spreading modulator | |
| RU2528020C2 (en) | Resource allocation | |
| CN1875556A (en) | Method of downlink resource allocation in a sectorized environment | |
| CN1669287A (en) | Orthogonal variable spreading factor (ovsf) code assignment | |
| CN1864342A (en) | Method and system for frequency offset hopping in a radio network | |
| US20030179699A1 (en) | OVSF code system and methods for CDMA stations | |
| CN1478329A (en) | Data buffer structure for physical channel and transport channel in CDMA system | |
| JP2000232432A (en) | Method for allocating dynamically channel codes of different lengths used in radio communication system | |
| CN1130867C (en) | Device and method for generating quasi-orthogonal code and spreading channel signals in mobile communication system | |
| US7236512B2 (en) | Code channel allocations in a wireless communications system | |
| CN1252923C (en) | Method and electrical device for efficient multirate pseudo random noise (PN) sequence generation | |
| CN1354914A (en) | Communication apparatus and method for CDMA communication system | |
| CN1630225A (en) | Scrambling code and preamble generation device | |
| HK1044245B (en) | Method and apparatus for assigning walsh codes | |
| US7349421B2 (en) | Method and apparatus for assigning spreading codes | |
| CN1483248A (en) | Shift register update method | |
| CN1890912A (en) | Method and transmitting device for operating a transmitting station in a radio communication system | |
| KR20050006789A (en) | Walsh code assignment method of mobile communication system | |
| CN1702991A (en) | Communication method and device for multi-rate multi-carrier multi-code division system | |
| HK1077948A (en) | Orthogonal variable spreading factor (ovsf) code assignment | |
| HK1041750A1 (en) | Method and apparatus for reducing peak-to-average ratio in a cdma communication system |