Unit-norm codebook design and quantization

10700750 ยท 2020-06-30

Assignee

Inventors

Cpc classification

International classification

Abstract

The disclosure relates to an encoder for encoding a vector comprising channel state information and/or a pilot sequence. The encoder includes at least one processor; and a non-transitory computer-readable storage medium coupled to the at least one processor and storing programming instructions for execution by the at least one processor, wherein the programming instructions instruct the at least one processor to: determine a cell of a sphere mesh, wherein the cell includes the vector; determine a refined sphere mesh based on an initial sphere mesh; and determine a binary representation of a first identifier of an initial cell of the initial sphere mesh that includes the vector and a second identifier of a refined cell of the refined sphere mesh that includes the vector.

Claims

1. An encoder for encoding a vector comprising channel state information, a pilot sequence, or both, the encoder comprising: at least one processor; and a non-transitory computer-readable storage medium coupled to the at least one processor and storing programming instructions for execution by the at least one processor, wherein the programming instructions instruct the at least one processor to: determine an initial cell of an initial sphere mesh, wherein the initial cell includes the vector and has a first identifier; determine a refined sphere mesh based on the initial sphere mesh, wherein a refined cell of the refined sphere mesh includes the vector and has a second identifier; and determine a binary representation of the first identifier of the initial cell of the initial sphere mesh that includes the vector and the second identifier of the refined cell of the refined sphere mesh that includes the vector.

2. The encoder of claim 1, wherein the programming instructions instruct the at least one processor to determine the refined sphere mesh by iteratively splitting a cell of the initial sphere mesh.

3. The encoder of claim 1, wherein the programming instructions instruct the at least one processor to determine the refined sphere mesh by defining a grid on a cell of the initial sphere mesh.

4. The encoder of claim 1, wherein the vector is a complex-valued vector and the initial sphere mesh is a sphere mesh on a complex-valued sphere.

5. The encoder of claim 1, wherein the vector is a real-valued vector that is determined based on a complex input vector.

6. The encoder of claim 1, wherein the encoder is configured to determine a binary representation for each of a plurality of vectors comprising channel state information, pilot sequences, or both corresponding to a plurality of antennas of a multiple-antenna user equipment.

7. The encoder of claim 1, further comprising transmitter configured to transmit the binary representation over a wireless connection.

8. The encoder of claim 1, wherein the programming instructions instruct the at least one processor to determine the refined sphere mesh by refining only the initial cell including the vector among a plurality of initial cells of the initial sphere mesh.

9. The encoder of claim 1, wherein the initial sphere mesh comprises a plurality of initial cells, and the refined sphere mesh comprises a plurality of refined cells, and wherein a number of the plurality of refined cells is larger than a number of the plurality of initial cells.

10. The encoder of claim 1, wherein the initial sphere mesh comprises a plurality of initial cells, and a center of each of the plurality of initial cells defines a respective codeword, wherein the programming instructions instruct the at least one processor to determine the initial cell including the vector by determining that an initial codeword of the initial cell is closest to the vector among the respective codewords.

11. A decoder for decoding a vector comprising channel state information, a pilot sequence, or both from a binary representation, the decoder comprising: at least one processor; and a non-transitory computer-readable storage medium coupled to the at least one processor and storing programming instructions for execution by the at least one processor, wherein the programming instructions instruct the at least one processor to: determine an initial cell vector based on a first part of the binary representation and an initial sphere mesh, the first part of the binary representation corresponding to a first identifier of an initial cell including the vector; determine a refined sphere mesh based on the initial sphere mesh; and determine a refined cell vector based on the refined sphere mesh and a second part of the binary representation corresponding to a second identifier of a refined cell including the vector.

12. The decoder of claim 11, wherein the programming instructions instruct the at least one processor to determine the refined sphere mesh by refining only cells containing initial cell vectors among a plurality of cells of the initial sphere mesh.

13. The decoder of claim 11, wherein the programming instructions instruct the at least one processor to: determine the refined sphere mesh by iteratively splitting a cell of the initial sphere mesh into two cells, determine the refined sphere mesh by defining a grid on a cell of the initial sphere mesh, or both.

14. A method for encoding a vector comprising channel state information, a pilot sequence, or both, the method comprising: determining an initial cell of an initial sphere mesh, wherein the initial cell includes the vector; refining the initial sphere mesh to obtain a refined sphere mesh; determining a refined cell of the refined sphere mesh that includes the vector; and representing a first identifier of the initial cell and a second identifier of the refined cell as a binary representation.

