Mitigation of transmission errors of quantized channel state information feedback in multi antenna systems
11558087 · 2023-01-17
Assignee
Inventors
Cpc classification
H04B7/0456
ELECTRICITY
H04L1/0029
ELECTRICITY
H04B7/0656
ELECTRICITY
H04L1/0042
ELECTRICITY
H04L2025/03426
ELECTRICITY
H04B7/063
ELECTRICITY
International classification
H04L1/00
ELECTRICITY
H04L25/02
ELECTRICITY
H04B7/0456
ELECTRICITY
Abstract
Methods are disclosed for improving communications on feedback transmission channels, in which there is a possibility of bit errors. The basic solutions to counter those errors are: proper design of the CSI vector quantizer indexing (i.e., the bit representation of centroid indices) in order to minimize impact of index errors, use of error detection techniques to expurgate the erroneous indices and use of other methods to recover correct indices.
Claims
1. A wireless device comprising: a processor; a receiver circuit coupled to the processor and operable to receive an encoded sequence on an uplink feedback channel, wherein the encoded sequence is based on an index, the index selected from a plurality of indices based on a channel state of a downlink channel, each of the plurality of indices associated with at least one of a plurality of channel states, the encoded sequence comprising a number of symbols, the number of the symbols based on a number of bits available for transmission on the uplink feedback channel; and a transmitter circuit coupled to the processor and operable to transmit the downlink channel based on the encoded sequence.
2. The wireless device of claim 1, wherein the encoded sequence is associated with a codebook which has a Hamming distance that reduces an effect of feedback error on the indices.
3. The wireless device of claim 1, wherein the index is selected from the plurality of indices based on an estimated channel matrix for the downlink channel.
4. The wireless device of claim 1, further comprising multiple transmit antennas operable to transmit signals on the downlink channel.
5. The wireless device of claim 1, wherein the processor is further operable to detect errors based on channel error detection check bits in the encoded sequence.
6. The wireless device of claim 1, wherein the processor is further operable to correct errors based on channel error correction check bits in the encoded sequence.
7. A method for operating a wireless device, the method comprising: receiving, by a receiver circuit of the wireless device, an encoded sequence on an uplink feedback channel, wherein the encoded sequence is based on an index, the index selected from a plurality of indices based on a channel state of a downlink channel, each of the plurality of indices associated with at least one of a plurality of channel states, the encoded sequence comprising a number of symbols, the number of the symbols based on a number of bits available for transmission on the uplink feedback channel; and transmitting the downlink channel based on the encoded sequence.
8. The method of claim 7, wherein the encoded sequence is associated with a codebook which has a Hamming distance that reduces an effect of feedback error on the indices.
9. The method of claim 7, wherein the index is selected from the plurality of indices based on an estimated channel matrix for the downlink channel.
10. The method of claim 7, further comprising transmitting on the downlink channel using multiple transmit antennas.
11. The method of claim 7, further comprising detecting errors based on channel error detection check bits in the encoded sequence.
12. The method of claim 7, further comprising correcting errors based on channel error correction check bits in the encoded sequence.
Description
BRIEF DESCRIPTION OF THE FIGURES
(1) Embodiments will now be described with reference to the figures, in which like reference characters denote like elements, by way of example, and in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
DETAILED DESCRIPTION
(12) In the typical CSI vector quantizer (VQ), the quantization of the channel vector space is performed as in
(13) All presented solutions can be used for both eigenmode and singular value codebooks in systems ranging from only one active receiver at a time to systems with multiple receivers being active simultaneously (where we define being active as receiving transmissions). The design of the feedback encoding solutions can be applied to quantized matrices of orthogonal eigenmodes, subsets of eigenmodes and scalar singular values as necessary. The following descriptions will be generic in form so that they can easily be applied to any type of CSI quantizing solution.
(14)
(15) The feedback channel 50 shown in
(16) For example, in
(17) The basic transmission of the feedback indices 23 may comprise the following steps: 1. Selection of the indices 23 representing the centroids 22 closest to the actual channel vectors. 2. (Optional) Adding error detection check bits to the binary representation of the centroid indices. 3. (Optional) Adding channel error correction check bits. 4. Transmission of all the bits. 5. (Conditioned on 3) Performing channel decoding of the received bits. 6. (Conditioned on 2) Performing error detection of the received bits. 7. Reporting the received channel vector indices to the optimizer/indexer in
(18) Based on the above eight steps, the indexer will now be able to make decision on the choice of modulation matrices for the next transmission epoch. Three exemplary approaches to the problem are: 1. If error detection codes or any alternative error detection method is used and the base station optimizer is aware of erroneous receiver indices, it may discard them and only use the correct ones in the optimization phase. 2. If error detection codes or any alternative error detection method is used and the base station optimizer is aware of erroneous receiver indices, it may attempt to recover them and use all received indices (correct and recovered) in the optimization phase. 3. If error detection is not used at all, the optimizer assumes that the received indices are very close to the actual transmitted indices and use them as if they were all correct.
(19) A basic difference between methods 1, 2 and 3 lies in whether the error detection methods are used to detect problems in channel information indices fed back to the base station. If such methods are used, the transmitter may recognize which indices are incorrect and can take appropriate actions. If no error detection may be performed and the received indices are used ‘as-is’, the vector quantizer indexing must be properly designed as shown in
(20) The mapping of the indices to the centroids in a quantizer is a complex task that can influence the system's performance tremendously when errors in the feedback link are not negligible.
(21) In
(22) In
(23) The following algorithms are presented: 1. Design of the indexing for CSI MIMO vector quantizers. 2. Actual operation of the system using encoded feedback link with CSI MIMO quantizers with or without error detection.
(24) The algorithm for the design of the indexing can be carried out in any suitable computing device, including for example pen and paper. Typically the design will be carried out prior to the initialization of the MIMO system.
(25) The following notation will be used: V.sub.k—the kth centroid in codebook V. k,l—indices of centroids in codebook V. d.sub.kl—the distance between the centroids specified by indices k and l. d(k;e)—distance profile for centroid V.sub.k and a given number of bit errors e. GDP(e)—global distance profile for a given number of bit errors e. i,j—binary indices of a codeword in a vector quantizer. H.sub.ij—the Hamming distance between indices i and j. I—the number of iterations of the index optimization algorithm N—the length of the binary representation of centroid indices i,j
(26) It is assumed that the indexing design follows the design of the channel vector quantizer V using any of the existing methods, for example the method shown in the patent application “Quantization of channel state information in multiple antenna systems” (U.S. patent Ser. No. 11/754,965 pending). The input to the quantizer indexing algorithm is the distance matrix D with number or rows and columns equal to the number of all centroids V.sub.k (with our notation the number of rows and columns is equal to 2.sup.N). The entries in the matrix are distances between the centroids—for example, the kth row and lth entry is given by d.sub.kl. In particular, the entries on the diagonal of the matrix are equal to 0. The methods used to calculate the distance matrix D as well as the centroid distances are immaterial in this patent application. However, some of the methods to calculate the centroid distances for the matrix D can be defined as follows: 1. d.sub.kl is the angle between the centroids V.sub.k and V.sub.l. 2. d.sub.kl is the smaller of the angles between the centroids V.sub.k and V.sub.l and between the centroids V.sub.k and −V.sub.l. 3. d.sub.kl is the Euclidean distance between the centroids V.sub.k and V.sub.l. 4. d.sub.kl is the average system throughput loss when centroid V.sub.k is chosen instead of V.sub.l. 5. d.sub.kl is the user system throughput loss when centroid V.sub.k is chosen instead of V.sub.l. 6. Any other distance definition depending on the system design parameters
(27) In addition to the distance metric d.sub.kl, representing a distance between two specified quantizer centroids, a set of distance profiles, d(k;e), and a global distance profile, GDP(e), are used to represent the distance profile of the indexed quantizer. A distance profile d(k;e) for a given centroid k and a number of errors e represents a set of numbers corresponding to the distances between all erroneous representations of the centroid V.sub.k and the actual centroid V.sub.k, assuming that e errors appeared during the transmission of its corresponding index i. In other words,
d(k;e)=[d.sub.1,d.sub.2,d.sub.3, . . . ,d.sub.n, . . . , d.sub.E],
where E is the number of e-element subsets in N-long binary representation of codebook indices and d.sub.n corresponds to distances d.sub.kl between the centroid V.sub.k and its erroneous version V.sub.l containing e index errors.
(28) Finally, to characterize the entire codebook, a global distance profile GDP(e) is defined as the union of all distance profiles d(k; e).
(29) Indexing Design Algorithm.
(30) Design of the indexing based on the distance matrix D is performed using a heuristic algorithm operating in two phases: the initialization phase and optimization phase. Since the initialization phase of the algorithm depends on random initial choice of indices, it is recommended that both phases of the algorithm are repeated storing the index map after each optimization step for a given number of iterations I until the best solution has been found or the design constraint has been met. The general operation of the indexing design algorithm is shown in
(31) General Algorithm: 1. In step 80, initialize iteration counter i and in step 82 the previous global distance profile GDP.sub.previous. 2. In step 84, run the Initialization phase of the algorithm (see below). 3. In step 86, run the Optimization phase of the algorithm (see below). 4. In step 88, store index map and calculate the new global distance profile GDP(e). 5. In step 90 compare GDP(e) with GDP.sub.previous; in step 92 check if GDP(e) improves GDP .sub.previous and if so then in step 94 exchange GDP.sub.previous with GDP(e) and store the current index map. 6. In step 96 increase i by 1. 7. In step 98 if i<I go to 2. 8. In step 100, STOP.
(32) Initialization Phase: 1. In step 102, generate the distance matrix D; in step 104 initialize the lists of unassigned indices, centroids and processed entries in D. 2. In step 106, find the smallest unprocessed entry d.sub.kl>0 in the matrix D. 3. Mark the entry d.sub.kl as processed. 4. In step 108 search for centroids V.sub.k and V.sub.l corresponding to d.sub.kl; in step 110 check if any indices have been assigned to either centroid. If neither centroids V.sub.k nor V.sub.l corresponding to d.sub.kl have been assigned any indices i or j, in step 112 (a-c), step 118 (d-e) and step 120 (f): a) Choose a random index i from the list of the unused indices. b) Assign the index i to the centroid V.sub.k. c) Mark the ith entry in the list of used indices list as taken. d) Choose a random index j from the list of the unused indices in such a way that the corresponding H.sub.ij is minimized. e) Assign the index j to the centroid V.sub.l. f) Mark the jth entry in the list of used indices list as taken, and V.sub.l as having an index assigned to it in the list of used centroids. 5. In step 114, check if only one of the centroids V.sub.k or V.sub.l have been assigned an index, and if so in step 118 (a-b) and step 120 (c): a) Choose a random index j from the list of the unused indices in such a way that H.sub.ij is minimum, where it is assumed (step 116) that i is the binary index of the already indexed centroid. b) Assign the index j to the unassigned centroid. c) Mark the jth entry in the list of used indices as taken, and mark the unassigned centroid as assigned. 6. If both centroids V.sub.k or V.sub.l have been assigned an index, go to 7. 7. In step 122, if there are still unassigned indices, go to 2. 8. In step 124, STOP.
(33) The operation of the initialization phase is presented in
(34) After the completion of the initialization phase, all centroids V.sub.k in the codebook V have been assigned the binary indices i, with the majority of smallest distances d.sub.kl in matrix D coupled to the binary indices i and j with small Hamming distances. However, the initialization phase can only reach locally optimum solutions and, in the next step, an improved solution is iteratively searched for.
(35) Optimization Phase: 1. In step 130, generate the distance matrix D and initialize the global distance profile GDP(e). 2. In step 132, initialize the list of processed entries in D. 3. In step 134, set the previous global error distance as GDP.sub.previious=GDP(e). 4. In step 136, find the smallest unprocessed entry d.sub.kl>0 in the matrix D, and mark it as processed. 5. In step 138, find the binary indices i and j assigned to the centroids k and l. Choose whether to swap them as follows: a) In step 140, calculate the global distance profile GDP.sub.original(e) with mapping of centroid V.sub.k to binary index i and centroid V.sub.l to binary index j. b) In step 142 and 144, calculate the global distance profile GDP.sub.swapped(e) with mapping of centroid V.sub.k to binary index j and centroid V.sub.l to binary index i. c) In step 146 choose the mapping corresponding to better global distance profile from 6a) and 6b) and in step 148 assign the indices of centroids accordingly. 6. In step 150, check the list of the processed entries d.sub.kl, and if there are still unprocessed entries, go to 4. 7. In step 152, calculate the GDP(e) with the current mapping of centroids and indices. If it is better than GDP.sub.previous then go to 2. 8. In step 154, if there are no improvements over GDP.sub.previous STOP.
(36) The operation of the optimization algorithm is presented in
(37) The optimization phase iteratively searches for better mapping between centroids and indices by swapping the binary representation of the closest pairs. After each such swap, the global distance profile for swapped mapping is compared to the unswapped mapping and the globally better solution is chosen. The algorithm is repeated iteratively through all centroids and stops when no improvement can be achieved by consecutive swapping of the indices.
(38) A more general version of this approach to indexing is shown in
(39) System Operation with Error Detection in the Feedback Link
(40) If the system uses error detecting codes in the feedback link, its operation can be summarized as follows: 1. In step 160, initialize transmission epoch to t=1. 2. In step 162, each receiver estimates its channel matrix H[t]. 3. In step 164, each receiver performs the vector quantization of the channel state information. 4. In step 166, the channel state information indices are encoded using error detecting code (such as CRC). 5. (Optional) In step 168, the channel state information indices with the error-detection redundancy are encoded using error correcting code (such as convolutional or turbo codes). 6. In step 170, the encoded channel state information indices are fed back to the transmitter. 7. (Conditional on 5) In step 172, the received channel state information indices are decoded in a channel decoder that attempts to correct possible channel transmission errors. 8. In step 174, the decoded indices are checked by an error-detecting decoder. 9. In step 176, the receiver counts the number of erroneously decoded indices. 10. Depending (in step 178) on the implementation, the receiver may then: a) In step 180, expurgate the erroneous indices, if there are still enough indices for optimization process, and process only the remaining ones b) In step 184, ignore the errors and use the erroneous indices. c) In step 182, regenerate the erroneous indices, for example, by using the channel prediction techniques from pending U.S. patent application “Quantized channel state information prediction in multiple antenna systems” Ser. No. 11/852,206. 11. In step 186, the transmitter performs the selection of active users using any method (maximum fairness, maximum throughput etc.) and chooses the corresponding modulation matrices. 12. The signal is transmitted to the selected active receivers. 13. In step 188, increase transmission epoch as t=t+1. 14. Go to 2.
(41) The operation of the algorithm is presented in
(42) System Operation Without Error Detection in the Feedback Link
(43) If the system uses no error detecting codes in the feedback link, its operation can be summarized as follows: 1. In step 190, initialize transmission epoch to t=1. 2. In step 192, each receiver estimates its channel matrix H[t]. 3. In step 194, each receiver performs the vector quantization of the channel state information. 4. (Optional) In step 196, the channel state information indices with the error-detection redundancy are encoded using error correcting code (such as convolutional or turbo codes). 5. In step 198, the encoded channel state information indices are fed back to the transmitter using the method described in previous sections. 6. (Conditional on 4) In step 200, the received channel state information indices are decoded in a channel decoder that attempts to correct possible channel transmission errors. 7. If (step 202) the index error detection is possible using alternative methods, for example, channel prediction techniques such as the one presented in the pending U.S. patent application “Quantized channel state information prediction in multiple antenna systems” Ser. No. 11/852,206, the transmitter may: a. In step 206, expurgate the erroneus indices if there are still enough indices for optimization process, b. In step 204, regenerate the erroneous indices using, for example, channel prediction techniques. 8. If (step 202) the index error detection is impossible, in step 208 the receiver uses the received indices as correct ones, 9. In step 210, the transmitter performs the selection of active users using any method (maximum fairness, maximum throughput etc.) and chooses the corresponding modulation matrices. 10. The signal is transmitted to the selected active receivers. 11. In step 212, increase transmission epoch as t=t+1. 12. Go to 2.
(44) The operation of the algorithm is presented in
(45) Immaterial modifications may be made to the embodiments described here without departing from what is covered by the claims. In the claims, the word “comprising” is used in its inclusive sense and does not exclude other elements being present. The indefinite article “a” before a claim feature does not exclude more than one of the feature being present. Each one of the individual features described here may be used in one or more embodiments and is not, by virtue only of being described here, to be construed as essential to all embodiments as defined by the claims.