Embodiments of the present invention relate to the precoding technologies, and in particular, to a precoding vector indicating method, a precoding vector determining method, a receive end device, and a transmit end device.
Emergence of a 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 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 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 based on a codebook and fed back to the transmit end device. The codebook is a set of a series of candidate vectors, and in the codebook, one candidate vector that most matches a channel, or a weighted sum of a plurality of candidate vectors, may be used as a precoding vector. However, a real channel environment is very complex, and a channel environment cannot be accurately described based on an existing codebook. Consequently, a precoding vector determined based on the existing codebook can only roughly match a channel, and a precoding effect is limited. It can be learned that a codebook may be required to more accurately describe a channel environment.
In view of the above, it is necessary to provide a precoding vector indicating method, to improve a precoding effect. A precoding vector determining method is also provided, to improve a precoding effect. A receive end device is also provided, to improve a precoding effect. A transmit end device is also provided, to improve a precoding effect.
According to a first aspect of the present invention, a precoding vector indicating method is provided, and the precoding vector indicating method includes:
determining a plurality of component vectors of an ideal precoding vector and a weight of each component vector based on at least one basic codebook, where each component vector is a column vector of one of the at least one basic codebook; and sending a precoding vector indicator, where the precoding vector indicator is used to indicate the plurality of component vectors and the weight of each component vector.
According to a second aspect of the present invention, a precoding vector determining method is provided, and the precoding vector determining method includes:
receiving a precoding vector indicator, where the precoding vector indicator is used to indicate a plurality of component vectors of an ideal precoding vector and a weight of each component vector that are determined based on at least one basic codebook, and each component vector is a column vector of one of the at least one basic codebook; and determining the ideal precoding vector based on the plurality of component vectors and the weight of each component vector.
According to a third aspect 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 vectors of an ideal precoding vector and a weight of each component vector based on at least one basic codebook, where each component vector is a column vector of one of the at least one basic codebook; and a sending module, configured to send a precoding vector indicator, where the precoding vector indicator is used to indicate the plurality of component vectors and the weight of each component vector.
According to a fourth aspect of the present invention, a transmit end device is provided, and the transmit end device includes:
a receiving module, configured to receive a precoding vector indicator, where the precoding vector indicator is used to indicate a plurality of component vectors of an ideal precoding vector and a weight of each component vector that are determined based on at least one basic codebook, and each component vector is a column vector of one of the at least one basic codebook;
and a determining module, configured to determine the ideal precoding vector based on the plurality of component vectors and the weight of each component vector.
In one embodiment, the at least one basic codebook is one basic codebook.
In one embodiment, 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
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 one embodiment, 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
or
if
the diagonal matrix LN
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
or
if
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 one embodiment, 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
if
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
or
if
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
or
if
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
or
if
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 one embodiment, the basic codebook is:
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
or
if
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
or
if
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
or
if
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
or
if
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
or
if
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
or
if
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 one embodiment, the basic codebook is:
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
or
if
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
or
if
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
or
if
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
or
if
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 one embodiment, for any one of the foregoing basic codebooks, an additional coefficient is configured for at least one block matrix in the basic codebook.
In one embodiment 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 the technical solutions provided in embodiments 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 vector determined based on the basic codebook provided in the embodiments of the present invention can more accurately match a channel, thereby improving a precoding effect.
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. Specifically, 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 NodeBan evolved NodeB (eNodeB), an 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 a micro base station for providing a micro cell), a femto base station for providing a 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 (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 (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 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 (SU-MIMO) technology but also a multi-user MIMO (MU-MIMO) technology. The MU-MIMO technology may be implemented based on a 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 (SISO) technology, a single-input multiple-output (SIMO) technology, and a 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 (TD) technology and a receive diversity (RD) technology. The multiplexing technology may be a 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 (STTD), space-frequency transmit diversity (SFTD), time switched transmit diversity (TSTD), frequency switched transmit diversity (FSTD), orthogonal transmit diversity (OTD), and 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 (STBC), space frequency block coding (SFBC), and CDD are used in an LTE 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 (TDMA) technology, a Frequency Division Multiple Access (FDMA) technology, a Code Division Multiple Access (CDMA) technology, a Time Division-Synchronous Code Division Multiple Access (TD-SCDMA) technology, an orthogonal frequency division multiple access (OFDMA) technology, a single carrier frequency division multiple access (SC-FDMA) technology, and a space division multiple access (SDMA) technology, and evolved and derived technologies of these technologies. As a 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 (GSM), CDMA2000, Wideband CDMA (WCDMA), Wi-Fi defined in the 802.11 series of standards, Worldwide Interoperability for Microwave Access (WiMAX), Long Term Evolution (LTE), 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
In operation 202, a plurality of component vectors of an ideal precoding vector and a weight of each component vector are determined based on at least one basic codebook, where each component vector is a column vector of one of the at least one basic codebook.
In operation 204, a precoding vector indicator is sent, where the precoding vector indicator is used to indicate the plurality of component vectors and the weight of each component vector.
In a specific implementation process, the foregoing ideal precoding vector may be obtained by using a plurality of methods, and ideal precoding vectors obtained by using different methods may be different. For example, the foregoing ideal precoding vector may be obtained by performing singular value decomposition (SVD) on a channel matrix. Specifically, singular value decomposition 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 an ideal precoding matrix, and a column vector of the ideal precoding matrix may be used as the ideal precoding vector. 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 vector and a method for obtaining the specific value of the ideal precoding vector may be determined based on an overall requirement of a system design. Technical details about the ideal precoding vector have been clearly described in the prior art, and therefore are not described herein.
After the foregoing ideal precoding vector is obtained, the ideal precoding vector may be approximately represented in a form of a weighted sum of the plurality of component vectors:
P represents an ideal precoding vector, b, represents a component vector i, and a represents a weight of the component vector i. In a specific implementation process, a quantity m (m is a positive integer) of component vectors may be set based on a specific requirement (for example without limitation to an accuracy requirement). For example, the quantity of component vectors may be a preset quantity.
A component vector 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 some of these column vectors may be selected as component vectors. There are many methods for selecting a component vector, and a proper method may be selected based on a specific requirement. For example, a component vector may be determined from a plurality of column vectors based on a degree at which a column vector of the basic codebook matrix approximates to the ideal precoding vector, where a plurality of column vectors that most approximate to the ideal precoding vector may be selected as component vectors. In a specific implementation process, the foregoing approximate degree may be specifically expressed as, for example without limitation to, an inner product of the column vector of the basic codebook matrix and the ideal precoding vector or a Euclidean distance between the column vector of the basic codebook matrix and the ideal precoding vector. The inner product is used as an example. When a component vector is determined, a plurality of column vectors may be used as component vectors if inner products of the plurality of column vectors and the ideal precoding vector are greatest. When there are a plurality of basic codebook matrices, the foregoing plurality of column vectors may belong to different basic codebooks. In addition, an inner product of each component vector and the ideal precoding vector may be further used as a weight of the component vector. A method for determining a component vector and a weight of the component vector has been clearly described in the prior art. Details are not described in this specification.
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 vector 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
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 a specific implementation process, 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
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
or
if
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
or
if
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 a specific implementation process, 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≤m≤N−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
or
if
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
or
if
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
or
if
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
or
if
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 a specific implementation process, 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 is not difficult to understand 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 0n1≤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
or
if
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≤k≤O1−1. LN
the diagonal matrix LN
or
if
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
or
if
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
or
if
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
or
if
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
or
if
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 a specific implementation process, 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 is not difficult to understand 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
or
if
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≤k≤O1−1. LN
the diagonal matrix LN
or
if
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
or
if
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
or
if
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 a specific implementation process, 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 is not difficult to understand that, if the method 200 shown in
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, a 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 vector and a weight of the component vector. In this case, when determined component vectors are from one basic codebook, during indication of the component vectors and weights of the component vectors, the receive end device may not need to indicate a codebook parameter or a codebook parameter group. Even if determined component vectors are from a plurality of basic codebooks, during indication of the component vectors and weights of the component vectors, 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 vectors. It can be learned that, when a component vector and a weight of the component vector 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 vectors and weights of these component vectors may be determined based on only one basic codebook. The component vector may be indicated by using the index of the component vector. In addition, the component vector may be further indicated in a plurality of other manners. For example without limitation, the component vector may be directly indicated.
In addition, in a specific implementation process, to reduce overheads generated by indicating the weight of the component vector, the weight may be quantized. In this case, the weight determined and indicated in the method 200 shown in
For each basic codebook described above, in a specific implementation process, 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 a specific implementation process, a proper coefficient may be further set for at least one block matrix in the basic codebook based on a specific requirement.
It should be noted that in a specific implementation process, a determining and indicating period of the component vector 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 vector 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 vector 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 vector and the weight of the component vector 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 the technical solution provided in this embodiment of the present invention, for manners of determining and indicating the component vector, 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 these manners of determining and indicating are also included in the method 200.
In the technical solution provided 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 vector determined based on the basic codebook provided in this embodiment of the present invention can more accurately match a channel, thereby improving a precoding effect.
It should be noted that in some cases, an ideal precoding vector that is approximately represented by a weighted sum of a plurality of component vectors may need to be reconstructed before being used for precoding. For example, in an MU-MIMO scenario, the transmit end device needs to perform a reconstruction operation based on the foregoing ideal precoding vector approximately represented by a plurality of receive end devices that are simultaneously scheduled, to obtain a precoding vector 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 (ZF) algorithm, a minimum mean square error (MMSE) algorithm, and a block diagonalization (BD) algorithm.
In operation 402, a precoding vector indicator is received, where the precoding vector indicator is used to indicate a plurality of component vectors of an ideal precoding vector and a weight of each component vector that are determined based on at least one basic codebook, and where each component vector is a column vector of one of the at least one basic codebook.
In operation 404, the ideal precoding vector is determined based on the plurality of component vectors and the weight of each component vector.
In a specific implementation process, the ideal precoding vector may be determined by performing weighted summation on the plurality of component vectors based on the respective weights of these component vectors.
Specific technical content in the method 400 has been clearly 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 vectors of an ideal precoding vector and a weight of each component vector based on at least one basic codebook, where each component vector is a column vector of one of the at least one basic codebook.
The sending module 504 is configured to send a precoding vector indicator, where the precoding vector indicator is used to indicate the plurality of component vectors and the weight of each component vector.
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 vector indicator, where the precoding vector indicator is used to indicate a plurality of component vectors of an ideal precoding vector and a weight of each component vector that are determined based on at least one basic codebook, and each component vector is a column vector of one of the at least one basic codebook.
The determining module 604 is configured to determine the ideal precoding vector based on the plurality of component vectors and the weight of each component vector.
In a specific implementation process, the determining module 604 may determine the ideal precoding vector by performing weighted summation on the plurality of component vectors based on the respective weights of these component vectors.
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 (CPU), or may be a dedicated processor, for example without limitation to, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), or a field programmable gate array (FPGA). In addition, the processor 702 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 702 may be configured to perform, for example, operation 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, operation 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 (RAM), a read-only memory (ROM), a non-volatile RAM (NVRAM), a programmable ROM (PROM), an erasable PROM (EPROM), an 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 CPU, or may be a dedicated processor, for example without limitation to, a DSP, an ASIC, or a field 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, operation 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, operation 402 in the method 400 shown in
The memory 808 may be storage media of a plurality of types, for example, a RAM, a ROM, a NVRAM, a PROM, an EPROM, an 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 and/operations 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 |
---|---|---|---|
201710008458.5 | Jan 2017 | CN | national |
This application is a continuation of International Application No. PCT/CN2018/071459, filed on Jan. 4, 2018, which claims priority to Chinese Patent Application No. 201710008458.5, filed on Jan. 5, 2017. The disclosures of the aforementioned applications are herein incorporated by reference in their entireties.
Number | Name | Date | Kind |
---|---|---|---|
8755451 | Jung | Jun 2014 | B2 |
9312937 | Ko et al. | Apr 2016 | B2 |
20070297529 | Zhou | Dec 2007 | A1 |
20090274227 | Kim et al. | Nov 2009 | A1 |
20100150267 | Zangi | Jun 2010 | A1 |
20120113830 | Zhu et al. | May 2012 | A1 |
20120257683 | Schwager | Oct 2012 | A1 |
20140133317 | Chen | May 2014 | A1 |
20150207547 | Ko | Jul 2015 | A1 |
20160142117 | Rahman et al. | May 2016 | A1 |
20170222699 | Scherb | Aug 2017 | A1 |
20180212656 | Zhao et al. | Jul 2018 | A1 |
20180241457 | Lee | Aug 2018 | A1 |
20180324730 | Lee | Nov 2018 | A1 |
20190089428 | Bethanabhotla | Mar 2019 | A1 |
Number | Date | Country |
---|---|---|
102246480 | Nov 2011 | CN |
102571295 | Jul 2012 | CN |
103780331 | May 2014 | CN |
103795450 | May 2014 | CN |
105009492 | Oct 2015 | CN |
106160926 | Nov 2016 | CN |
106301506 | Jan 2017 | CN |
101467839 | Dec 2014 | KR |
Entry |
---|
Ricardo Blasco-Serrano et al., “Polar Codes for Cooperative Relaying”,IEEE Transactions on Communications, vol. 60, No. 11, Nov. 2012,total 11 pages. |
Erdal Arikan, “Channel Polarization: A Method for Constructing Capacity-Achieving Codes for Symmetric Binary-Input Memoryless Channels”,IEEE Transactions on Information Theory, vol. 55, No. 7, Jul. 2009,total 23 pages. |
Xinwei, “Advanced CSI feedback and simulation results”,3GPP TSG RAN WG1 Meeting #86 R1-166581, Gothenburg, Sweden, Aug. 22-26, 2016, Total 5 Pages. |
Number | Date | Country | |
---|---|---|---|
20190326962 A1 | Oct 2019 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2018/071459 | Jan 2018 | US |
Child | 16459581 | US |