15. The method of claim 14, wherein refining the initial sphere mesh comprises iteratively splitting a cell of the initial sphere mesh.

16. The method of claim 14, wherein the vector is a real-valued vector and the method comprises an initial step of converting a complex input vector into the real-valued vector.

17. A method for decoding a vector comprising channel state information, a pilot sequence, or both from a binary representation, the method comprising: determining an initial cell vector based on a first part of the binary representation and an initial sphere mesh, the first part of the binary representation corresponding to a first identifier of an initial cell including the vector; determining a refined sphere mesh based on the initial sphere mesh; and determining a refined cell vector based on the refined sphere mesh and a second part of the binary representation corresponding to a second identifier of a refined cell including the vector.

18. A non-transitory computer-readable storage medium storing program code, the program code comprising instructions that when executed by at least one processor, wherein the program codes comprise instructions comprises: determining an initial cell of an initial sphere mesh, wherein the initial cell includes a vector; refining the initial sphere mesh to obtain a refined sphere mesh; determining a refined cell of the refined sphere mesh that includes the vector; and representing a first identifier of the initial cell and a second identifier of the refined cell as a binary representation.

19. The non-transitory computer-readable storage medium storing program code according to claim 18, wherein refining the initial sphere mesh comprises iteratively splitting a cell of the initial sphere mesh.

20. The non-transitory computer-readable storage medium storing program code according to claim 18, wherein the vector is a real-valued vector and the instructions comprise an initial step of converting a complex input vector into the real-valued vector.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) To illustrate the technical features of embodiments of the present invention more clearly, the accompanying drawings provided for describing the embodiments are introduced briefly in the following. The accompanying drawings in the following description are merely some embodiments of the present invention. Modifications on these embodiments are possible without departing from the scope of the present invention as defined in the claims.

(2) FIG. 1 is a block diagram illustrating an encoder in accordance with an embodiment of the present invention,

(3) FIG. 2 is a block diagram illustrating a decoder in accordance with a further embodiment of the present invention,

(4) FIG. 3 is a block diagram illustrating a system in accordance with a further embodiment of the present invention,

(5) FIG. 4 is a flow chart of a method for encoding a vector in accordance with a further embodiment of the present invention,

(6) FIG. 5 is a flow chart of a method for decoding a vector in accordance with a further embodiment of the present invention,

(7) FIG. 6 is a schematic illustration of codebooks on a sphere in accordance with a further embodiment of the present invention,

(8) FIG. 7 is a schematic illustration of the computation of the representative vector in accordance with a further embodiment of the present invention,

(9) FIG. 8a is a schematic illustration of the initial mesh on a sphere in accordance with a further embodiment of the present invention,

(10) FIG. 8b is a schematic illustration of the first split of a cell of the initial mesh of FIG. 8a in accordance with a further embodiment of the present invention,

(11) FIG. 8c is a schematic illustration of a further sphere, where all cells of an initial sphere mesh have been split in accordance with a further embodiment of the present invention, and

(12) FIG. 9 is a schematic illustration of the mapping to the unit-cube and subsequent quantization in accordance with a further embodiment of the present invention.

DETAILED DESCRIPTION OF THE EMBODIMENTS

(13) FIG. 1 shows an encoder 100 for encoding a vector comprising channel state information and/or a pilot sequence. The encoder comprises a determining unit 110, a mesh refinement unit 120 and a representation unit 130. The encoder 100 can be realized for example on a processor of a base station or a user equipment (not shown in FIG. 1).

(14) The determining unit 110 is configured to determine a cell of a sphere mesh, wherein the cell includes the vector. For example, the determining unit 110 can be configured to determine an initial cell of an initial sphere mesh, wherein the initial cell includes the vector. The determining unit 110 can further be configured to determine a refined cell of a refined sphere mesh, wherein the refined cell includes the vector.

(15) The mesh refinement unit 120 is configured to determine a refined sphere mesh based on an initial sphere mesh.

(16) The representation unit 130 is configured to determine a binary representation of a first identifier of an initial cell of the initial sphere mesh that includes the vector and a second identifier of a refined cell of the refined sphere mesh that includes the vector.

(17) FIG. 2 shows a decoder 200 for decoding a vector comprising channel state information and/or a pilot sequence from a binary representation.

