Embodiments of the present invention relate to the precoding technologies, and in particular, to a precoding matrix indicating method, a precoding matrix determining method, a receive end device, and a transmit end device.
Emergence of a Multiple Input Multiple Output (Multiple Input Multiple Output, MIMO) technology brings a revolutionary change to wireless communication. In the MIMO technology, a plurality of antennas are deployed on a transmit end device and a receive end device, performance of a wireless communications system can be significantly improved. For example, in a diversity scenario, the MIMO technology can effectively improve transmission reliability. In a multiplexing scenario, the MIMO technology can greatly increase a transmission throughput.
In a MIMO system, a precoding technology is usually used to improve a channel, so as to improve a spatial multiplexing (Spatial Multiplexing) effect. Specifically, in the precoding technology, a precoding matrix that matches a channel is used to process a data stream obtained after spatial multiplexing (referred to as a spatial stream for short below), so as to precode the channel and improve received quality of the spatial stream.
Each spatial stream obtained after spatial multiplexing is corresponding to a column vector of a precoding matrix. In a precoding process, a transmit end device precodes the spatial stream by using the column vector. Therefore, the column vector may also be referred to as a precoding vector. The precoding vector may be determined by a receive end device and fed back to the transmit end device. According to the prior art, information indicating each precoding vector needs to be fed back for the precoding vector, so that when there are a relatively large quantity of spatial streams obtained after spatial multiplexing, high feedback overheads are generated by indicating these precoding vectors.
In view of the above, it is necessary to provide a precoding matrix indicating method, to reduce feedback overheads caused by indicating a precoding vector.
A precoding matrix determining method is also provided, to reduce feedback overheads caused by indicating a precoding vector.
A receive end device is also provided, to reduce feedback overheads caused by indicating a precoding vector.
A transmit end device is also provided, to reduce feedback overheads caused by indicating a precoding vector.
According to a first aspect of embodiments of the present invention, a precoding matrix indicating method is provided, and the precoding matrix indicating method includes:
determining a plurality of component matrices of an ideal precoding matrix and a weight of each component matrix based on at least one basic codebook, where a dimension of each component matrix is the same as a dimension of the ideal precoding matrix, and a column vector of each component matrix is selected from column vectors of one of the at least one basic codebook; and
sending a precoding matrix indicator, where the precoding matrix indicator is used to indicate the plurality of component matrices and the weight of each component matrix.
According to a second aspect of the embodiments of the present invention, a precoding matrix determining method is provided, and the precoding matrix indicating method includes:
receiving a precoding matrix indicator, where the precoding matrix indicator is used to indicate a plurality of component matrices of an ideal precoding matrix and a weight of each component matrix that are determined based on at least one basic codebook, a dimension of each component matrix is the same as a dimension of the ideal precoding matrix, and a column vector of each component matrix is selected from column vectors of one of the at least one basic codebook; and
determining the ideal precoding matrix based on the plurality of component matrices and the weight of each component matrix.
According to a third aspect of the embodiments of the present invention, a receive end device is provided, and the receive end device includes:
a determining module, configured to determine a plurality of component matrices of an ideal precoding matrix and a weight of each component matrix based on at least one basic codebook, where a dimension of each component matrix is the same as a dimension of the ideal precoding matrix, and a column vector of each component matrix is selected from column vectors of one of the at least one basic codebook; and
a sending module, configured to send a precoding matrix indicator, where the precoding matrix indicator is used to indicate the plurality of component matrices and the weight of each component matrix.
According to a fourth aspect of the embodiments of the present invention, a transmit end device is provided, and the transmit end device includes:
a receiving module, configured to receive a precoding matrix indicator, where the precoding matrix indicator is used to indicate a plurality of component matrices of an ideal precoding matrix and a weight of each component matrix that are determined based on at least one basic codebook, a dimension of each component matrix is the same as a dimension of the ideal precoding matrix, and a column vector of each component matrix is selected from column vectors of one of the at least one basic codebook; and
a determining module, configured to determine the ideal precoding matrix based on the plurality of component matrices and the weight of each component matrix.
In a possible design, each component matrix includes at least two column vectors.
In a possible design, the at least one basic codebook is one basic codebook.
In a possible design, the basic codebook is:
where
B is the basic codebook;
G=(DN
an element d (m1,n1) in a matrix DN
O1 and N1 are preset values, both O1 and N1 are positive integers, 0≤m1≤N1−1, and 0≤n1≤O1N1−1;
an element d (m2, n2) in a matrix DN
and
O2 and N2 are preset values, both O2 and N2 are positive integers, 0≤m2≤N2−1, and 0≤n2≤O2N2−1; and
ψ is a diagonal matrix, and an ith element Λii on a main diagonal of the diagonal matrix is:
Λii=ejx, where
1≤i≤O1O2N1N2, x is a codebook parameter, and 0≤x≤2π.
In a possible design, the basic codebook is:
where
B is the basic codebook;
G=(LN
an element d (m1, n1) in a matrix DN
N1 is a preset value, N1 is a positive integer, 0≤m1≤N1−1, and 0≤n1≤N1−1;
an element d (m2, n2) in a matrix DN
N2 is a preset value, N2 is a positive integer, 0≤m2≤N2−1, and 0≤n2≤N2−1;
LN
the diagonal matrix LN
the diagonal matrix LN
where
O1 is a preset value, O1 is a positive integer, k1 is a first codebook parameter, k1 is an integer, and 0≤k1≤O1−1; and
LN
the diagonal matrix LN
the diagonal matrix LN
O2 is a preset value, O2 is a positive integer, k2 is a second codebook parameter, k2 is an integer, and 0≤k2≤O2−1; and
ψ is a diagonal matrix, and an ith element Λii on a main diagonal of the diagonal matrix is:
Λii=ejx, where
1≤i≤O1O2N1N2, x is a third codebook parameter, and 0≤x≤2π.
In a possible design, the basic codebook is:
where
B is the basic codebook, and an element d (m1, n1) in a matrix DN
N1 is a preset value, N1 is a positive integer, 0≤m1≤N1−1, and 0≤n1≤N1−1;
an element d (m2, n2) in a matrix DN
N2 is a preset value, N2 is a positive integer, 0≤m2≤N2≤1, and 0≤n2≤N2−1;
LN
the diagonal matrix LN
the diagonal matrix LN
where
O1 is a preset value, O1 is a positive integer, k1 is a first codebook parameter, k1 is an integer, and 0≤k1≤O1−1;
LN
the diagonal matrix LN
the diagonal matrix LN
where
O2 is a preset value, O2 is a positive integer, k2 is a second codebook parameter, k2 is an integer, and 0≤k2≤O2−1;
RN
the diagonal matrix RN
the diagonal matrix RN
where
Q1 is a preset value, Q1 is a positive integer, q1 is a third codebook parameter, q1 is an integer, and −(Q1−1)≤q1≤(Q1−1) ; and
RN
the diagonal matrix RN
the diagonal matrix RN
where
Q2 is a preset value, Q2 is a positive integer, q2 is a fourth codebook parameter, q2 is an integer, and −(Q2−1)≤q2≤(Q2−1).
In a possible design, the basic codebook is:
where
B is the basic codebook, and an element d (m1, n1) in a matrix DN
N1 is a preset value, N1 is a positive integer, 0≤m1≤N1−1, and 0≤n1≤N1−1;
an element d (m2, n2) in a matrix DN
N2 is a preset value, N2 is a positive integer, 0≤m2≤N2−1, and 0≤n2≤N2−1;
LN
the diagonal matrix LN
the diagonal matrix LN
where
O1 is a preset value, O1 is a positive integer, k1 is a first codebook parameter, k1 is an integer, and 0≤k1≤O1−1;
LN
the diagonal matrix LN
the diagonal matrix LN
where
O2 is a preset value, O2 is a positive integer, k2 is a second codebook parameter, k2 is an integer, and 0≤k2≤O2−1;
RN
the diagonal matrix RN
the diagonal matrix RN
where
Q1 is a preset value, Q1 is a positive integer, p1 is a third codebook parameter, p1 is an integer, and 0≤p1≤(Q1−1);
RN
the diagonal matrix RN
the diagonal matrix RN
where
Q2 is a preset value, Q2 is a positive integer, p2 is a fourth codebook parameter, p2 is an integer, and 0≤p2≤(Q2−1);
RN
the diagonal matrix RN
the diagonal matrix RN
where
Q3 is a preset value, Q3 is a positive integer, q1 is a fifth codebook parameter, q1 is an integer, and 0≤q1≤(Q3−1); and
RN
the diagonal matrix RN
the diagonal matrix RN
where
Q4 is a preset value, Q4 is a positive integer, q2 is a sixth codebook parameter, q2 is an integer, and 0≤q2≤(Q4−1).
In a possible design, the basic codebook is:
where
B is the basic codebook, and an element d (n1, n1) in a matrix DN
N1 is a preset value, N1 is a positive integer, 0≤m1≤N1−1, and 0≤n1≤N1−1;
an element d (n2, n2) in a matrix DN
N2 is a preset value, N2 is a positive integer, 0≤m2≤N2−1, and 0≤n2≤N2−1;
LN
the diagonal matrix LN
the diagonal matrix LNk
where
O1 is a preset value, O1 is a positive integer, k1 is a first codebook parameter, k1 is an integer, and 0≤k1≤O1−1;
LN
the diagonal matrix LN
the diagonal matrix LN
where
O2 is a preset value, O2 is a positive integer, k2 is a second codebook parameter, k2 is an integer, and 0≤k2≤O2−1;
RN
the diagonal matrix RN
the diagonal matrix RN
where
Q1 is a preset value, Q1 is a positive integer, q1 is a third codebook parameter, q1 is an integer, and −(Q1−1)≤11≤(Q1−1); and
RN
the diagonal matrix RN
the diagonal matrix RN
where
Q2 is a preset value, Q2 is a positive integer, q2 is a fourth codebook parameter, q2 is an integer, and −(Q2−1)≤q2≤(Q2−1).
In a possible design, for any one of the foregoing basic codebooks, an additional coefficient is configured for at least one block matrix in the basic codebook.
In a possible design, for any one of the foregoing basic codebooks, an additional coefficient is configured for at least one composition matrix in at least one block matrix in the basic codebook.
In a possible design, when a quantity of column vectors of each component matrix is an even number, if
is a column vector of the component matrix,
is also a column vector of the component matrix.
In a possible design, when the quantity of column vectors of each component matrix is greater than 1 and is an odd number, for other column vectors than one of the column vectors, if
is a column vector of the component matrix,
is also a column vector of the component matrix.
In the technical solutions provided in the embodiments of the present invention, an ideal precoding matrix is approximately represented in a form of a weighted sum of a plurality of component matrices, and when a precoding matrix is fed back, only a component matrix and a weight of the component matrix are fed back. In this case, compared with the prior art in which one weight needs to be fed back for each component vector, in the technical solutions provided in the embodiments of the present invention, only one weight is fed back for each component matrix. Therefore, in the technical solutions provided in the embodiments of the present invention, feedback overheads caused by indicating a precoding matrix can be reduced.
The base stations 102, 104, and 106 are configured to provide a wireless access service for the terminal devices 108, 110, 112, 114, 116, 118, 120, and 122. In some embodiments, each base station is corresponding to one service coverage area (which may be referred to as a cell, as shown by each elliptic area in
Depending on a used wireless communications technology, a base station may also be referred to as a NodeB (NodeB), an evolved NodeB (evolved NodeB, eNodeB), an access point (Access Point, AP), or the like. In addition, based on a size of a provided service coverage area, base stations may be classified into a macro base station for providing a macro cell (Macro cell), a micro base station for providing a micro cell (Pico cell), a femto base station for providing a femto cell (Femto cell), and the like. With continuous evolution of the wireless communications technologies, a future base station may use another name.
The terminal devices 108, 110, 112, 114, 116, 118, 120, and 122 may be various wireless communications devices having a wireless communication function, for example without limitation to, a mobile cellular phone, a cordless phone, a personal digital assistant (Personal Digital Assistant, PDA), a smartphone, a notebook computer, a tablet computer, a wireless data card, a wireless modem (Modulator demodulator, Modem), or a wearable device such as a smartwatch. With emergence of an Internet of Things (Internet of Things, IoT) technology, an increasing quantity of devices previously having no communication function, for example without limitation to, a household appliance, a transportation vehicle, a tool device, a service device, and a service facility, start to obtain a wireless communication function by configuring a wireless communications unit, to access a wireless communications network, and accept remote control. This type of devices have the wireless communication function because the wireless communications unit is configured for this type of devices, and therefore this type of devices also belong to wireless communications devices. In addition, the terminal devices 108, 110, 112, 114, 116, 118, 120, and 122 may also be referred to as mobile stations, mobile devices, mobile terminals, wireless terminals, handheld devices, clients, or the like.
The base stations 102, 104, and 106 and the terminal devices 108, 110, 112, 114, 116, 118, 120, and 122 may be equipped with a plurality of antennas, to support a MIMO (Multiple Input Multiple Output, Multiple Input Multiple Output) technology. Further, the base stations 102, 104, and 106 and the terminal devices 108, 110, 112, 114, 116, 118, 120, and 122 may support not only a single user MIMO (Single User MIMO, SU-MIMO) technology but also a multi-user MIMO (Multi-User MIMO, MU-MIMO) technology. The MU-MIMO technology may be implemented based on a space division multiple access (Space Division Multiple Access, SDMA) technology. Because a plurality of antennas are configured, the base stations 102, 104, and 106 and the terminal devices 108, 110, 112, 114, 116, 118, 120, and 122 may further flexibly support a single-input single-output (Single-Input Single-Output, SISO) technology, a single-input multiple-output (Single-Input Multiple-Output, SIMO) technology, and a multiple-input-single-output (Multiple-Input-Single-Output, MISO) technology, to implement various diversity (for example without limitation to, transmit diversity and receive diversity) and multiplexing technologies. The diversity technology may include, for example without limitation to, a transmit diversity (Transmit Diversity, TD) technology and a receive diversity (Receive Diversity, RD) technology. The multiplexing technology may be a spatial multiplexing (Spatial Multiplexing) technology. In addition, the foregoing various technologies may further include a plurality of implementation solutions. For example, the transmit diversity technology may include diversity manners such as space-time transmit diversity (Space-Time Transmit Diversity, STTD), space-frequency transmit diversity (Space-Frequency Transmit Diversity, SFTD), time switched transmit diversity (Time Switched Transmit Diversity, TSTD), frequency switched transmit diversity (Frequency Switched Transmit Diversity, FSTD), orthogonal transmit diversity (Orthogonal Transmit Diversity, OTD), and cyclic delay diversity (Cyclic Delay Diversity, CDD), and diversity manners obtained through derivation and evolution, and by combining the foregoing various diversity manners. For example, currently, transmit diversity manners such as space time block coding (Space Time Block Coding, STBC), space frequency block coding (Space Frequency Block Coding, SFBC), and CDD are used in an LTE (Long Term Evolution, Long Term Evolution) standard.
In addition, the base stations 102, 104, and 106 and the terminal devices 108, 110, 112, 114, 116, 118, 120, and 122 may communicate with each other by using various wireless communications technologies, for example without limitation to, a Time Division Multiple Access (Time Division Multiple Access, TDMA) technology, a Frequency Division Multiple Access (Frequency Division Multiple Access, FDMA) technology, a Code Division Multiple Access (Code Division Multiple Access, CDMA) technology, a Time Division-Synchronous Code Division Multiple Access (Time Division-Synchronous Code Division Multiple Access, TD-SCDMA) technology, an orthogonal frequency division multiple access (Orthogonal FDMA, OFDMA) technology, a single carrier frequency division multiple access (Single Carrier FDMA, SC-FDMA) technology, and a space division multiple access (Space Division Multiple Access, SDMA) technology, and evolved and derived technologies of these technologies. As a radio access technology (Radio Access Technology, RAT), the foregoing wireless communications technologies are adopted in many wireless communications standards, to construct various well-known wireless communications systems (or networks), including but not limited to a Global System for Mobile Communications (Global System for Mobile Communications, GSM), CDMA2000, Wideband CDMA (Wideband CDMA, WCDMA), Wi-Fi defined in the 802.11 series of standards, Worldwide Interoperability for Microwave Access (Worldwide Interoperability for Microwave Access, WiMAX), Long Term Evolution (Long Term Evolution, LTE), LTE-Advanced (LTE-Advanced, LTE-A), evolved systems of these wireless communications systems, and the like. Unless otherwise specified, the technical solutions provided in the embodiments of the present invention may be applied to the foregoing various wireless communications technologies and wireless communications systems. In addition, the terms “system” and “network” can be interchanged.
It should be noted that the wireless communications network 100 shown in
Usually, in a communication process, a receive end device determines a channel matrix based on a reference signal transmitted by a transmit end device, determines a precoding matrix based on the channel matrix and a codebook, and feeds back the precoding matrix to the transmit end device. The transmit end device precodes to-be-transmitted data based on the precoding matrix, and sends the precoded data to the receive end device. In this specification, the receive end device may be the terminal device 108, 110, 112, 114, 116, 118, 120, or 122 shown in
Step 202: Determine a plurality of component matrices of an ideal precoding matrix and a weight of each component matrix based on at least one basic codebook, where a dimension of each component matrix is the same as a dimension of the ideal precoding matrix, and a column vector of each component matrix is selected from column vectors of one of the at least one basic codebook.
Step 204: Send a precoding matrix indicator, where the precoding matrix indicator is used to indicate the plurality of component matrices and the weight of each component matrix.
In one implemenation, the foregoing ideal precoding matrix may be obtained by using a plurality of methods, and ideal precoding matrices obtained by using different methods may be different. For example, the foregoing ideal precoding matrix may be obtained by performing singular value decomposition (Singular Value Decomposition, SVD) on a channel matrix. In some embodiments, singular value decomposition (Singular Value Decomposition, SVD) is performed on the channel matrix, and the channel matrix may be decomposed into a form of a product of a left unitary matrix, a diagonal matrix, and a right unitary matrix. In a specific implementation process, a conjugate transpose matrix of the right unitary matrix may be used as the ideal precoding matrix. In addition, the foregoing ideal precoding matrix obtained through singular value decomposition may alternatively be obtained by, for example without limitation to, performing eigenvalue decomposition on a correlation matrix of the channel matrix. In a specific implementation process, a specific value of the ideal precoding matrix and a method for obtaining the specific value of the ideal precoding matrix may be determined based on an overall requirement of a system design. Technical details about the ideal precoding matrix have been clearly described in the prior art, and therefore are not described herein.
After the foregoing ideal precoding matrix is obtained, the ideal precoding matrix may be approximately represented in a form of a weighted sum of the plurality of component matrices:
P represents an ideal precoding matrix, bi represents a component matrix i, and ai represents a weight of the component matrix i. A dimension of each component matrix is the same as a dimension of the ideal precoding matrix. In a specific implementation process, a quantity m (m is a positive integer) of component matrices may be set based on a specific requirement (for example without limitation to an accuracy requirement). For example, the quantity of component matrices may be a preset quantity.
A column vector of a component matrix is selected from a basic codebook. The basic codebook may be usually represented in a form of a matrix, and therefore, the basic codebook may also be referred to as a basic codebook matrix. For the basic codebook mentioned in this specification, unless otherwise specified, or if the basic codebook does not conflict with an actual function or internal logic of the basic codebook in the related description, the basic codebook and the basic codebook matrix can be interchanged.
The basic codebook matrix includes a plurality of column vectors, and a plurality of candidate matrices may be constructed based on these column vectors. A dimension of each of these candidate matrices is the same as the dimension of the ideal precoding matrix, and each column vector of the candidate matrices is one of the plurality of column vectors included in the basic codebook matrix. In a specific implementation process, the candidate matrices may be generated based on the column vectors of the basic codebook matrix by using a plurality of methods. For example, if the ideal precoding matrix includes two column vectors, any two column vectors may be selected from the basic codebook matrix as the column vectors of the candidate matrices, so as to construct the candidate matrices. In addition, a constraint condition may be further set on the column vectors of the candidate matrices. In this way, only a column vector that meets the constraint condition in the basic codebook matrix may be selected to construct a candidate matrix. The constraint condition may be, for example without limitation to, that column vectors forming a candidate matrix are orthogonal to each other.
After a plurality of candidate matrices are generated, several candidate matrices may be selected from these candidate matrices as component matrices. There are many methods for selecting a component matrix, and a proper method may be selected based on a specific requirement. For example, a component matrix may be selected from candidate matrices based on a degree at which a candidate matrix approximates to the ideal precoding matrix, where a plurality of candidate matrices that most approximate to the ideal precoding matrix may be selected as component matrices. For example, if the ideal precoding matrix is:
[v1,v2, . . . , vR], and
the candidate matrix is:
[b1,b2, . . . , bR],
a degree at which the candidate matrix approximates to the ideal precoding matrix may be expressed as:
where
biH represents a conjugate transpose vector of a vector bi. In addition, if the foregoing candidate matrix
[b1,b2, . . . , bRR]
is selected as a component matrix, a weight of the component matrix may be expressed as:
In addition, the foregoing approximate degree may be further expressed as, for example without limitation to, a Euclidean distance between the candidate matrix and the ideal precoding matrix.
When there are a plurality of basic codebook matrices, column vectors of different component matrices may be selected from different basic codebook matrices, but there may be a limitation that column vectors of each component matrix are from a same basic codebook matrix, so as to reduce processing overheads and feedback overheads. In addition, the component matrix may include at least one column vector, or may include at least two column vectors.
In one implementation, the component matrix may be indicated in a plurality of manners. For example without limitation, indexes of column vectors of the component matrix may be indicated, and locations of the column vectors in the component matrix are reflected based on an order of the indexes. The component matrix may alternatively be directly indicated. Likewise, the weight of the component matrix may also be indicated in a plurality of manners. For example, to reduce overheads caused by indicating the weight of the component matrix, the weight may be quantized. In this case, the weight determined and indicated in the method 200 shown in
It should be noted that in some implementations, a determining and indicating period of the component matrix may be the same as or different from a determining and indicating period of the weight. For example, the determining and indicating period of the component matrix may be longer or shorter than the determining and indicating period of the weight. In this case, it should be understood that operations of determining and indicating the component matrix in the method 200 and operations of determining and indicating the weight in the method 200 may be completed within a same feedback period, or may be completed within different feedback periods. In addition, the component matrix and the weight of the component matrix may be determined and indicated based on a wideband (for example, may be of an entire system bandwidth, of 20 M, or of 10 M), or may be determined and indicated based on a narrowband (for example, may be a subband within an entire system bandwidth, or may be of 2 M or 1 M). Actually, in the prior art, a codebook may be represented in the following form:
W=W1W2.
W1 may be referred to as a long-term/wideband codebook, and W2 may be referred to as a short-term/narrowband codebook. In in this embodiment of the present invention, for manners of determining and indicating the component matrix, refer to manners of determining and indicating W1 in the prior art, and for manners of determining and indicating the weight, refer to manners of determining and indicating W2 in the prior art. It should be understood that the operations of determining and indicating the component matrix in the method 200 cover these manners of determining and indicating.
In the prior art, each ideal precoding vector of an ideal precoding matrix (that is, a column vector of the ideal precoding matrix) is approximately represented by using a group of component vectors, and each ideal precoding vector is approximately represented in a form of a weighted sum of several component vectors in this group of component vectors. According to the prior art, for each ideal precoding vector, a component vector and a weight of the component vector that are used to represent the ideal precoding vector need to be fed back. When there are a relatively large quantity of spatial streams obtained after spatial multiplexing, feedback overheads are very high.
Compared with the prior art, in this embodiment of the present invention, an ideal precoding matrix is approximately represented in a form of a weighted sum of a plurality of component matrices, and when a precoding matrix is fed back, only a component matrix and a weight of the component matrix are fed back. In this case, compared with the prior art in which one weight needs to be fed back for each component vector, in the technical solution provided in this embodiment of the present invention, only one weight is fed back for each component matrix (that is, a plurality of column vectors in the component matrix are corresponding to a same weight). Therefore, it can be learned that according to the technical solution provided in this embodiment of the present invention, feedback overheads caused by indicating a precoding matrix can be reduced.
It should be noted that in some cases, an ideal precoding matrix that is approximately represented by a weighted sum of a plurality of component matrices may need to be reconstructed before being used for precoding. For example, in an MU-MIMO scenario, a transmit end device needs to perform a reconstruction operation based on the foregoing ideal precoding matrix approximately represented by a plurality of receive end devices that are simultaneously scheduled, to obtain a precoding matrix that is truly used for precoding for each receive end device. A purpose of the reconstruction may be, for example without limitation to, setting precoding vectors of different receive end devices orthogonal to each other, so as to reduce interference caused by a signal sent to one receive end device to another receive end device. The reconstruction process may be performed according to a plurality of algorithms, for example without limitation to, a zero forcing (Zero Forcing, ZF) algorithm, a minimum mean square error (Minimum Mean Square Error, MMSE) algorithm, and a block diagonalization (Block Diagonalization, BD) algorithm.
In some embodiments, to more accurately describe a channel environment, this embodiment of the present invention provides a plurality of basic codebooks, and the following describes these basic codebooks in detail.
The basic codebook is usually associated with an antenna array. For example, it may be understood that many parameters in a basic codebook expression may be used to represent different properties of an antenna array. Therefore, to facilitate understanding of the basic codebook provided in this embodiment of the present invention, the following describes the basic codebook with reference to an antenna array. However, a person skilled in the art should understand that the basic codebook provided in this embodiment of the present invention is not limited to a specific antenna array. In a specific implementation process, a proper antenna array may be selected based on a specific requirement, and various parameters in the basic codebook provided in this embodiment of the present invention are set based on the selected antenna array, so that a precoding matrix is determined by using the basic codebook provided in this embodiment of the present invention.
In the description of this specification, ⊗ represents a Kronecker product.
A first basic codebook B provided in this embodiment of the present invention may be represented in the following form:
A matrix DN
Fourier transform (Discrete Fourier Transform, DFT) matrices that are obtained after over-sampling, and a value of an element d (m1, n1) in DN
O1 and N1 are preset values, both O1 and N1 are positive integers, 0≤m1≤N1−1, and 0≤n1≤O1N1−1. A value of an element d (m2, n2) in DN
O2 and N2 are preset values, both O2 and N2 are positive integers, 0≤m2≤N2−1, and 0≤n2≤O2N2−1. ψ is a diagonal matrix, and a value of an ith element Λii on a main diagonal of the diagonal matrix is:
Λii=ejx, where
1≤i≤O1O2N1N2, x is a codebook parameter, the codebook parameter is a variable, and 0≤x≤2π.
In one implementation, functions of O1 and O2 may be understood as over-sampling. N1 and N2 may be used to represent a quantity of array element groups 302 in each row (or column) of array element groups 302 in the antenna array 300 and a quantity of array element groups 302 in each column (or row) of array element groups 302 in the antenna array 300. Λii may be used to set a polarization phase difference between array elements that work in different polarization directions in the array element groups 302. In a specific implementation process, a value of the codebook parameter x may be selected from a preset quantity of preset values in a group (for example,
It is not difficult to understand that, if the method 200 shown in
A second basic codebook B provided in this embodiment of the present invention may be represented in the following form:
A matrix DN
A value of an element d (m1,n1) in DN
N1 is a preset value, N1 is a positive integer, 0≤m1≤N1−1, and 0≤n1≤N1−1. A value of an element d (m2,n2) in DN
N2 is a preset value, N2 is a positive integer, 0≤m2≤N2−1, and 0≤n2≤N2−1. LN
the diagonal matrix LN
the diagonal matrix LN
where
O1 is a preset value, O1 is a positive integer, k1 is a first codebook parameter, the first codebook parameter is a variable, k1 is an integer, and 0≤k1≤O1−1. LN
the diagonal matrix LN
the diagonal matrix LN
where
O2 is a preset value, O2 is a positive integer, k2 is a second codebook parameter, the second codebook parameter is a variable, k2 is an integer, and 0≤k2≤O2−1. ψ is a diagonal matrix, and a value of an ith element Λii on a main diagonal of the diagonal matrix is:
Λii=ejx, where
1≤i≤O1O2N1N2, x is a third codebook parameter, the third codebook parameter is a variable, and 0≤x≤2π.
In one implementation, functions of O1 and O2 may be understood as over-sampling. The first codebook parameter k1 and the second codebook parameter k2 may be used to set column vectors in the generated basic codebook B orthogonal to each other. N1 and N2 may be used to represent a quantity of array element groups 302 in each row (or column) of array element groups 302 in the antenna array 300 and a quantity of array element groups 302 in each column (or row) of array element groups 302 in the antenna array 300. Λii may be used to set a polarization phase difference between array elements that work in different polarization directions in the array element groups 302. In a specific implementation process, a value of the codebook parameter x may be selected from a preset quantity of preset values in a group (for example,
It is not difficult to understand that, if the method 200 shown in
A third basic codebook B provided in this embodiment of the present invention may be represented in the following form:
A matrix DN
N1 is a preset value, N1 is a positive integer, 0≤m1≤N1−1, and 0≤n1≤N1−1. A value of an element d (m2, n2) in DN
N2 is a preset value, N2 is a positive integer, 0≤m2≤N2−1, and 0≤n2≤N2−1. is a diagonal matrix; and if
the diagonal matrix LN
the diagonal matrix LN
where
O1 is a preset value, O1 is a positive integer, k1 is a first codebook parameter, the first codebook parameter is a variable, k1 is an integer, and 0≤k1≤O1−1. LN
the diagonal matrix LN
the diagonal matrix LN
where
O2 is a preset value, O2 is a positive integer, k2 is a second codebook parameter, the second codebook parameter is a variable, k2 is an integer, and 0≤k2≤O2−1. RN
the diagonal matrix RN
the diagonal matrix RN
where
Q1 is a preset value, Q1 is a positive integer, q1 is a third codebook parameter, the third codebook parameter is a variable, q1 is an integer, and −(Q1−1)≤q1≤(Q1−1). RN
the diagonal matrix RN
the diagonal matrix RN
where
Q2 is a preset value, Q2 is a positive integer, q2 is a fourth codebook parameter, the fourth codebook parameter is a variable, q2 is an integer, and −(Q2−1)≤q2≤(Q2−1).
In some implementations, functions of O1 and O2 may be understood as over-sampling. The first codebook parameter k1 and the second codebook parameter k2 may be used to set column vectors in the generated basic codebook B orthogonal to each other. N1 and N2 may be used to represent a quantity of array element groups 302 in each row (or column) of array element groups 302 in the antenna array 300 and a quantity of array element groups 302 in each column (or row) of array element groups 302 in the antenna array 300. Q1, Q2, the third codebook parameter q1, and the fourth codebook parameter q2 may be used to set a polarization phase of an array element in the array element group 302.
It can be understood that, if the method 200 shown in
A fourth basic codebook B provided in this embodiment of the present invention may be represented in the following form:
A matrix DN
N1 is a preset value, N1 is a positive integer, 0≤m1≤N1−1, and 0≤n1≤N1−1. A value of an element d (m2, n2) in DN
N2 is a preset value, N2 is a positive integer, 0≤m2≤N2−1, and 0≤n2≤N2−1. LN
the diagonal matrix LN
the diagonal matrix LN
where
O1 is a preset value, O1 is a positive integer, k1 is a first codebook parameter, the first codebook parameter is a variable, k1 is an integer, and 0≤k1≤O1−1 LN
the diagonal matrix LN
the diagonal matrix LN
where
O2 is a preset value, O2 is a positive integer, k2 is a second codebook parameter, the second codebook parameter is a variable, k2 is an integer, and 0≤k2≤O2−1. RN
the diagonal matrix RN
the diagonal matrix RN
where
Q1 is a preset value, Q1 is a positive integer, p1 is a third codebook parameter, the third codebook parameter is a variable, p1 is an integer, and 0≤p1≤(Q1−1). RN
the diagonal matrix RN
the diagonal matrix RN
where
Q2 is a preset value, Q2 is a positive integer, p2 is a fourth codebook parameter, the fourth codebook parameter is a variable, p2 is an integer, and 0≤p2≤(Q2−1). RN
the diagonal matrix RN
the diagonal matrix RN
where
Q3 is a preset value, Q3 is a positive integer, q1 is a fifth codebook parameter, the fifth codebook parameter is a variable, q1 is an integer, and 0≤q1≤(Q3−1) . RN
the diagonal matrix RN
the diagonal matrix RN
where
Q4 is a preset value, Q4 is a positive integer, q2 is a sixth codebook parameter, the sixth codebook parameter is a variable, q2 is an integer, and 0≤q2≤(Q4−1).
In one implementation, functions of O1 and O2 may be understood as over-sampling. The first codebook parameter k1 and the second codebook parameter k2 may be used to set column vectors in the generated basic codebook B orthogonal to each other. N1 and N2 may be used to represent a quantity of array element groups 302 in each row (or column) of array element groups 302 in the antenna array 300 and a quantity of array element groups 302 in each column (or row) of array element groups 302 in the antenna array 300. Q1, Q2, Q3, Q4, the third codebook parameter p1, the fourth codebook parameter p2, the fifth codebook parameter q1, and the sixth codebook parameter q2 may be used to set a polarization phase of an array element in the array element group 302.
It can be understood that, if the method 200 shown in
A fifth basic codebook B provided in this embodiment of the present invention may be represented in the following form:
A matrix DN
N1 is a preset value, N1 is a positive integer, 0≤m1≤N1−1, and 0≤n1≤N1−1. A value of an element d (m2, n2) in DN
N2 is a preset value, N2 is a positive integer, 0≤m2≤N2−1, and 0≤n2≤N2−1. LN
the diagonal matrix LN
the diagonal matrix LN
where
O1 is a preset value, O1 is a positive integer, k1 is a first codebook parameter, the first codebook parameter is a variable, k1 is an integer, and 0≤k1≤O1−1. LN
the diagonal matrix LN
the diagonal matrix LN
where
O2 is a preset value, O2 is a positive integer, k2 is a second codebook parameter, the second codebook parameter is a variable, k2 is an integer, and 0≤k2≤O2−1. RN
the diagonal matrix RN
the diagonal matrix RN
where
Q1 is a preset value, Q1 is a positive integer, q1 is a third codebook parameter, the third codebook parameter is a variable, q1 is an integer, and −(Q1−1)≤q1≤(Q1−1). RN
the diagonal matrix RN
the diagonal matrix RN
where
Q2 is a preset value, Q2 is a positive integer, q2 is a fourth codebook parameter, the fourth codebook parameter is a variable, q2 is an integer, and −(Q2−1)≤q2≤(Q2−1).
In some implementations, functions of O1 and O2 may be understood as over-sampling. The first codebook parameter ki and the second codebook parameter k2 may be used to set column vectors in the generated basic codebook B orthogonal to each other. N1 and N2 may be used to represent a quantity of array element groups 302 in each row (or column) of array element groups 302 in the antenna array 300 and a quantity of array element groups 302 in each column (or row) of array element groups 302 in the antenna array 300. Q1, Q2, the third codebook parameter q1, and the fourth codebook parameter q2 may be used to set a polarization phase of an array element in the array element group 302.
It can be understood that, if the method 200 shown in
It can be understood, for any one of the foregoing first basic codebook to fifth basic codebook, when a quantity of elements of a column vector of the basic codebook is an even number, the column vector of the basic codebook may be represented in the following form:
In this case, when a component matrix is determined based on any one of the foregoing first basic codebook to fifth basic codebook, selection of the component matrix may be further optimized. For example, a constraint condition may be set for the component matrix, and the constraint condition may be, for example without limitation to, the following constraint conditions:
When a quantity of column vectors of the component matrix is an even number, if
is a column vector of the component matrix,
is also a column vector of the component matrix.
When the quantity of column vectors of the component matrix is greater than 1 and is an odd number, other column vectors than one of the column vectors meets the following condition, to be specific, if
is a column vector of the component matrix,
is also a column vector of the component matrix.
For example, if the component matrix includes two column vectors, based on the foregoing constraint condition, the component matrix may be expressed as:
If the component matrix includes three column vectors, based on the foregoing constraint condition, the component matrix may be expressed as, for example without limitation to:
where
a specific location of each column vector in the component matrix is not limited to the foregoing location.
If the component matrix includes four column vectors, based on the foregoing constraint condition, the component matrix may be expressed as, for example without limitation to:
where
a specific location of each column vector in the component matrix is not limited to the foregoing location.
It should be noted that in a specific implementation process, if a codebook parameter or a codebook parameter group needs to be indicated, the codebook parameter or the codebook parameter group may be indicated by using an index of the codebook parameter or an index of the codebook parameter group. In addition, in a specific implementation process, the transmit end device and the receive end device may determine a codebook parameter or a codebook parameter group through negotiation in advance. Alternatively, either of the transmit end device and the receive end device may further indicate a codebook parameter or a codebook parameter group to a peer device. Alternatively, a codebook parameter or a codebook parameter group may be preset when a communications system is designed. In this way, the receive end device may determine, in advance, a basic codebook used to determine a component matrix and a weight of the component matrix. In this case, when determined component matrices are from one basic codebook, during indication of the component matrices and weights of the component matrices, the receive end device may not need to indicate a codebook parameter or a codebook parameter group. Even if determined component matrices are from a plurality of basic codebooks, during indication of the component matrices and weights of the component matrices, the receive end device may explicitly or implicitly indicate a codebook parameter or a codebook parameter group by using an index of the codebook parameter or an index of the codebook parameter group or based on a preset order of the component matrices. It can be learned that, when a component matrix and a weight of the component matrix are indicated, a codebook parameter or a codebook parameter group are not necessarily indicated. It is not difficult to understand that, to reduce processing and feedback overheads, in a specific implementation process, all component matrices and weights of these component matrices may be determined based on only one basic codebook.
For each basic codebook described above, in some implementations, a corresponding coefficient may be further set for at least one composition matrix (for example without limitation to a DFT matrix and a diagonal matrix) in at least one block matrix in the basic codebook, and a specific value of the coefficient may be set based on a requirement. In addition, in some implementations, a proper coefficient may be further set for at least one block matrix in the basic codebook based on a specific requirement.
In this embodiment of the present invention, a basic codebook is constructed based on a plurality of parameters, so that the basic codebook can be used to more accurately describe a channel environment. In this way, a precoding matrix determined based on the basic codebook provided in this embodiment of the present invention may more accurately match a channel, thereby improving a precoding effect.
Step 402: Receive a precoding matrix indicator, where the precoding matrix indicator is used to indicate a plurality of component matrices of an ideal precoding matrix and a weight of each component matrix that are determined based on at least one basic codebook, a dimension of each component matrix is the same as a dimension of the ideal precoding matrix, and a column vector of each component matrix is selected from column vectors of one of the at least one basic codebook.
Step 404: Determine the ideal precoding matrix based on the plurality of component matrices and the weight of each component matrix.
In some implementations, the ideal precoding matrix may be determined by performing weighted summation on the plurality of component matrices based on the respective weights of these component matrices.
Specific technical content in the method 400 has been described above with reference to the method 200 and the antenna array 300. Therefore, details are not described herein again.
The determining module 502 is configured to determine a plurality of component matrices of an ideal precoding matrix and a weight of each component matrix based on at least one basic codebook, where a dimension of each component matrix is the same as a dimension of the ideal precoding matrix, and a column vector of each component matrix is selected from column vectors of one of the at least one basic codebook.
The sending module 504 is configured to send a precoding matrix indicator, where the precoding matrix indicator is used to indicate the plurality of component matrices and the weight of each component matrix.
The receive end device 500 is used to perform the foregoing method 200. Related technical content has been clearly described above with reference to the method 200 and the antenna array 300. Therefore, details are not described herein again.
The receiving module 602 is configured to receive a precoding matrix indicator, where the precoding matrix indicator is used to indicate a plurality of component matrices of an ideal precoding matrix and a weight of each component matrix that are determined based on at least one basic codebook, a dimension of each component matrix is the same as a dimension of the ideal precoding matrix, and a column vector of each component matrix is selected from column vectors of one of the at least one basic codebook.
The determining module 604 is configured to determine the ideal precoding matrix based on the plurality of component matrices and the weight of each component matrix.
In one implementation process, the determining module 604 may determine the ideal precoding matrix by performing weighted summation on the plurality of component matrices based on the respective weights of these component matrices.
The transmit end device 600 is used to perform the method 400. Related technical content has been clearly described above with reference to the method 200, the antenna array 300, and the method 400. Therefore, details are not described herein again.
The processor 702 may be a general purpose processor, for example without limitation to, a central processing unit (Central Processing Unit, CPU), or may be a dedicated processor, for example without limitation to, a digital signal processor (Digital Signal Processor, DSP), an application-specific integrated circuit (Application-Specific Integrated Circuit, ASIC), or a field programmable gate array (Field Programmable Gate Array, FPGA). In addition, the processor 702 may alternatively be a combination of a plurality of processors. Specially, in the technical solutions provided in this embodiment of the present invention, the processor 702 may be configured to perform, for example, step 202 in the method 200 shown in
The transceiver 704 includes the transmitter 7042 and the receiver 7044. The transmitter 7042 is configured to send a signal by using at least one of the plurality of antennas 706. The receiver 7044 is configured to receive a signal by using at least one of the plurality of antennas 706. Specially, in the technical solution provided in this embodiment of the present invention, by using at least one of the plurality of antennas 706, the transmitter 7042 may be specifically configured to perform, for example, step 204 in the method 200 shown in
The memory 708 may be storage media of a plurality of types, for example, a random access memory (Random Access Memory, RAM), a read-only memory (Read-Only Memory,
ROM), a non-volatile RAM (Non-volatile RAM, NVRAM), a programmable ROM (Programmable ROM, PROM), an erasable PROM (Erasable PROM, EPROM), an electrically erasable PROM (Electrically Erasable PROM, EEPROM), a flash memory, an optical memory, and a register. The memory 708 is specifically configured to store the instruction 7082 and the data 7084. The processor 702 may perform the foregoing steps and/or operations by reading and executing the instruction 7082 stored in the memory 708, and may need to use the data 7084 in the process of performing the foregoing operations and/or steps.
The I/O interface 710 is configured to: receive an instruction and/or data from a peripheral device, and output an instruction and/or data to the peripheral device.
It should be noted that in a specific implementation process, the communications device 700 may further include other hardware components that are not enumerated in this specification.
The processor 802 may be a general purpose processor, for example without limitation to, a central processing unit (Central Processing Unit, CPU), or may be a dedicated processor, for example without limitation to, a digital signal processor (Digital Signal Processor, DSP), an application-specific integrated circuit (Application-Specific Integrated Circuit, ASIC), or a field programmable gate array (Field Programmable Gate Array, FPGA). In addition, the processor 802 may alternatively be a combination of a plurality of processors. Specially, in the technical solution provided in this embodiment of the present invention, the processor 802 may be configured to perform, for example, step 404 in the method 400 shown in
The transceiver 804 includes the transmitter 8042 and the receiver 8044. The transmitter 8042 is configured to send a signal by using at least one of the plurality of antennas 806. The receiver 8044 is configured to receive a signal by using at least one of the plurality of antennas 806. Specially, in the technical solution provided in this embodiment of the present invention, by using at least one of the plurality of antennas 806, the receiver 8044 may be specifically configured to perform, for example, step 402 in the method 400 shown in
The memory 808 may be storage media of a plurality of types, for example, a random access memory (Random Access Memory, RAM), a read-only memory (Read-Only Memory, ROM), a non-volatile RAM (Non-volatile RAM, NVRAM), a programmable ROM (Programmable ROM, PROM), an erasable PROM (Erasable PROM, EPROM), an electrically erasable PROM
(Electrically Erasable PROM, EEPROM), a flash memory, an optical memory, and a register. The memory 808 is specifically configured to store the instruction 8082 and the data 8084. The processor 802 may perform the foregoing steps and/or operations by reading and executing the instruction 8082 stored in the memory 808, and may need to use the data 8084 in the process of performing the foregoing operations and/or steps.
The I/O interface 810 is configured to: receive an instruction and/or data from a peripheral device, and output an instruction and/or data to the peripheral device.
It should be noted that in a specific implementation process, the communications device 800 may further include other hardware components that are not enumerated in this specification.
A person of ordinary skill in the art may understand that all or some of the steps of the foregoing methods may be implemented by a program instructing related hardware. The program may be stored in a computer readable storage medium. The computer readable storage medium is a ROM, a RAM, an optical disc, or the like.
To sum up, the foregoing descriptions are merely embodiments of the present invention, but are not intended to limit the protection scope of the present invention. Any modification, equivalent replacement, or improvement made without departing from the spirit and principle of the present invention shall fall within the protection scope of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
201710007897.4 | Jan 2017 | CN | national |
This application is a continuation of International Application No. PCT/CN2018/071463, filed on Jan. 4, 2018, which claims priority to Chinese Patent Application No. 201710007897.4, filed on Jan. 5, 2017. The disclosures of the aforementioned applications are hereby incorporated by reference in their entireties.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2018/071463 | Jan 2018 | US |
Child | 16503598 | US |