System and method for allocating transmission resources based on a transmission rank
09591627 · 2017-03-07
Assignee
Inventors
Cpc classification
H04W72/21
ELECTRICITY
H04L1/003
ELECTRICITY
H04L1/1671
ELECTRICITY
H04L5/0046
ELECTRICITY
H04L5/0053
ELECTRICITY
H04L5/0026
ELECTRICITY
H04L5/0044
ELECTRICITY
International classification
Abstract
A method for wirelessly transmitting data using a plurality of transmission layers includes estimating a number of data vector symbols to be allocated to one or more user data codewords during the subframe and determining a number of bits in the one or more user data codewords. The method also includes calculating a nominal number of control vector symbols to allocate to control information based, at least in part, on the estimated number of data vector symbols and the determined number of bits in the one or more user data codewords. Additionally, the method includes determining an offset value based, at least in part, on a number of layers over which the wireless terminal will be transmitting during the subframe and calculating a final number of control vector symbols by multiplying the nominal number of control vector symbols and the offset value. The method also includes mapping one or more control codewords to the final number of control vector symbols and transmitting vector symbols carrying the one or more user data codewords and the one or more control codewords over the plurality of transmission layers during the subframe.
Claims
1. A method in a wireless terminal for wirelessly transmitting data using a plurality of transmission layers, comprising: estimating a number of user data vector symbols to be allocated to user data during a subframe; determining a number of user data bits in the one or more user data codewords; determining an offset value based, at least in part, on a number of user data codewords the wireless terminal will be transmitting during the subframe; calculating a number of control vector symbols to allocate to control information based, at least in part, on the number of user data vector symbols, the number of user data bits, and the offset value; mapping one or more control codewords to at least the calculated number of control vector symbols, wherein the control codewords comprise encoded control information; and transmitting, from the wireless terminal, vector symbols carrying the user data codewords and the control codewords over a plurality of transmission layers according to the mapping.
2. The method of claim 1, wherein calculating the number of control vector symbols comprises calculating the number of control vector symbols, such that the number of control vector symbols is proportional to the offset value.
3. The method of claim 1, wherein calculating the number of control vector symbols comprises calculating the number of control vector symbols, such that the calculated number of control vector symbols increases with increases in the offset value.
4. The method of claim 1, wherein calculating the number of control vector symbols comprises calculating the number of control vector symbols, such that the number of control vector symbols is a multiple of the offset value.
5. The method of claim 1, wherein mapping the control codewords to at least the calculated number of control vector symbols comprises: converting the calculated number of control vector symbols to an integer value; and mapping the control codewords to a number of control vector symbols equal to the integer value.
6. The method of claim 5, wherein converting the calculated number of control vector symbols to an integer value comprises applying a ceiling function to the calculated number of control vector symbols.
7. The method of claim 5, wherein converting the calculated number of control vector symbols to an integer value comprises adjusting the calculated number of control vector symbols so that the calculated number of control vector symbols falls within a specified range.
8. The method of claim 7, wherein adjusting the calculated number comprises adjusting the calculated number based on at least one of a maximum value and a minimum value.
9. The method of claim 1, wherein determining an offset value based, at least in part, on the number of user data codewords the wireless terminal will be transmitting during the subframe comprises: using a first offset value if the wireless terminal will be transmitting a single user data codeword during the subframe; and using a second offset value if the wireless terminal will be transmitting multiple user data codewords during the subframe.
10. The method of claim 1, wherein estimating the number of user data vector symbols to be allocated to data codewords during the subframe comprises estimating the number of user data vector symbols based at least in part on a total number of subcarriers scheduled for use by the wireless terminal, M.sub.sc.sup.PUSCH-initial, and a total number of vector symbols granted to the wireless terminal, N.sub.symb.sup.PUSCH-initial.
11. The method of claim 10, wherein estimating the number of user data vector symbols comprises calculating a value {circumflex over (Q)}.sub.data such that {circumflex over (Q)}.sub.data=M.sub.sc.sup.PUSCH-initial.Math.N.sub.symb.sup.PUSCH-initial.
12. The method of claim 1, further comprising determining a number of bits as a sum, over a plurality of user data codewords, of the number of bits in each user data codeword to be transmitted during a subframe.
13. The method of claim 1, wherein the number of user data codeword symbols includes a minimum number of user data codeword symbols.
14. The method of claim 1, wherein determining a number of bits in a plurality of user data codewords to be transmitted during the subframe comprises: determining a first number of bits in a first user data codeword and a second number of bits in a second user data codeword to be transmitted during the subframe.
15. The method of claim 14, wherein calculating a number of control vector symbols to allocate to control information based, at least in part, on the number of user data vector symbols, the number of user data bits, and the offset value comprises: calculating a number of control vector symbols to allocate to control information based, at least in part, on the number of user data vector symbols, the first and second number of user data bits, and the offset value.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) For a more complete understanding of the present invention and its advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
DETAILED DESCRIPTION OF THE INVENTION
(10)
(11) Control signaling can have a critical impact on the performance of wireless communication systems. As used herein, control signaling and control information refers to any information communicated between components for purposes of establishing communication, any parameters to be used by one or both of the components in communicating with one another (e.g., parameters relating to modulation, encoding schemes, antenna configurations), any information indicating receipt or non-receipt of transmissions, and/or any other form of control information. For example, in LTE systems, control signaling in the uplink direction includes, for example, Hybrid Automatic Repeat reQuest (HARQ) Acknowledgments/Negative Acknowledgements (ACK/NAKs), precoder matrix indicators (PMIs), rank indicators (RIs), and channel quality indicators (CQIs), which are all used by the eNodeB to get confirmation of successful reception of transport blocks or to improve the performance of downlink transmissions. Although control signaling is often transmitted on separate control channels, such as the physical uplink control channel (PUCCH) in LTE, it may be beneficial or necessary to transmit control signaling on the same channel as other data.
(12) For example, in LTE systems, when a periodic PUCCH allocation coincides with a scheduling grant for a user equipment (UE) to transmit user data, the user data and control signaling share transmission resources to preserve the single-carrier property of the discrete Fourier transform, spread orthogonal frequency-division multiplexing (DFTS-OFDM) transmission techniques used by LTE UEs. Furthermore, when a UE receives a scheduling grant to transmit data on the physical uplink shared channel (PUSCH), it typically receives information from the eNodeB related to the characteristics of the uplink radio propagation channel and other parameters that can be used to improve the efficiency of PUSCH transmissions. Such information may include modulation and coding scheme (MCS) indicators as well as, for UEs capable of using multiple transmission antennas, PMIs or RIs. As a result, UEs may be able to use this information to optimize PUSCH transmissions for the radio channel, thereby increasing the amount of data that can be transmitted for a given set of transmission resources. Thus, by multiplexing control signaling with the user data transmitted on PUSCH, a UE can support significantly larger control payloads than when transmitting control signaling by itself on PUCCH.
(13) It may be possible to multiplex control signaling and user data by simply dedicating a set amount of the time-domain transmission resources to control information and then perform carrier modulation and precoding of the control signaling along with the data. In this way control and data are multiplexed and transmitted in parallel on all sub-carriers. For example, in LTE Release 8, DFTS-OFDM symbols are formed from a predetermined number of information vector symbols. As used herein, a vector symbol may represent any collection of information that includes an information element associated with each transmission layer over which the information is to be transmitted. Assuming a normal cyclic prefix length, fourteen of these DFTS-OFDM symbols can be transmitted in each uplink subframe. A predetermined number and distribution of these symbols are used to transmit various types of control signaling and the remaining symbols may be used to transmit user data.
(14) However, the amount of control signaling to be multiplexed on a data transmission is typically much fewer than the amount of user data. Moreover, since control signaling and user data may each be associated with different block error-rate requirements, control signaling is often encoded separately and using a different encoding scheme from user data. For example, user data is often encoded with turbo codes or low-density parity-check (LDPC) codes that are highly efficient for longer block lengths (i.e., larger blocks of information bits). Control signaling that uses only a small amount of information bits, such as HARQ ACK/NAK signaling or rank indicators, is often most efficiently encoded using a block code. For medium-sized control signaling, such as larger size CQI reports, a convolutional code (possibly tail biting) often provides the best performance. Consequently, fixed or predetermined allocations of transmission resources to control signaling and user data can lead to inefficient use of such resources as the optimal resource allocation will often depend on numerous factors, including the channel quality, the type of control signaling, and various other considerations.
(15) The use of multiple transmit antennas can further complicate the allocation of transmission resources between control signaling and user data when the two types of information are multiplexed together on a common channel. When MIMO techniques are used to simultaneously transmit multiple data codewords in parallel, control signaling may be transmitted on multiple different codewords and/or layers of the transmission scheme. The optimal allocation of resources in such situations may differ from the optimal allocation under the same circumstances when a single transmission antenna is used. Moreover, the multiple-antenna technique used for control signaling may be different from that used for user data. Control signaling is often encoded for maximum robustness (e.g., with maximum transmission diversity) rather than for maximum throughput. By contrast, user data is often combined with a retransmission mechanism that allows for more throughput-aggressive multiple-antenna encoding techniques. Thus, if transmitter 100 has information indicating the supported payload of user data, transmitter 100 may not be able to assume the supported payload for control signaling is the same when determining the optimal allocation of transmission resources for control signaling. For example, the supported peak spectral efficiency of the encoded user data may be significantly larger than the supported peak spectral efficiency of the encoded control signaling.
(16) Thus, particular embodiments of transmitter 100 determine an allocation of transmission resources across multiple codewords and/or transmission layers for control signaling on a channel in which control signaling and user data are multiplexed. More specifically, particular embodiments of transmitter 100 use the data payloads of the multiple layers or codewords to estimate the spectral efficiency supported by the multi-layer encoding scheme currently being used by transmitter 100 for control signaling. Based on this estimated spectral efficiency, transmitter 100 may then determine the amount of transmission resources (e.g., the number of vector symbols) to use for control signaling.
(17) Turning to the example embodiment illustrated by
(18) Channel interleavers 104 each interleave a user data codeword 122 with control codeword 120 (either a complete copy of control codeword 120, a particular portion of control codeword 120, or a combination of both, depending on the configuration of splitter 102). Channel interleavers 104 may be configured to interleave user data codewords 122 and control codeword 120 so that layer mapper 110 will map them to vector symbols in a desired manner. The interleaved outputs of channel interleavers 104 are then scrambled by scramblers 106 and modulated by symbol modulators 108.
(19) The symbols output by symbol modulators 108 are mapped to transmission layers by layer mapper 110. In particular embodiments, there is a relationship between the number of codewords of user data and/or control information being transmitted and the number of transmission layers (the transmission rank) to be used for the transmission. For example, in certain embodiments where transmitter 100 represents an LTE UE, a single transmission layer is used when a single user data codeword 122 is to be transmitted, as shown by
(20) Layer mapper 110 outputs a series of vector symbols 124 that are provided to carrier modulator 112. As an example, for embodiments of transmitter 100 that support LTE, each vector symbol 124 may represent an associated group of modulation symbols that are to be transmitted simultaneously on different transmission layers. Each modulation symbol in a particular vector symbol 124 is associated with a specific layer over which that modulation symbol will be transmitted.
(21) After layer mapper 110 maps the received symbols into vector symbols 124, carrier modulator 112 modulates information from the resulting vector symbols 124 onto a plurality of radiofrequency (RF) subcarrier signals. Depending on the communication technologies supported by transmitter 100, carrier modulator 112 may also process the vector symbols 124 to prepare them for transmission, such as by precoding vector symbols 124. The operation of an example embodiment of carrier modulator 112 for LTE implementations is described in greater detail below with respect to
(22) When multiplexing control and data on a precoded multi-antenna system the multiplexed control signals experience an effective channel given by Equation (1) (after residual Inter-Symbol Interference is accounted for):
{circumflex over (s)}(n)=H.sub.eff,Ws(n)+e(n)Equation (1)
where the received signal, (n), represents the precoded time-domain signal, s(n), that is transmitted by transmitter 100 circularly convolved with an effective channel impulse response, H.sub.eff,W, and acted on by a noise/interference vector, e(n). In Equation (1), the subscript W in H.sub.eff,W indicates that the effective channel depends on the precoder, W.
(23) The transmission rank, and thus the number of spatially multiplexed layers, is reflected by the number of columns in precoder, W. For efficient performance, a transmission rank that matches the channel properties is typically selected. Often, the device selecting the precoder is also responsible for selecting the transmission rankone way is to simply evaluate a performance metric for each possible rank and pick the rank which optimizes the performance metric. For the LTE-Advanced uplink, the use of closed-loop precoding results in the eNodeB selecting the precoder(s) and transmission rank and thereafter signaling the selected precoder that transmitter 100 is supposed to use.
(24) Since the effective channel seen by the control signaling, H.sub.eff,W, depends to a large extent on the selected precoder, the control signaling is sensitive to the performance of the precoder. The precoder is typically optimized to maximize the throughput of the data, which generally has looser requirements on the block error rate (BLER) than the control signaling. Contrary to the data channel, control signaling typically has no retransmission mechanism, and therefore has significantly tighter requirements on the robustness of the link. If a control signaling transmission is unsuccessful, system operation is often jeopardized.
(25) One particular problem for precoded multiple-antenna transmissions occurs when the precoder, W, is selected such that it is not well matched to the radio propagation channel, H.sub.k, in which case the signal-to-interference-plus-noise ratio (SINR) on one or more streams will be significantly decreased. This may for example happen because of estimation noise that results in a suboptimal precoder being selected. A bursty inter-cell interference may likewise result in the wrong transmission rank being selected. The impact of erroneous precoder selection is particularly severe for low-rank channels, where the spatial transmit directions that convey essentially no energy to the receiver (or the null space) are large and a corresponding low-rank precoder that has a significant overlap with the large null-space may be erroneously selected. This is less of a problem, however, for high rank channels, which have a small null-space. Such high-rank channels will most likely be matched with high-rank precoders. Therefore, it is much less likely that an erroneously selected high-rank precoder will be fully confined to the small null-space of the high-rank channels with which it will be used.
(26) As a result of this discrepancy between high-rank and low-rank transmissions, particular embodiments of transmitter 100 may consider the rank of a transmission when allocating transmission resources between the control signaling and user data that will be transmitted. In particular embodiments, this allocation of transmission resources is reflected in the number of vector symbols 124 transmitter 100 uses to transmit a particular control codeword 120. Thus, transmitter 100 may consider the transmission rank of the transmission in determining the number of vector symbols 124 to use in transmitting user data codewords 122 and/or the number to use in transmitting control codewords 120.
(27) Transmitter 100 may use the transmission rank in any suitable manner to determine the appropriate number of vector symbols 124 to allocate to the different types of information. As one specific example, particular embodiments of transmitter 100 may calculate a nominal number ({circumflex over (Q)}) of vector symbols 124 to allocate to control codewords 120 and adjust this nominal number using a rank-specific offset value (.sub.offset(r)) associated with the transmission rank of the relevant transmission to determine a scaled number (Q) of vector symbols 124 to allocate to control codewords 120.
(28) The offset value may represent any suitable value that may be used to adjust the amount of transmission resources used to transmit control information. As one example, in particular embodiments, lower-rank transmissions are associated with larger offset values than higher-rank transmissions. As a result, in such embodiments, the offset values for a lower-rank transmission may increase the nominal allocation of resources by more than the offset value of a higher-rank transmission. This results in more transmission resources being allocated to control information for lower-ranked transmissions and, for such transmissions, can increase their robustness to mismatched precoders.
(29) The possible transmission ranks (i.e., the number of transmission layers used for a transmission) for a transmission are each associated with an offset value. Depending on the configuration of the specific embodiment of transmitter 100, each possible transmission rank may be associated with a different offset value or multiple transmission ranks may be associated with the same offset value. For example, in particular embodiments, the transmission rank for a transmission will depend in part on the number of user data codewords 122 to be transmitted, as explained above with respect to
(30) Transmitter 100 may use the relevant offset value to determine a resource allocation in any suitable manner. In particular embodiments, transmitter 100 may determine Q such that:
Q={circumflex over (Q)}.Math..sub.offset(r)
(31) This nominal number {circumflex over (Q)} may be a dynamically changing nominal resource allocation that is determined from the payloads of the user data codewords 122 and the number of bits in control codewords 120. In particular embodiments, transmitter 100 may calculate {circumflex over (Q)} such that:
(32)
(33)
where
(34)
represents a function that, given an estimate of the number of vector symbols 124 that will be allocated to transmitting user data codewords 122 ({circumflex over (Q)}.sub.data) (such vector symbols referred to herein as user data vector symbols) maps the data payloads
(35)
of each of the N.sub.CW user data codewords 122 into an estimate of the number of vector symbols 124 to be used for each bit of the control codewords 120 to be transmitted during the subframe. In Equations (2) and (3), K.sub.q,r represents the number of bits in an r-th code block of a q-th codeword of user data to be transmitted during the subframe with r1 and q1, C.sub.n,m is a number of code blocks in an m-th codeword of user data with m1, N.sub.CW is a number of control codewords to be transmitted during the subframe, O is a number of bits in control codewords 120. If cyclic redundancy check (CRC) bits are used with control codewords 120 and/or user data codewords 122, the relevant values for K.sub.q,r and/or O may include any CRC bits in their totals. As suggested by the designated ranges of r (r1) and q (q1) for the above formula, transmitter 100 may perform this calculation using one or more code blocks from one or more user data codewords 122.
(36) In particular embodiments that use such a formulation to determine the nominal number of control vector symbols, transmitter 100 may estimate the number of user data vector symbols ({circumflex over (Q)}.sub.data) without accounting for the resulting number of vector symbols 124 that will be allocated to control information. Instead, transmitter 100 may estimate {circumflex over (Q)}.sub.data based on the assumption that all transmission resources granted to transmitter 100 for the relevant transmission will be used to transmit user data. For example, transmitter 100 may use a value of {circumflex over (Q)}.sub.data=M.sub.sc.sup.PUSCH-initial.Math.N.sub.symb.sup.PUSCH-initial, where M.sub.sc.sup.PUSCH-initial is the total number of subcarriers scheduled for use by transmitter 100 for the relevant transmission, and N.sub.symb.sup.PUSCH-initial is the total number of vector symbols 124 granted to transmitter 100 for transmitting both control and user data in the relevant transmission. In such embodiments, transmitter 100 overestimates the amount of resources that will be used for transmitting control codewords 120 as a tradeoff for simplifying the allocation determination.
(37) In other embodiments that use such a formulation to determine the nominal number, transmitter 100 may account for the number of control vector symbols that would result from the estimated the number of user data vector symbols {circumflex over (Q)}.sub.data when estimating {circumflex over (Q)}.sub.data. For example, transmitter 100 may use a specific form of Equation (2) according to which:
(38)
(39) and thus:
(40)
where the estimated number of user data vector symbols to be used {circumflex over (Q)}.sub.data(Q) is a function of the scaled number Q of vector symbols 124 to be allocated to control information. Transmitter 100 may then solve for Q recursively or by substituting an expression for {circumflex over (Q)}.sub.data(Q) and solving for Q directly. Embodiments of transmitter 100 that utilize Equations (4) and (5) to allocate transmission resources between user data and control information may reduce the overhead associated with transmitting control information by basing the allocation on a more accurate estimate of {circumflex over (Q)}.sub.data.
(41) As another example of how transmitter 100 may account for the transmission rank of a transmission in allocating transmission resources, particular embodiments of transmitter 100 may determine the nominal number of control vector symbols based on the configurable offset parameter that will be used to scale the nominal number of control vector symbols. Thus, in particular embodiments, transmitter 100 may calculate {circumflex over (Q)} such that:
Q={circumflex over (Q)}(.sub.offset(r)).Math..sub.offset(r)Equation (6)
Such embodiments may use a formulation for {circumflex over (Q)}(.sub.offset(r)) according to which:
(42)
(43) and thus:
(44)
In Equations (7) and (8), Q.sub.all represents the total resource allocation granted to transmitter 100 (or an estimate thereof) for transmitting both control information and user data in the relevant transmission. In particular embodiments, transmitter may use a value of Q.sub.all equal to M.sub.sc.sup.PUSCH-initial.Math.N.sub.symb.sup.PUSCH-initial. By accounting for the effect of the rank-specific offset parameter in determining the nominal number, transmitter 100 may be able to optimize the amount of overhead used to transmit control information.
(45) As yet another example of how transmitter 100 may account for transmission rank in allocating transmission resources, particular embodiments of transmitter 100 may use a different configurable offset parameter in determining the nominal number of control vector symbols. That is, transmitter 100 may use a first rank-specific offset parameter, .sub.offset(r), to scale a nominal number of control vector symbols that transmitter 100 determines using a second rank-specific offset parameter, {tilde over ()}.sub.offset(r), such that
Q={circumflex over (Q)}({tilde over ()}.sub.offset(r)).Math..sub.offset(r).Equation (9)
The use of different offset parameters may permit transmitter 100 to have greater control in optimizing the allocation of transmission resources.
(46) After calculating the scaled number of control vector symbols 124 to allocate using any of the techniques described above, transmitter 100 may process the scaled value as appropriate to ensure a certain type of final value or a final value in a particular range. Transmitter 100 may then use the scaled number, or the result of any such processing, to determine a number of vector symbols 124 to allocate to control information. For example, transmitter 100 may convert Q to an integer-valued result (e.g., using a ceiling function) or may set a minimum and/or maximum for Q to ensure that the number of allocated control vector symbols 124 is within a particular range. Alternatively, transmitter 100 may process any of the individual inputs used by the above algorithms (e.g., the estimated inverse spectral efficiency of user data) as appropriate to ensure a suitable type or range for the resulting output. As one specific example, transmitter 100 may utilize a minimum threshold for the inverse spectral efficiency of user data to ensure that the resulting number of vector symbols 124 allocated to each bit of control signaling is greater than a minimum amount.
(47) After determining the number of vector symbols to allocate to control signaling for the relevant transmission, transmitter 100 may then map the control codewords 120 onto the final number of symbol vectors 124. Transmitter 100 also maps the user data codewords 122 onto the determined number of user data symbols vectors. Transmitter 100 may then transmit the relevant user data and control symbol vectors, as described above.
(48) Thus, transmitter 100 may provide improved resource allocation techniques in a variety of different forms. Using these resource allocation techniques, certain embodiments of transmitter 100 may be able to match the allocation of control-signaling transmission resources to the rank of the transmission As a result, such embodiments may be able to provide a more precise allocation of control size, resulting in lower uplink overhead and/or improved robustness at the same overhead. In particular, these embodiments may provide significantly improved performance for low-rank transmissions when a sub-optimal precoder is selected. Consequently, certain embodiments of transmitter 100 may provide multiple operational benefits. Specific embodiments, however, may provide some, none, or all of these benefits.
(49) Although the description above focuses on implementation of the described resource allocation techniques in a transmitter, the above concepts can also be applied at a receiver. For example, when decoding transmissions received from transmitter 100, a receiver may utilize certain aspects of the described techniques to estimate the amount of transmission resources that have been allocated to control signaling. Furthermore, the described concepts may be applied for purposed of scheduling use of transmission resources in wireless communication systems that utilize centralized resource management. For example, an eNode B may utilize certain aspects of the described techniques to estimate the amount of transmission resources a UE that incorporates transmitter 100 will allocate to control signaling for a given period of time or for a given amount of transmitted data. Based on this estimate, the eNode B may determine an appropriate number of transmission resources to schedule for use by the relevant UE.
(50)
(51) Carrier modulator 112 receives vector symbols 124 output by layer mapper 110. As received by carrier modulator 112, vector symbols 124 represent time domain quantities. DFT 202 maps vector symbols 124 to the frequency domain. The frequency-domain version of vector symbols 124 are then linearly precoded by precoder 204 using a precoding matrix, W, that is (N.sub.Tr) in size, where N.sub.T represents the number of transmission antennas 114 to be used by transmitter 100 and r represents the number of transmission layers that will be used by transmitter 100. This precoder matrix combines and maps the r information streams onto N.sub.T precoded streams. Precoder 204 then generates a set of frequency-domain transmission vectors by mapping these precoded frequency-domain symbols onto a set of sub-carriers that have been allocated to the transmission.
(52) The frequency-domain transmission vectors are then converted back to the time domain by IDFT 206. In particular embodiments, IDFT 206 also applies a cyclic prefix (CP) to the resulting time-domain transmission vectors. The time-domain transmission vectors are then amplified by power amplifiers 208 and output from carrier modulator 112 to antennas 114, which are used by transmitter 100 to transmit the time-domain transmission vectors over a radio channel to a receiver.
(53)
(54) Processor 310 may represent or include any form of processing component, including dedicated microprocessors, general-purpose computers, or other devices capable of processing electronic information. Examples of processor 310 include field-programmable gate arrays (FPGAs), programmable microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), and any other suitable specific- or general-purpose processors. Although
(55) Memory 320 stores processor instructions, equation parameters, resource allocations, and/or any other data utilized by transmitter 320 during operation. Memory 320 may comprise any collection and arrangement of volatile or non-volatile, local or remote devices suitable for storing data, such as random access memory (RAM), read only memory (ROM), magnetic storage, optical storage, or any other suitable type of data storage components. Although shown as a single element in
(56) Transceiver 330 transmits and receives RF signals over antennas 340a-d. Transceiver 330 may represent any suitable form of RF transceiver. Although the example embodiment in
(57)
(58) In particular embodiments, operation may begin at step 402 with transmitter 100 estimating a number of vector symbols to be allocated to user data. As noted above, transmitter 100 may estimate the number of user data vector symbols in any appropriate manner. As one example, transmitter 100 may estimate the number of user data vector symbols by assuming pessimistically that all transmission resources allocated to transmitter 100 for the relevant subframe will be used to transmit user data. Thus, in such embodiments, transmitter 100 may estimate the number of vector symbols to be allocated to user data codewords ({circumflex over (Q)}.sub.data) based on a value (Q.sub.all) reflecting the total amount of transmission resources allocated to transmitter 100. The size and units of Q.sub.all depends on the manner in which the access network allocates transmission resources to transmitter 100. For instance, transmitter 100 may use a value of Q.sub.all=NM, where N is the total number of vector symbols available to transmitter 100 for transmitting control information and user data in the relevant subframe (e.g., N.sub.symb.sup.PUSCH-initial in certain LTE embodiments), and M is a total number of subcarriers available to transmitter 100 during the relevant subframe (e.g., M.sub.sc.sup.PUSCH-initial). Thus, as part of step 402, transmitter 100 may multiply a total number of subcarriers allocated for use by transmitter 100 in the relevant subframe by a total number of vector symbols 124 allocated to transmitter 100 to determine the total capacity allocated to transmitter 100 for the relevant subframe.
(59) As another example, transmitter 100 may account for the use of transmission resources to transmit control codewords 120 when estimating the number of user data vector symbols. Thus, in such embodiments, transmitter 100 may estimate a number of vector symbols ({circumflex over (Q)}.sub.data) to be allocated to user data that is dependent on the number of control vector symbols (Q) that would result from this allocation of vector symbols 124 to user datathat is, ({circumflex over (Q)}.sub.data={circumflex over (Q)}.sub.data(Q)). In such embodiments, transmitter 100 may solve for {circumflex over (Q)}.sub.data and/or Q recursively or solve for Q directly using a closed-form expression for the relationship between {circumflex over (Q)}.sub.data and Q, such as {circumflex over (Q)}=Q.sub.all.Math.Q (where is a predetermined constant or a configurable parameter).
(60) At step 404, transmitter 100 determines a number of bits in one or more user data codewords 122 to be transmitted. In particular embodiments, user data codewords 122 may include CRC bits, and transmitter 100 may consider these CRC bits when counting the bits in the relevant user data codewords 122. Additionally, in particular embodiments, the plurality of user data codewords 124 counted by transmitter 100 may represent all of the user data codewords 122 to be transmitted during the subframe. In alternative embodiments, however, this plurality of user data codewords 122 represent only a subset of the total number of user data codewords 122 to be transmitted during the subframe. For example, in certain embodiments, transmitter 100 may determine the number of bits in step 404 based only on the user data codewords 122 to be transmitted on certain transmission layers. Thus, in such embodiments, transmitter 100 may, as part of step 404, identify the transmission layers over which transmitter 100 will transmit control codewords 120 during the subframe and then determine the total number of bits in only those user data codewords 122 that are to be transmitted over the identified transmission layers.
(61) At some point during operation, transmitter 100 determines one or multiple offset values based on the transmission rank of the transmission to be made. As discussed above, the offset value(s) may depend in any suitable manner on the transmission rank. For example, in particular embodiments, transmitter 100 may select an offset value for transmission ranks associated with single-codeword transmissions that is larger than the offset value(s) transmitter 100 may select for transmission ranks associated with multiple-codeword transmissions. Additionally, in certain embodiments, the offset value(s) decrease with increasing transmission rank to account for the greater impact of mismatched precoders on lower transmission ranks. This may result in transmitter 100 using more overhead to transmit control information with low-rank transmissions in an effort to improve the robustness of such transmissions.
(62) Furthermore, in certain embodiments, transmitter 100 may use only a single offset value in performing the allocation, and thus, may only need to determine a single offset value. As explained further below, however, transmitter 100 may alternatively use a first offset value for scaling the nominal number and a second offset value to determine the nominal number. Thus, in the illustrated example, transmitter 100 determines one or more offset values at step 406.
(63) Transmitter 100 calculates a nominal number of control vector symbols based, at least in part, on the estimated number of user data vector symbols and the determined number of bits in the user data codewords 122. In particular embodiments, transmitter 100 may account for the fact that the nominal value will be scaled by an offset value (.sub.offset) when calculating the nominal value. As a result, the nominal number of control vector symbols calculated by transmitter 100 may also depend on an offset value. In some embodiments, this offset value is the same as the offset value transmitter 100 uses to scale the nominal value (i.e., .sub.offset). For example, in such embodiments, transmitter 100 may calculate the nominal number of control vector symbols u value {circumflex over (Q)} where:
(64)
where O is the number of bits of control data codewords 122 to be transmitted, g() is a function of the number of bits of user data codewords 122 to be transmitted, and {circumflex over (Q)}.sub.data is the estimate of the transmission resources allocated to user data for the relevant transmission.
(65) Instead of using the same offset value to calculate the nominal number, transmitter 100 may use a second offset value ({tilde over ()}.sub.offset) to calculate the nominal number such that Q={circumflex over (Q)}({tilde over ()}.sub.offset(r)).Math..sub.offset(r). For example, in such embodiments, transmitter 100 may calculate the nominal number of control vector symbols based on the value {circumflex over (Q)} where:
(66)
Thus, the illustrated embodiment of transmitter 100 calculates a nominal number of control vector symbols based, at least in part, on the estimated number of data vector symbols, the determined number of bits in the user data codewords, and an offset value (i.e., the first offset value or a second offset value) at step 408.
(67) At step 410, transmitter 100 calculates a scaled number of control vector symbols by multiplying the nominal number of control vector symbols by a rank-specific offset value (.sub.offset). As noted above, if an offset value is used to calculate the nominal number of control vector symbols, the rank-specific offset value used in step 410 may represent the same or a different offset value.
(68) In particular embodiments, transmitter 100 uses this scaled number of control vector symbols as the final number of control vector symbols. Alternatively, transmitter 100 may process the scaled value to provide a final number of a certain type (e.g., an integer value), ensure a final number within a particular range, or achieve some other goal with respect to the resulting number of control vector symbols. Thus, in particular embodiments, transmitter 100 may round or truncate the scaled number (e.g., by applying a ceiling or floor operation to the scaled number), adjust the scaled number based on a designated minimum or maximum value, or perform any other appropriate processing to the scaled number to generate a final number of control vector symbols, as shown at step 412.
(69) After determining the final number of vector symbols 124 to allocate to control signaling, transmitter 100 then maps control codewords 120 available for transmission to the calculated number of vector symbols 124 at step 414. Transmitter 100 may perform any appropriate processing of the control vector symbols 124 to permit transmission of the control vector symbols 124 to a receiver in communication with transmitter 100 including, for example, the processing described above with respect to
(70)
(71) As shown in
(72)
(73) Operation of network node 500 begins at step 602 with network node 500 receiving a plurality of vector symbols 124 from transmitter 100. For purposes of decoding the vector symbols 124, network node 500 may need to determine the manner in which transmitter 100 allocated these vector symbols 124 between control signaling and user data. As a result, network node 500 may determine the number of the received vector symbols 124 that transmitter 100 used to transmit control codewords 120.
(74) To properly decode the received vector symbols 124, network node 500 may need to follow the same or an analogous procedure to what transmitter 100 used to determine the resource allocation on the transmitting side. Thus, depending on the configuration of the relevant transmitter 100, network node 500 may be configured to determine the number of vector symbols 124 allocated to control codewords 120 (referred to herein as control vector symbols) using any of the techniques described above. An example of this process for the example embodiment is shown at steps 604-614 of
(75) After network node 500 has determined the final number of vector symbols 124 that transmitter 100 allocated to control codewords 120, network node 500 decodes the received vector symbols 124 based on this number at step 616. For example, network node 500 may use this information to determine which of the received vector symbols 124 are carrying control codewords 120 and which are carrying user data codewords 122. If transmitter 100 has encoded control signaling and user data using different encoding schemes, network node 500 may then apply a different decoding scheme to the two types of vector symbols 124. Operation of network node 500 with respect to decoding the received symbol vectors may then terminate as shown in
(76)
(77) In
(78) In response to receiving the request, network node 500 may determine an allocation of transmission resources to grant to transmitter 100 for use in transmitting the requested transmission. To determine this allocation, network node 500 may determine the amount of control information and user data network node 500 expects transmitter 100 to transmit in conjunction with the request. Network node 500 may determine these amounts based on information included in the request itself, information maintained locally by network node 500 itself (e.g., information on expected control information transmissions), and/or information received from any other suitable source.
(79) Furthermore, in particular embodiments, network node 500 determines this overall allocation based on the assumption that transmitter 100 will determine an allocation for control vector symbols for the requested transmission based on the techniques described above. Thus, network node 500 may also use the techniques above to grant an appropriate amount of transmission resources to transmitter 100 for the requested transmission. Because the above techniques may involve transmitter 100 determining an allocation of control vector symbols that depends in part on the allocation of user data vector symbols, network node 500 may likewise estimate the control allocation based on an estimate allocation for use data. This may result in network node 500 determining a total allocation for transmitter 100 comprised of a user data allocation and a control information allocation, which itself depends on the user data allocation. Thus, in particular embodiments, network node 500 may determine the total allocation recursively. An example of this is shown by step 704 of
(80) At step 704, network node determines a transmission rank, a total number of vector symbols to be used by transmitter 100 for the requested transmission, and a number of bits of user data to be carried by each of a plurality of data codewords to be transmitted as part of the requested transmission. In particular embodiments, the determination of the transmission rank, the total number of vector symbols, and the number of bits carried by each data codeword accounts for an estimated number of control vector symbols that will result from this determination. Thus, as part of step 704, network node 500 may determine the estimated number of control vector symbols by estimating the number of user data vector symbols to be used in transmitting the user data codewords, estimating the number of bits in the control codewords 120 to be transmitted, determining one or more rank-specific offset values for the transmission, and calculating the number of control vector symbols based on the estimated number of user data vector symbols, the estimated number of bits in the control codewords 120, the number of bits of user data to be carried by each of the user data codewords, and the offset value(s).
(81) Depending on the configuration of transmitter 100, network node 500 may process the estimated number of control vector symbols in an appropriate manner as described above before using the value to make the determination of step 704. For example, network node 500 may calculate a nominal number of control vector symbols based on the estimated number of data vector symbols, the estimated number of bits in the control codewords 120, and the number of bits of user data to be carried by each of the user data codewords. Network node 500 may then scale this nominal number by an offset, increase the nominal number to meet a minimum number, apply a ceiling operation to the nominal, and/or perform any other appropriate processing of the nominal number to calculate the final estimated number of control vector symbols.
(82) Network node 500 then uses this determination in responding to the request sent by transmitter 100. In particular embodiments, if network node 500 decides to grant the request, network node 500 may communicate aspects of the determined allocation to transmitter 100. Therefore, in particular embodiments, network node 500 may respond to the request by generating a particular response (e.g., a scheduling grant) to the request based on the determined allocation and transmitting the response to transmitter 100, as shown by steps 706-708 of
(83) Although the present invention has been described with several embodiments, a myriad of changes, variations, alterations, transformations, and modifications may be suggested to one skilled in the art, and it is intended that the present invention encompass such changes, variations, alterations, transformations, and modifications as fall within the scope of the appended claims.