(18) The decoder comprises an initial vector unit 210, a mesh refinement unit 220 and a refined vector unit 230.

(19) The initial vector unit 210 is configured to determine an initial cell vector based on a first part of the binary representation and an initial sphere mesh. The initial sphere mesh can be predetermined sphere mesh, e.g. stored in a memory of the decoder.

(20) The mesh refinement unit 220 is configured to determine a refined sphere mesh based on the initial sphere mesh.

(21) The refined vector unit 230 is configured to determine a refined cell vector based on the refined sphere mesh and a second part of the binary representation.

(22) FIG. 3 shows a communication system 300 comprising a first node 310 and a second node 320.

(23) The first node 310 comprises an encoder 100, e.g. the encoder 100 of FIG. 1. The second node 320 comprises a decoder 200, e.g. the decoder 200 of FIG. 2.

(24) FIG. 4 shows a method for encoding a vector comprising channel state information and/or pilot sequence. The method comprises a first step 410 of determining an initial cell of an initial sphere mesh, wherein the initial cell includes the vector.

(25) The method comprises a second step 420 of refining the initial sphere mesh to obtain a refined sphere mesh.

(26) The method comprises a third step 430 of determining a refined cell of the refined sphere mesh that includes the vector.

(27) The method comprises a fourth step 440 of representing a first identifier of the initial cell and a second identifier of the refined cell as a binary representation. The method 400 can be carried out e.g. by the encoder 100 of FIG. 1. The method 400 can for example be carried out by an encoder 100 located at a UE.

(28) Suppose that a non-precise process leads the UE to know a D.sub.0-dimensional vector comprising the channel state information, wherein D.sub.0 is the number of antennas at the base station, the vector denoted by h.sub.0. h.sub.0 may refer for example to a tap in the time domain of the channel between all D.sub.0 antennas of Base Station and the antenna of UE.

(29) The fact that the CSI is represented only as a vector (and not a matrix) is due to the assumption that the UE has a single antenna. This assumption is done for the sake of simplicity. If the UE has multiple antennas, one can use the single-antenna case as detailed further below.

(30) The UE can compute a unit-norm vector h from h.sub.0 representing e.g. a part of the channel state information.

(31) In a first embodiment, the unit-norm vector h can be computed as:

(32) h = h 0 .Math. h 0 .Math.
In that case the dimension of the vector h is D=D.sub.0.

(33) In a second embodiment, h can be computed as:

(34) h = U H h 0 .Math. U H h 0 .Math.
where U is a D.sub.0xD unitary matrix. The dimension of h is then equal to D.

(35) A third embodiment may be considered through another scenario. A base station may be configured to compute a complex vector representing a pilot sequence P that another communication device (for example, a user equipment) should transmit. In that case, the pilot sequence needs to be quantized, that is to say represented through bits in order that these bits can be transmitted to the communication device. In that case, the unit vector can be the normalized version of this pilot:

(36) h = p .Math. p .Math.

(37) The task of the encoder can be to compute a binary representation, e.g. a sequence of bits (b1, . . . , bB), representing a unit-norm vector h.

(38) We use the notion of codebook as a list of representative vectors approximating the true vector h. Herein, a codebook is a list of vectors (or codewords denoted by v(1), . . . , v(2.sup.B)) on the sphere that can be sent over the air through the binary representation of their index (comprised between 1 and 2.sup.B).

(39) FIG. 5 shows a method 500 for decoding a vector comprising channel state information and/or a pilot sequence from a binary representation.

(40) The method 500 comprises a first step 510 of determining an initial cell vector based on a first part of the binary representation and an initial sphere mesh.

(41) The method 500 comprises a second step 520 of determining a refined sphere mesh based on the initial sphere mesh.

(42) The method 500 comprises a third step 530 of determining a refined cell vector based on the refined sphere mesh and a second part of the binary representation.

(43) FIG. 6 is an illustration of a codebook on a sphere 600. The black dots 610 indicate the codewords 610 while the cells 620 are the set of the closest points on the sphere to each codeword 610.

(44) The mesh of the sphere can then be seen as a set of vectors of the sphere 600 closest to each codeword 610. One can then equivalently either define the codewords 610 and compute the mesh 605 related to these codewords 610 or design the mesh 605 and consider the center of each cell 620 of the mesh 605 as a codeword. Once these codewords 610 (or this mesh 605) are defined, the encoder can consider the vector to be quantized (the unit-norm vector h) and find the closest codeword to this vector (namely quantized vector which is then an approximation of the true vector h). The binary representation of the index of this quantized vector can then be sent to decoder, e.g. a base station.

