Codebook selection for transmit beamforming
A method selects a codebook for transmit beamforming. The method constructs an estimated channel matrix based on a codebook, selects a channel submatrix from the estimated channel matrix, calculates a selection matrix from the channel submatrix; and assigns a steering matrix based on the selection matrix. The method may construct an estimated channel matrix, select a channel submatrix, and calculate a selection matrix for each of multiple codebooks, then select an optimal codebook. The steering matrix is assigned based on the optimal codebook. The steering matrix may be used in steering a transmitted packet. The method may also calculate a post-MIMO equalizer signal-to-noise ratio for a data stream, based on the estimated channel matrix and the selected codebook. A related system is also disclosed. Other embodiments are provided, and each of the embodiments described herein can be used alone or in combination with one another.
1. A method for selecting a codebook, the method comprising:
receiving from a beamformer in a multiple-input multiple-output (MIMO) system, with a beamformee in the MIMO system using explicit transmit beamforming, channel state information and a sounding spatial mapping matrix set to a codebook, the codebook used to assign a steering matrix for the explicit transmit beamforming;
constructing, with at least one controller, an estimated channel matrix based on the channel state information and the sounding spatial mapping matrix set to the codebook received from the beamformer; and
sending, with the at least one controller, the estimated channel matrix or information based on the estimated channel matrix to the beamformer in order for the beamformer to assign a steering matrix based on the estimated channel matrix.
2. The method of claim 1 , wherein the at least one controller comprises at least one beamformer controller at the beamformer and at least one beamformee controller at the beamformee,
wherein constructing the estimated channel matrix comprises constructing, with the at least one beamformee controller, the estimated channel matrix, and wherein the method further comprises:
assigning, with the at least one beamformer controller, the steering matrix based on the estimated channel matrix.
3. The method of claim 1 , further comprising:
selecting, with the at least one controller, a channel submatrix from the estimated channel matrix; and
calculating, with the at least one controller, a selection matrix from the channel submatrix,
wherein assigning the steering matrix is based on calculating the selection matrix from the channel submatrix.
4. The method of claim 3 , wherein the at least one controller comprises at least one beamformer controller at the beamformer and at least one beamformee controller at the beamformee,
wherein, when the MIMO system uses explicit transmit beamforming with channel state information feedback, the method further comprises:
receiving, with the at least one beamformer controller, the estimated channel matrix from the beamformee,
wherein, selecting the channel submatrix comprises selecting, with the at least one beamformer controller, the channel submatrix from the estimated channel matrix, and
wherein calculating the selection matrix comprises calculating, with the at least one beamformer controller, the selection matrix from the channel submatrix; and
wherein, when the MIMO system uses explicit transmit beamforming with steering matrix feedback, the method further comprises:
sending, with the at least one beamformee controller, the selection matrix to the beamformer, the information based on the estimated channel matrix comprising the selection matrix;
wherein selecting the channel submatrix comprises selecting, with the at least one beamformee controller, the channel submatrix from the estimated channel matrix, and
wherein calculating the selection matrix comprises calculating, with the at least one beamformee controller, the selection matrix from the channel submatrix.
5. The method of claim 1 , wherein the codebook comprises one of a plurality of codebooks,
the method further comprising selecting, with the at least one controller, an optimal codebook based on a criterion from the plurality of codebooks,
wherein the steering matrix is assigned based on the optimal codebook.
6. The method of claim 1 , further comprising:
transmitting, with the at least one controller, a steered packet based on the assigned steering matrix.
7. The method of claim 1 , wherein receiving the channel state information and the sounding spatial mapping matrix set to a codebook comprises receiving, with the beamformee, the channel state information multiplied by the sounding spatial mapping matrix.
8. The method of claim 1 , wherein the at least one controller comprises at least one beamformer controller at the beamformer, and wherein when the MIMO system uses implicit transmit beamforming, the method further comprises:
receiving, with the at least one beamformer controller, a sounding packet from beamformee;
calculating, with the at least one beamformer controller, an estimated reverse link channel matrix based on the received sounding packet;
transposing, with the at least one beamformer controller, the estimated reverse link channel matrix to form an estimated forward link channel matrix; and
calculating, with the at least one beamformer controller, an estimated composite channel matrix by multiplying the estimated forward link channel matrix and the codebook matrix.
9. The method of claim 1 , further comprising:
selecting, with the at least one controller, a column of the estimated channel matrix;
calculating, with the at least one controller, a post-MIMO equalizer (MEQ) signal-to-noise ratio (SNR) for a data stream based on the selected column of the estimated channel matrix and the codebook;
selecting, with the at least one controller, a modulation and coding scheme (MCS) based on the post-MEQ SNR;
generating, with the at least one controller, a selection value corresponding to the selected MCS; and
applying, with the at least one controller, the selected MCS and the selection value to a steered packet.
10. The method of claim 9 , wherein the data stream comprises a plurality of data streams,
wherein calculating the post-MEQ SNR comprises calculating, with the at least one controller, the post-MEQ SNR for each of the plurality of data streams, and
wherein selecting the MCS comprises selecting, with the at least one controller, an optimal MCS based on the post-MEQ SNR for each of the plurality of data streams.
11. A multiple-input multiple-output (MIMO) system comprising:
a beamformee comprising a beamformee controller;
wherein when the MIMO system is configured for explicit transmit beamforming, the beamformee controller is configured to:
receive, from a beamformer in the MIMO system, channel state information and a sounding spatial mapping matrix set to a codebook, the codebook used to assign a steering matrix for the explicit transmit beamforming;
construct an estimated channel matrix based on the channel state information and the sounding spatial mapping matrix set to the codebook received from the beamformer; and
send the estimated channel matrix or information based on the estimated channel matrix to the beamformer in order for the beamformer to assign a steering matrix based on the estimated channel matrix.
12. The MIMO system of claim 11 , further comprising the beamformer comprising a beamformer controller,
wherein, when the MIMO system is configured to use explicit transmit beamforming with channel state information feedback, the beamformer controller is configured to:
receive the estimated channel matrix from the beamformee;
select a channel submatrix from the estimated channel matrix; and
calculate a selection matrix from the channel submatrix; and
wherein, when the MIMO system is configured to use explicit transmit beamforming with steering matrix feedback, the beamformee controller is further configured to:
select the channel submatrix from the estimated channel matrix;
calculate the selection matrix from the channel submatrix; and
send the selection matrix to the beamformer.
13. The MIMO system of claim 12 , wherein when the MIMO system uses explicit transmit beamforming with steering matrix feedback and the codebook comprises only one codebook, the selection matrix comprises 0 and 1 elements.
14. The MIMO system of claim 11 , wherein the codebook comprises one of a plurality of codebooks, and wherein the beamformee controller is further configured to:
select an optimal codebook based on a criterion from the plurality of codebooks; and
determine the information to send to the beamformer based on the optimal codebook.
15. The MIMO system of claim 11 , further comprising the beamformer comprising a beamformer controller, wherein the beamformer controller is configured to transmit a steered packet based on the assigned steering matrix.
16. The MIMO system of claim 11 , wherein the beamformee controller is further configured to receive the channel state information multiplied by the sounding spatial mapping matrix from the beamformer.
17. The MIMO system of claim 11 , further comprising the beamformer comprising a beamformer controller, wherein the MIMO system is further configured to use implicit beamforming, and when the MIMO system uses implicit beamforming, the beamformer controller is configured to:
receive a sounding packet from the beamformee;
calculate an estimated reverse link channel matrix based on the received sounding packet;
transpose the estimated reverse link channel matrix to form an estimated forward link channel matrix; and
calculate an estimated composite channel matrix by multiplication of the estimated forward link channel matrix and the codebook matrix.
18. The MIMO system of claim 11 , further comprising the beamformer comprising a beamformer controller, wherein at least one of the beamformer controller or the beamformee controller is further configured to:
select a column of the estimated channel matrix;
calculate a post-MIMO equalizer (MEQ) signal-to-noise ratio (SNR) for a data stream based on selected column of the estimated channel matrix and the codebook;
select a modulation and coding scheme (MCS) based on the post-MEQ SNR;
generate a selection value corresponding to the selected MCS; and
apply the selected MCS and the selection value to a steered packet.
19. The MIMO system of claim 18 , wherein the data stream comprises a plurality of data streams, and wherein the beamformer controller or the beamformee controller is further configured to:
calculate the post-MEQ SNR for each of the plurality of data streams, and
select the MCS based on the post-MEQ SNR for each of the plurality of data streams.
20. The MIMO system of claim 11 , wherein the beamformee further comprises a memory configured to store the estimated channel matrix.