(45) FIG. 7 is a schematic illustration of the computation of the representative vector. The normalized CSI to be quantized is indicated by a dot 730 on sphere 700. The aim of an encoder is to compute a representative vector, denoted by quantized vector 710. To each representative vector corresponds a unique index, a binary representation of which can be sent as feedback.

(46) A proposed encoder numerically computes a sequence of bits from a unit-norm CSI vector (denoted above by h). We will propose in next section three different preferred embodiments of the following major steps:

(47) Step 1: Compute a real representative of h (only for first two embodiments). For example, by noting =arg(h.sub.1) the angle of the first coordinate of h, one can define a rotated equivalent vector h.sup.(r) as h.sup.(r)=he.sup.i and we convert h.sup.(r) into a unit-norm real vector:

(48) g = ( Re ( h 1 ( r ) ) .Math. Re ( h D ( r ) ) Im ( h 2 ( r ) ) .Math. Im ( h D ( r ) ) ) .

(49) In the following, d will denote the size of g (that is to say d=2D1).

(50) Step 2: Compute an initial representative vector and its corresponding index as well as its binary representation; this constitutes the first bits of the sent sequence.

(51) Step 3: Compute the remaining bits defining the relative position of the codeword with respect to the initial representative vector.

(52) In a first preferred embodiment, an initial mesh is iteratively divided on the sphere by cutting in two parts each cell of the mesh. FIG. 8a is a schematic illustration of the initial mesh 805 on a sphere 800.

(53) The definition of the initial mesh can be constituted by d codewords (v(1), . . . , v(d)) of coordinates v(1)=(1, 0, 0, 0, . . . ), v(2)=(0, 1, 0, 0, . . . ), . . . v(d)=(0, 0, . . . , 0, 1).

(54) In the initial mesh, the index of the cell 820 containing g is computed through:
i*=arg max(|g.sub.1|, . . . ,|g.sub.d|).

(55) The d cells of the mesh are the set of points closest to each codeword. The idea is to iteratively split these cells. The division of a cell 820 into two cells 822, 824 can be performed with respect to a plan whose equation depends on the cell. The two new cells 822, 824 correspond to two new codewords 812, 814.

(56) It is not necessary for the encoder to build all the cells of the refined mesh. It can be sufficient to iteratively find the refined cell among the two cells obtained by splitting the initial cell 820.

(57) FIG. 8b is a schematic illustration of the first split of the cell 820 of the initial mesh 805 of FIG. 8a, thus yielding refined sphere mesh 815. Note that in this case the refined sphere mesh 815 omits those cells of the initial sphere mesh 805 that do not comprise the input vector.

(58) Each split then multiplies the total number of codewords in the codebook by 2. With this method, we are able to define codebooks with different size (the number of codewords depends on the number of splits in the construction). The construction method also provides a way to compute the representative codeword. The idea is that at each step (that is to say at each split) of the codebook construction, we identify the cell in which the vector to be quantized belongs.

(59) In a second preferred embodiment, a grid is built on the initial cell, which is defined as the cell in the initial mesh considered in FIG. 8a, which includes the input vector.

(60) FIG. 8c is a schematic illustration of a further sphere 800, where all cells of an initial sphere mesh have been split into two cells, e.g. using the grid. This yields a refined sphere mesh 815. The cells of the refined sphere mesh 815 include two cells 822, 824 that refine an initial cell of the initial sphere mesh.

(61) For each cell of the initial mesh, we are able to define an abstract mapping between each cell and the unit (d1)-dimensional cube. Let C.sub.i* be the initial cell computed at step 2. We define a mapping T.sub.i* between C.sub.i* and the unit cube by:
T.sub.i*: C.sub.i*.fwdarw.[0;1].sup.d1
g=(g.sub.1, . . . ,g.sub.d).sup.Tcustom character(u.sub.1, . . . ,u.sub.d1).sup.T

(62) with for any 1id1

(63) { u i = 2 tan - 1 ( g i g i * ) + 1 2 for i < i * u i = 2 tan - 1 ( g i + 1 g i * ) + 1 2 for i i * .

(64) One then defines a regular grid on this unit cube. The sent sequence of bits in Step 3 is then the binary representation of the closest point on this grid (the representative codeword on the sphere is then the inverse mapping of this closest point), i.e. the concatenation of the binary representation of

(65) .Math. 2 B i u i - 1 2 .Math.
where B.sub.i is the number of bits used to quantize u.sub.i.

(66) In a third preferred embodiment, a grid 930 is built on each cell 920 of the initial mesh considered in FIG. 8a, but directly for the complex sphere 900. FIG. 9 is a schematic illustration of the mapping to the unit-cube and subsequent quantization. The index which binary representation will be sent is then the index of the point 904 on the grid of points 930, which is closest to the vector 902 to be quantized.

(67) This leads to the definition of a different mapping from the initial cell to the unit cube. The remaining steps are the same as in the third embodiment. More precisely, the index of the initial cell is computed as:
i*=arg max(|h.sub.1|, . . . ,|h.sub.D)
and if C.sub.i* is this initial cell computed at step 2, the mapping S.sub.i* used at Step 3 is defined by:
S.sub.i*: C.sub.i*.fwdarw.[0;1].sup.2D2
x=(h.sub.1, . . . ,h.sub.D).sup.Tcustom charactera=(u.sub.1,v.sub.1, . . . ,u.sub.D1,v.sub.D1).sup.T
with for any 1iD1, u.sub.i=N(Re(w.sub.i)) and v.sub.i=N(Im(w.sub.i)) (where N is the cumulative distribution function of the univariate standard Gaussian distribution) and

(68) { w i = 2 log ( 1 1 - r i ) 1 / 2 h i h i * .Math. h i * h i .Math. for i < i * w i = 2 log ( 1 1 - r i ) 1 / 2 h i + 1 h i * .Math. h i * h i + 1 .Math. for i i * and r i = 1 1 - 1 / 2 ( 1 - cos ( tan - 1 .Math. h i h i * .Math. ) ) .

(69) Finally the sent sequence of bits is the concatenation of the concatenation of the binary representation of

(70) .Math. 2 B i a i - 1 2 .Math.
where B.sub.i is the number of bits used to quantize a.sub.i, the i-th component of vector a.

(71) A decoder is configured to perform a reverse operation to the above-described operation of the encoder. It computes the representative vector from a sequence of bits. For example, a decoder can be configured to, in a first step, compute the codeword index form the sequence of bits. In a second step, it can compute the codeword associated to this index.

(72) The decoder implementation can have a similar structure as the encoder. In an embodiment, the decoder can be configured to: deduce from first bits of a binary representation an initial representative vector, compute the representative vector in the cell constituted by the initial representative vector from the remaining bits, and compute the complex representative from the real codeword.

(73) The mathematical details are symmetric with respect to the encoder part with the same distinction between the three possible implementations.

(74) The above-described feedback methods can be used e.g. for a single-antenna UE. A simple extension is to extend the method to multiple-antenna UE (denote the number of antennas at UE by N). In that case, the CSI to feedback can be a set of N unit-norm vectors. Typically, a preprocessing to compute these N unit-norm vectors has to be performed.

(75) One can then separately encode the N vectors and feed back the corresponding bits through the aforementioned method.

(76) The following table summarizes characteristics of prior art methods and an embodiment of the proposed method suitable for large codebooks of 2.sup.B elements in a space of size D.

(77) TABLE-US-00001 Coding Available complexity Efficiency Method dimensions in D and B (accuracy/bits) Fourier codebook low/high Polynomial in D Tends to 0 for (Bell Labs) and B large codebooks Progressive Low (D = 2.sup.n) Polynomial in B high refinement of codebooks via local codebooks (Huawei USA) Lattice method- low/high Exponential in B high QAM/Reflected polynomial in D Simplex (Ryan et al.) Scalar quan- low/high Linear in D low tization Cube Split low/high Linear in D high (our proposition)

(78) Embodiments of the present invention can have one or more of the following advantages:

(79) Very low complexity of coding and decoding algorithm.

(80) No storage needed at either BS and UE.

(81) Performances competes with prior art.

(82) Flexibility.

(83) No parameterization or calibration needed.

(84) Any precision can be reached.

(85) Codebook available for any number of antennas.

(86) Possible scaling with the number of antennas and the number of needed bits.

(87) The foregoing descriptions are only implementation manners of the present invention, the scope of the present invention is not limited to this. Any variations or replacements can be easily made through person skilled in the art. Therefore, the protection scope of the present invention should be subject to the protection scope of the attached claims.