# Patent

## Title
Variable codebook for MIMO system

## Abstract

A MIMO wireless communication system employing a variable size preceding codebook is provided. The size of the codebook may be determined by the quality of the wireless transmission channel between a transmitter and a receiver associated with the MIMO wireless communication systems or some other codebook selection criteria. A larger codebook can be employed when the channel quality is high, allowing for significant gains in overall system throughput. In contrast, a smaller codebook can be employed when the cannel quality is poor, so that the added channel overhead associated with a larger code book does not reduce the channel efficiency under circumstances in which a larger codebook would not significantly improve system throughput.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
This is a regular-filed application which is based on and claims priority to U.S. Provisional Patent Application Ser. No. 60/896,374, entitled “Variable Codebook for MIMO System,” which was filed on Mar. 22, 2007, the entire disclosure of which is hereby incorporated by reference herein.


FIELD OF TECHNOLOGY
The present disclosure relates generally to wireless communication systems and, more particularly, to a system and method for precoding wireless transmissions using a variable size codebook.
BACKGROUND
An ever-increasing number of relatively cheap, low power wireless data communication services, networks and devices have been made available over the past number of years, promising near wire speed transmission and reliability. Various wireless technologies are described in detail in the 802.11 IEEE Standard, including for example, the IEEE Standard 802.11a (1999) and its updates and amendments, the IEEE Standard 802.11g (2003), 3GPP LTE, as well as the IEEE Standard 802.11n now in the process of being adopted, all of which are collectively incorporated herein fully by reference. These standards have been or are in the process of being commercialized with the promise of 54 Mbps or more effective throughput such as 100 Mbps, making them a strong competitor to traditional wired Ethernet and the more ubiquitous “802.11b” or “WiFi” 11 Mbps mobile wireless transmission standard.
In general, transmission systems compliant with the IEEE 802.11a and 802.11g or “802.11a/g,” 802.16 or 3GPP LTE, as well as the 802.11n standards achieve high data transmission rates using Orthogonal Frequency Division Modulation or OFDM encoded symbols and using quadrature amplitude modulation (QAM) on the OFDM sub-bands. In a general sense, the use of OFDM divides the overall system bandwidth into a number of frequency sub-bands or channels, with each frequency sub-band being associated with a respective sub-carrier upon which data may be modulated. Thus, each frequency sub-band of the OFDM system may be viewed as an independent transmission channel within which to send data, thereby increasing the overall throughput or transmission rate of the communication system.
Transmitters used in the wireless communication systems that are compliant with the 802.11a/802.11g/802.11n standards as well as other standards such as the 3GPP LTE and 802.16a IEEE Standard, typically perform multi-carrier OFDM symbol encoding (which may include error correction encoding and interleaving), convert the encoded symbols into the time domain using Inverse Fast Fourier Transform (IFFT) techniques, and perform digital to analog conversion and conventional radio frequency (RF) upconversion on the signals. These transmitters then transmit the modulated and upconverted signals after appropriate power amplification to one or more receivers, resulting in a relatively high-speed time domain signal with a large peak-to-average ratio (PAR).
Likewise, the receivers used in the wireless communication systems that are compliant with the 802.11a/802.11g/802.11n, 3GPP LTE and 802.16a IEEE standards typically include an RF receiving unit that performs RF downconversion and filtering of the received signals (which may be performed in one or more stages), and a baseband processor unit that processes the OFDM encoded symbols bearing the data of interest. The digital form of each OFDM symbol presented in the frequency domain is recovered after baseband downconverting, conventional analog to digital conversion and Fast Fourier Transformation of the received time domain signal. Thereafter, the baseband processor performs demodulation and frequency domain equalization (FEQ) to recover the transmitted symbols, and these symbols are then processed with an appropriate FEC decoder, e.g. a Viterbi decoder, to estimate or determine the most likely identity of the transmitted symbol. The recovered and recognized stream of symbols is then decoded, which may include deinterleaving and further error correction using any of a number of known error correction techniques, to produce a set of recovered signals corresponding to the original signals transmitted by the transmitter.
To further increase the number of signals which may be propagated in the communication system and/or to compensate for deleterious effects associated with the various propagation paths, and to thereby improve transmission performance, it is known to use multiple transmission and receive antennas within a wireless transmission system. Such a system is commonly referred to as a multiple-input, multiple-output (MIMO) wireless transmission system and is specifically provided for within the 3GPP LTE and the 802.11n IEEE Standard now being adopted. The use of MIMO technology produces significant increases in spectral efficiency, throughput, and link reliability. These benefits generally increase as the number of transmission and receive antennas included in the MIMO system increases.
In particular, in addition to the frequency channels created by the use of OFDM, a MIMO channel formed by the various transmission and receive antennas between a particular transmitter and a particular receiver includes a number of independent spatial channels. A wireless MIMO communication system can provide improved performance (e.g., increased transmission capacity) by utilizing the additional dimensionalities created by these spatial channels for the transmission of additional data. Of course, the spatial channels of a wideband MIMO system may experience different channel conditions (e.g., different fading and multi-path effects) across the overall system bandwidth and may therefore achieve different SNRs at different frequencies (i.e., at the different OFDM frequency sub-bands) of the overall system bandwidth. Consequently, the number of information bits per modulation symbol (i.e., the data rate) that may be transmitted using the different frequency sub-bands of each spatial channel for a particular level of performance may differ from frequency sub-band to frequency sub-band.
In MIMO wireless communication systems, the RF modulated signals transmitted by the transmit antennas may reach the various receive antennas via a number of different propagation paths, the characteristics of which typically change over time due to the phenomena of multi-path and fading. Moreover, the characteristics of the various propagation sub-channels differ or vary based on the frequency of propagation. To compensate for the time varying, frequency selective nature of these propagation effects, and generally to enhance effective encoding and modulation in a MIMO wireless communication system, and improve the overall system throughput, the receiver of the MIMO wireless communication system may periodically develop or collect channel state information (CSI) for the wireless channel between the transmitter and receiver. Generally, the wireless channel comprises a composite channel in which the effects of all combinations of transmit antennas and receive antennas are taken into account. A channel matrix may be created comprising a plurality of complex channel values representing the channel characteristics (for example, the gain, the phase and the SNR of each channel) between each transmit-receive antenna pair. Upon determining the CSI for the composite channel, the receiver may send the CSI, or other information derived from the CSI, back to the transmitter, which may use the CSI or other information derived from the CSI, to precondition or precode the signals transmitted over channel so as to compensate for the varying propagation effects of the channels.
A preceding matrix may be developed which when multiplied with the transmitted signal negates the propagation effects of the channel. However, because the propagation effects of the wireless channel vary over time, a single precoding matrix will only be sufficient to compensate for one set of channel characteristics. Separate preceding matrices must be developed to compensate for different sets of channel characteristics. A plurality of preceding matrices may be derived in advance in order to compensate for a range of different channel conditions. The plurality of preceding matrices may be assembled in a codebook which may be stored in a memory associated with the transmitter. Upon measuring the CSI, the receiver in a MIMO wireless communication system may determine which of the precoding matrices in the codebook is most appropriate to compensate for the measured CSI. The receiver may transmit a preceding matrix index or other identifier back to the transmitter specifying which precoding matrix in the codebook should be used to precode signals to be transmitted over the channel. The transmitter may then precode signals using the specified precoding matrix.
The size of the codebook, i.e. the number of precoding matrices included in the codebook, can have a significant impact on system throughput and overall channel efficiency. With a large codebook having many preceding matrices to choose from, it is possible to select a precoding matrix which closely matches (i.e. counteracts) the measured propagation effects of the channel. By accurately counter-acting the propagation effects of the channel system throughput can be significantly improved. However, a larger codebook requires a larger amount of data to be fed back from the receiver to the transmitter in order to identify a particular preceding matrix to be used for precoding transmitted signals. The additional feedback data required of a large codebook consumes additional channel overhead and has a negative impact on channel efficiency. Under certain conditions, such as a channel with a high SNR, the improved system throughput associated with a large codebook may be worth the cost in added overhead. In other cases, such as a poor quality channel with a low SNR, the improved system throughput, even with a large codebook, may not justify the cost in increased channel overhead. When designing a codebook for a MIMO wireless communication system there is a tension between creating a large codebook with the possibility of significant improvements in system throughput under favorable conditions and creating a smaller codebook which will consume less channel overhead, and will not diminish system throughput when channel conditions are less than ideal.
SUMMARY OF THE DISCLOSURE
The present disclosure generally relates to the use of a variable size codebook within a MIMO wireless communication system. The size of the codebook may be determined by the quality of the wireless transmission channel between the transmitter and receiver, for example, or some other codebook selection criteria. In some circumstances, it may be preferable to employ a larger codebook when the channel quality is high, allowing for significant gains in overall same system throughput. On the other hand, a smaller codebook may be preferable in circumstances when the channel quality is poor, so that the added channel overhead associated with a larger code book does not reduce the channel efficiency. For example, a smaller codebook may be preferable when a larger codebook would not significantly improve system throughput.
An embodiment provides a wireless transmission system. The wireless transmission system includes a base station and a terminal. The base station is adapted to transmit wireless signals to the terminal. A memory is associated with the base station. The memory stores a variable size codebook that includes a first plurality of preceding matrices. The preceding matrices included in the variable size codebook may be used for preceding wireless signals transmitted by the base station. The terminal is adapted to receive the wireless signals transmitted from the base station. Channel state measuring circuitry associated with the terminal is provided for measuring transmission conditions of the wireless communication channel formed between the base station and the terminal. The terminal includes a feedback transmitter for wirelessly transmitting channel state information from the terminal back to the base station. The base station includes a feedback receiver for receiving the channel state information fed back from the terminal. The base station selects a codebook size based on the channel state information and selects a preceding matrix from a codebook of the selected codebook size for preceding wireless signals to be transmitted from the base station to the receiver. The variable size codebook may comprise a second plurality of precoding matrices formed from a subset of the first plurality of preceding matrices included in the variable sized codebook. Alternatively, the variable sized codebook may comprise a plurality of fixed size codebooks containing different numbers of preceding matrices.
Another embodiment relates to a multiple-input-multiple-output (MIMO) wireless communication system that includes a base station adapted to transmit a plurality of wireless data streams. The base station includes a memory that stores a variable size codebook for preceding the data streams transmitted by the base station. The MIMO wireless communication system further includes a terminal adapted to receive wireless transmissions, including at least one of the plurality of data streams transmitted by the base station. The terminal includes channel state measuring circuitry for measuring channel state information relating to the wireless communication channel established between the base station and the terminal. The terminal further includes a feedback transmitter for wirelessly transmitting a feedback signal related to the channel state information back to the base station. The base station includes a feedback receiver for receiving the feedback signal transmitted from the terminal. The base station is adapted to select a codebook size and a preceding matrix from a codebook of the selected size based on the channel state information received by the feed back receiver.
A further embodiment provides a method of precoding a wireless transmission signal. The method includes measuring a characteristic of a wireless communication channel, selecting a codebook size based on the measured characteristic of the wireless communication channel, and precoding the wireless transmission signal using a preceding matrix included in a codebook of the selected size. The method may include providing a fixed size codebook having a plurality of preceding matrices, and creating a codebook of the selected codebook size from a subset of the preceding matrices found in the fixed size codebook. Alternatively, the method may include providing a plurality of fixed size codebooks of different sizes.
Yet another embodiment relates to a wireless transmitter employing a variable size preceding codebook. The transmitter includes a memory storing one or more preceding codebooks. The transmitter further includes a feedback receiver for receiving channel state information from a receiver. A codebook selector associated with the transmitter is adapted to select a codebook size base on channel state information received from the receiver. Finally, the transmitter includes a transmission signal precoder adapted to precode a wireless transmission signal using a preceding matrix from a codebook of the selected size.
Still another embodiment provides a wireless receiver for use in a MIMO wireless communication system employing a variable size precoding codebook. The receiver includes channel state measuring circuitry for generating channel state information describing the state of the channel. A codebook size selector is provided for selecting the size of a codebook to be used for preceding signals to be sent by a transmitter to the receiver over the wireless channel. The codebook size is selected based on the channel state information measured by the channel state measuring circuitry. Finally, the receiver includes a feedback transmitter for transmitting a codebook index or other codebook size indicator to the wireless transmitter. Upon receiving the codebook index or other codebook size indicator, the wireless transmitter may precode wireless transmissions directed toward the receiver using a preceding matrix included in a codebook of the selected size.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a wireless MIMO communication system that employs a variable size codebook for preceding wireless transmission signals.
FIG. 2 is a flow chart showing a method of selecting a codebook size and identifying a precoding matrix form within a codebook of the selected size based on codebook size and matrix selection criteria.
FIGS. 3A-3F illustrate examples of various different devices in which a wireless communication system implementing a variable size codebook described herein may be used.



DETAILED DESCRIPTION
The present disclosure generally relates to variable sized codebooks for use in precoding data streams to be transmitted in multiple-input-multiple-output (MIMO) wireless communication systems. The transmission characteristics of the wireless channel between the transmitter and receiver of a MIMO wireless communication system change over time. If the transmitter has a priori knowledge of the channel characteristics, signals may be preconditioned (precoded) to compensate in advance for the negative effects of transmitting the signals over the wireless channel. Under favorable conditions preceding signals in this manner can significantly improve channel throughput.
In a MIMO wireless communication system the communication channel may be represented as a matrix of complex channel values that represent the transmission effects of all combinations of the transmitting and receiving antennas. A preceding matrix may be derived which counteracts the negative effects of transmitting signals over the wireless communication channel. A signal may be multiplied by the preceding matrix before transmission over the wireless communication channel. Upon receiving such precoded signals the receiver has a much better chance of recovering the original signal, notwithstanding the negative effects of the wireless channel. Precoding signals in this manner can significantly improve system throughput.
Since the channel characteristics change over time, a finite number of precoding matrices may be derived in advance, each matrix adapted to compensate for a particular set of channel characteristics. The plurality of preceding matrices may be collected into a codebook and stored at the transmitter. Upon measuring the existing channel characteristics an appropriate preceding matrix may be selected from the codebook and applied to a signal before the signal is transmitted over the wireless communication channel.
Typically, channel state information (CSI) is calculated at the receiver based on a known signal transmitted from the transmitter to the receiver. The CSI is fed back to the transmitter and the transmitter chooses an appropriate preceding matrix for precoding subsequent signals from the codebook. Alternatively, the receiver may have knowledge of the codebook and the receiver itself may be adapted to select an appropriate preceding matrix from the codebook. In this case, the receiver feeds back a preceding matrix index or other identifier to the transmitter that specifies the appropriate preceding matrix for preceding signals to be sent from the transmitter to the receiver given the channel conditions observed by the receiver.
If the codebook is large, containing many different preceding matrices for addressing a large number of different channel conditions, a preceding matrix may be selected which is closely paired to the characteristics of the wireless channel in order to achieve the greatest possible improvement in system throughput. If the codebook is small, it will be less likely that the preceding matrix will precisely compensate for the negative effects of the channel characteristics. Therefore, with a smaller codebook the improvement in channel throughput may not be as dramatic as with a larger codebook. However, a larger codebook requires greater specificity to identify the appropriate precoding matrix for a given set of channel conditions. The greater specificity required of a larger codebook requires more data, either in the form of a longer matrix index identifier or more detailed CSI, to be fed back from the receiver to the transmitter than would otherwise be the case if a smaller codebook were employed. The additional channel overhead required of a larger codebook can reduce overall channel efficiency. Thus, there are tradeoffs that may be considered when selecting the size of the codebook.
Another factor to consider when selecting the size of the codebook is the state of the channel at the time the signals are transmitted. In some cases, for example when the channel exhibits a high signal to interference-plus-noise-ratio (SINR), accurate precoding of the signals may result in dramatically improved channel throughput. In other cases, such as when the SINR is low, preceding results may be marginal at best. When channel conditions warrant, it may be desirable to have a large codebook containing a large number of preceding matrices to choose from so that the maximum gains in channel throughput may be realized. On the other hand, when channel conditions are such that the positive effects of preceding will be limited, a smaller codebook with a more limited number of preceding matrices may be employed in order to reduce channel overhead.
Because of the increased cost in channel overhead associated with a larger codebook, a larger codebook may be more effective in situations in which the gain in channel throughput associated with the use of the larger codebook outweighs the cost in channel overhead. In other cases a smaller codebook may be more appropriate. Because the wireless channel conditions change over time, there may be times when a larger codebook is more beneficial and other times when a smaller codebook is more appropriate. Unfortunately, the channel conditions typically cannot be known in advance. It is difficult to determine whether the improved system performance associated with a large codebook will justify the cost in channel overhead, or whether a smaller codebook should be employed. A solution is to use a variable size codebook, employing a more limited set of preceding matrices when channel conditions are such that the expected gains in system throughput associated with the use of a larger codebook may not justify the cost in increased channel overhead, and expanding the selection of available precoding matrices (i.e., using a larger codebook) when the channel conditions are such that the expected gains in system throughput may exceed the penalty paid in additional overhead.
Referring now to FIG. 1, a MIMO communication system 10 is illustrated in block diagram form. The MIMO communication system 10 generally includes a single transmitter 12 having multiple transmission antennas 141-14N and a single receiver 16 having multiple receiver antennas 181-18M. In an embodiment of a MIMO wireless communication system the transmitter 12 may actually be a base station capable of both transmitting signals to one or more remote terminals. The receiver 16 may in turn be one such remote terminal, capable of receiving signals transmitted from the base station as well as transmitting signals back to the base station 12. Though both the base station and the terminal may be capable of both transmitting and receiving signals, the base station will be referred to herein as the transmitter 12 and the terminal will be referred to as the receiver 16. The number of transmission antennas 141-14N can be the same as, more than, or less than the number of receiver antennas 181-18M. As shown in FIG. 1, the transmitter 12 may include a controller 20 coupled to a memory 21, a symbol encoder/modulator unit 22, a precoding block 23, a space-time mapping block 24, and a codebook selection block 28. The transmitter 12 may also include a matrix equalizer 25 and a symbol demodulator and decoder unit 26 to perform demodulation and decoding of signals received via the antennas 141-14N in a receive mode.
The controller 20 may be any desired type of controller and the controller 20 and the codebook/matrix selection block 28 may be implemented as one or more standard multi-purpose, programmable processors, such as a general purpose micro-processor, a digital signal processor, an application specific integrated circuit (ASIC), etc., or may be implemented using any other desired types of hardware, software and/or firmware. Likewise, the precoding block 23, the space-time mapping block 24, and the matrix equalizer 25 may be implemented using known or standard hardware and/or software elements. If desired, various of the transmitter components, such as the controller 20, the symbol encoder/modulator unit 22, the symbol demodulator/decoder unit 26, the codebook/matrix selection block 28, the precoding block 23, the space-time mapping block 24 and the matrix equalizer 25 may be implemented in the same or in different hardware devices, such as in the same or different processors. Additionally, each of these components of the transmitter 12 may be disposed in a housing 29 (shown in dotted relief in FIG. 1) and the routines or instructions for implementing the functionality of any of these components may be stored in the memory 21 or within other memory devices associated with the individual hardware used to implement these components.
A variable size codebook may be stored in the memory 21. The variable-size codebook may be implemented in a number of different ways. For example, the variable size codebook may comprise a single fixed size codebook including a large number of pre-calculated precoding matrices. Smaller codebooks of differing sizes may be constructed from subsets of the plurality of precoding matrices found in the fixed size codebook. For example, a fixed size codebook having sixty-four preceding matrices may be stored in the memory 21. A second smaller codebook having only thirty-two precoding matrices may be created by selecting every other matrix found in the larger sixty-four matrix fixed size codebook. Similarly, a third codebook of sixteen matrices may be created by selecting every fourth matrix from the larger fixed size codebook. A codebook of eight matrices may be created by selecting every eighth matrix from the larger fixed size codebook, and a codebook of just four matrices may be created by selecting every sixteenth matrix from the larger fixed size codebook. Of course, these are just examples of the manner in which smaller codebooks may also be generated from a larger fixed size codebook. Codebooks comprising other subsets of a larger fixed size codebook may also be employed. Another alternative is to simply store a plurality of different size codebooks. For example, a first codebook having sixty-four preceding matrices may be stored in the memory 21. A second separate codebook having thirty-two preceding matrices may also be stored in the memory 21. A third codebook having 16 preceding matrices, a fourth codebook having eight preceding matrices and a fifth codebook having just four preceding matrices may also be stored separately in the memory 21.
One or more pre-calculated or predetermined spreading matrices may also be stored in the memory 21 and used in the spreading matrix block 24 at various times or under various different conditions. Thus, for example, a different pre-calculated or predetermined space-time mapping matrix may be stored for each of a number of possible combinations of encoded spatial streams of data to be transmitted and transmission antennas 14 to be used to simultaneously transmit these encoded spatial streams of data. Thus, for example, a different space-time mapping matrix may be calculated and stored for two spatial streams of data being sent via three of the transmission antennas 14, for two spatial streams of data being sent via four of the transmission antennas 14, for three spatial streams of data being sent via five transmission antennas 14, etc. In this manner, the communication system 10 may optimally send different numbers of spatial streams of data at different times, depending on the load of the system. Moreover, the communication system 10 may also use these various different pre-stored or pre-calculated space-time mapping matrices to account for or to adapt to the loss of one or more of the transmission antennas 14 to be used in sending data within the communication system 10.
During operation, information signals Tx1-Txn which are to be transmitted from the transmitter 12 to the receiver 16 are provided to the symbol encoder/modulator unit 22 for encoding and modulation. Of course, any desired number of signals Tx1-Txn may be provided to the modulator unit 22, with this number generally being limited by the modulation scheme employed by and the bandwidth associated with the MIMO communication system 10. Additionally, the signals Tx1-Txn may be any type of signals, including analog or digital signals, and may represent any desired type of data or information. Additionally, if desired, a known test or control signal Cx1 (which may be stored in the memory 21) may be provided to the symbol encoder and modulator unit 22 for use in determining CSI related information describing the characteristics of the channel(s) between the transmitter 12 and the receiver 16. If desired, the same control signal or a different control signal may be used to determine the CSI for each frequency sub-band and/or spatial channel used in the MIMO communication system 10.
The symbol encoder and modulator unit 22 may interleave digital representations of the various signals Tx1-Txn and Cx1 and may perform any other known type(s) of error-correction encoding on the signals Tx1-Txn and Cx1 to produce one or more encoded streams of symbols SS1, SS2, . . . SSp, to be modulated and sent from the transmitter 12 to the receiver 16. While the symbol streams SS1-SSp may be modulated using any desired or suitable QAM technique, such as using 64 QAM, these symbols may be modulated in any other known or desired manner including, for example, using any other desired phase and/or frequency modulation techniques. In any event, the modulated encoded symbol streams SS1-SSp are provided by the symbol encoder and modulator unit 22 to the preceding block 23. The individual symbols comprise vectors which may be multiplied by the appropriate preceding matrix in the precoding block 23. The controller 20 receives a feedback signal from the receiver 16 which is used by the controller 20 to identify an appropriate preceding matrix stored in the variable size codebook stored in the memory 21. The controller 20 accesses the variable size codebook stored in the memory 21 and retrieves a precoding matrix appropriate for the channel characteristics and conditions prevailing at the time and provides the selected precoding matrix to the preceding block 23. The preceding block 23 multiplies the modulated encoded symbol streams SS1-SSp by the selected preceding matrix, then provides the preceded symbol streams to the space-time mapping block 24 for processing before being transmitted via the antennas 141-14N. While not specifically shown in FIG. 1, the precoded modulated symbol streams SS1-SSp may be processed by the space-time mapping block 24 that implements a space-time mapping matrix optionally in accordance with a transmission technique disclosed in co-pending U.S. patent application Ser. No. 11/851,237 entitled “Equal Power Output Spatial Spreading Matrix For Use In A MIMO Communication System,” filed Sep. 6, 2007, the entire disclosure of which is incorporated herein by reference, before being up-converted to the RF carrier frequencies associated with an OFDM technique (in one or more stages). Upon receiving the modulated signals, the space-time mapping block 24 processes the modulated signals by injecting delays and/or gains into the modulated signals based on a space-time mapping matrix which may be provided by, for example, the controller 12, to thereby perform mixing and transmission of the spatial streams of data across the transmission antennas 141-14N.
The signals transmitted by the transmitter 12 are detected by the receiver antennas 181-18M and may be processed by a matrix equalizer 35 within the receiver 16 to enhance the reception capabilities of the antennas 181-18M. A symbol demodulator and decoder unit 36, under control of the controller 40, may decode and demodulate the received symbol strings SS1-SSp as recovered by the matrix equalizer 35. In this process, these signals may be downconverted to baseband. Generally, the demodulator and decoder unit 36 may operate to perform demodulation on the received symbols in each symbol stream SS1-SSp to produce a digital bit stream for each symbol stream. In some cases, if desired, the symbol demodulator and decoder unit 36 may perform error correction decoding and deinterleaving on the bit stream to produce the received signals Rx1-Rxn corresponding to the originally transmitted signals Tx1-Txn.
The MIMO wireless communication system 10 may also provide a reverse channel whereby signals may be transmitted from the receiver 16 back to transmitter 12. Thus, as shown in FIG. 1, the receiver 16 may also include a memory 48, a symbol encoder and modulator unit 46, a preceding block 33, and a space-time mapping block 34. The symbol encoder/modulator 46 may receive one or more signals TR1-TRm. The signals TR1-TRm may be encoded and modulated by the symbol encoder/modulator 46 using any desired encoding and modulation techniques. The memory 48 optionally may store a variable size codebook similar to that stored in the transmitter memory 21. The controller 40 may access the memory 48 to retrieve an appropriate preceding matrix for preceding the encoded and modulated symbol streams received from the symbol encoder/modulator 46. The preceded symbol stream may then be upconverted and processed by a space-time mapping block 34 which may use a space-time mapping matrix developed according to the principles described herein based on the number of symbol streams to be sent simultaneously and the number of transmission antennas 18 to be used. The output of the space-time mapping block 34 is then transmitted via the receiver antennas 181-18N to, for example, the transmitter 12, thereby implementing the reverse link. The transmitter 12 may implement a matrix equalizer 25 and symbol demodulator/decoder 26 for receiving, demodulating and decoding signals transmitted from the receiver or terminal 16 to the transmitter or base station 16 over the reverse channel.
The matrix equalizer 25 and the demodulator/decoder unit 26 within the transmitter 12 operate similarly to the matrix equalizer 35 and the demodulator/decoder unit 36 of the receiver 16 to demodulate and decode the symbol streams transmitted by the receiver 16 to produce the recovered signals RR1-RRm. Here again, the matrix equalizer 25 may process the received signals in any known manner to enhance the separation and therefore the reception of the various symbol streams transmitted by the antennas 181-18M.
As mentioned above, the transmitter or base station controller 20 selects an appropriate preceding matrix from the variable size codebook stored in the memory 21 based on a feedback signal received from the receiver 16. In order to determine the appropriate codebook size and select the best preceding matrix for the channel conditions, the receiver 16 includes the codebook/matrix selection block 41. When the receiver 16 receives signals from the transmitter 12, such as the known test signal Cx1, the codebook/matrix selection block 41 (or the controller 40) measures channel state information relating the characteristics and quality of the wireless channel between the transmitter and the receiver. The channel state information may comprise a matrix of complex channel values that take into account the contributions of all combinations of the transmitting antennas 141-14N and the receiving antennas 181-18M. The channel state information measured by the codebook/matrix selection block 41 may include, for example, the channel gain and phase delay characteristics between each pair of transmit and receive antennas. The codebook matrix selection block 41 may also measure channel quality, in the form of (SINR), a signal-to-noise-ratio (SNA), or some other measure of the channel quality. The codebook/matrix selection block 41 then evaluates the channel state information using various criteria to select first the most appropriate code book to use given the measured channel conditions, and then a particular preceding matrix from the selected codebook for preceding signals. The identity of or size of the selected codebook along with the identity of the selected preceding matrix is then fed back to the transmitter 12 so that the transmitter controller 20 may select the proper preceding matrix from the appropriate size codebook stored in the memory 21. The selected codebook and the selected preceding matrix within the selected codebook may be fed back to the transmitter 12 via the reverse transmission channel, or over another dedicated feedback channel (not shown).
A selected precoding matrix may be specified by identifying a particular size codebook from which the precoding matrix is to be selected and a specific preceding matrix within the identified codebook. For example, in an embodiment in which four different sized codebooks are employed (e.g. codebooks containing 64, 32, 16 and 8 preceding matrices respectively), a minimum of 2 bits are required to identify one of the four different codebooks. An additional six bits are required to identify a particular preceding matrix within the largest codebook, if the codebook having 64 preceding matrices is selected. If the codebook having 32 matrices is selected, an additional 5 bits are required to specify a particular preceding matrix. Four additional bits are required to identify a particular preceding matrix if the codebook having 16 matrices is specified, and only 3 additional bits are required to identify a particular preceding matrix if the smallest codebook having 8 precoding matrices is employed. If the channel quality is poor, it is unlikely that system throughput will significantly improved by using a precoding matrix from one of the larger codebooks. In this case it may not be worth the price in additional channel overhead to use a precoding matrix from one of the larger codebooks and a smaller codebook may be selected. If channel conditions are better, however, and it is likely that channel throughput will be improved using a larger codebook by an amount significantly greater than the amount of channel capacity consumed by the additional overhead required to identify a preceding matrix within the larger codebook, the improved channel throughput associated with selecting a precoding matrix from the larger codebook may justify the increased cost in channel overhead.
When employing a variable size codebook in a MIMO wireless communication system, objective criteria may be established for selecting the appropriate size codebook. Since there is a tradeoff between increased system throughput and increased channel overhead associated with using a larger codebook, one appropriate codebook selection criterion is to compare the expected channel throughput associated with a particular size codebook against the cost in feedback channel overhead associated with using that size codebook. In a MIMO wireless communication system, channel throughput is highly dependent on the transmission quality of the wireless channel. The receiver may measure the SNR or the SINR or some measure of the channel quality from the signals received by the receiving antennas 181-18M. The codebook/matrix selection block 41 may then calculate an expected throughput for each of the different sized codebooks available for precoding signals to be transmitted to the receiver 16. A ratio may be calculated for each of the different sized codebooks comparing the expected throughput associated with each codebook to the corresponding cost in additional overhead. Whichever codebook offers the highest ratio of improved channel performance to overhead cost will be selected. Of course, other codebook selection criteria may also be used. For example, a series of SNR or SINR thresholds may be established. The codebook size may be selected based on where the measured SNR or SINR falls in relation to the established thresholds. When the measured SNR or SINR is below a first threshold the smallest available codebook may be selected. If the measured SNR or SINR is greater than or equal to the first threshold value, but less than the second threshold value, the next larger available codebook may be selected, and so on until there is a proper sized codebook identified for every possible set of channel conditions.
Once a particular size codebook has been selected the codebook matrix selection block 41 may select a particular preceding matrix from the selected codebook. The preceding matrix may be selected in a manner similar to the process of selecting the size of the codebook. Some objective criteria, such as the maximum sum throughput, may be defined and calculated for each precoding matrix within the selected codebook. The precoding matrix that produces the highest maximum sum throughput (or some other objective measure) may then be selected for preceding the symbols to be transmitted from the transmitter to the receiver.
FIG. 2 is a flowchart illustrating the process of selecting a preceding matrix in a MIMO wireless communication system employing a variable size codebook. A first step 202 is to provide a variable size codebook that includes a plurality of preceding matrices that may be employed to precode signals transmitted from a wireless transmitter to a wireless receiver within a MIMO wireless communication system. As described above, the variable sized codebook may comprise a single large codebook having a large number of precoding matrices from which smaller codebooks may be defined by selecting smaller subsets of the preceding matrices found in the larger codebook. Alternatively, the variable sized codebook may comprise a collection of differently sized codebooks, each adapted for different channel conditions.
Next, at block 204, the process of applying a variable sized codebook to a MIMO wireless communication channel calls for measuring one or more characteristics of the wireless communication channel. At least one of the measured characteristics relates to codebook size and preceding matrix selection criteria. The codebook size criteria are employed to determine the size or identity of a particular codebook from which a precoding matrix may be selected for preceding wireless transmissions from the transmitter to the receiver in the MIMO wireless communication system. The measured communication channel characteristics may comprise, for example, the SNR, SINR, or some other measure of the channel quality. Once the channel characteristics have been measured, the process next calls for selecting the best codebook at block 206. This step requires evaluating predefined codebook selection criteria relating to the state of the wireless communication channel. For example, the criteria for selecting the size of the codebook from which a precoding matrix will be selected may include comparing the cost in channel overhead associated with each available codebook to the corresponding expected gain in system throughput associated with each available codebook. Typically, the expected throughput associate with each of the different size codebooks will be heavily influenced by the measured state of the communication channel. The codebook that offers the greatest expected throughput under the measured channel conditions for the least additional cost in channel overhead may be selected.
Once the best codebook for the given channel conditions has been selected, a determination is made at decision block 208 whether the selected codebook is the same codebook that was used for precoding a previous transmission. If the codebook is the same, the process continues directly to block 212 where the best preceding matrix for the measured channel conditions is selected. If the selected codebook is not the same as the codebook used for preceding the previous transmission, the process switches to the new codebook at block 210 before proceeding to select the best precoding matrix from the new codebook at block 212.
At block 212, predefined matrix selection criteria are applied to determine the best preceding matrix in the selected codebook for preceding wireless transmissions given the measured channel conditions. The best matrix selection criteria may comprise, for example, calculating the maximum sum throughput for each matrix in the selected codebook, and selecting the matrix which provides the greatest throughput given the measured channel characteristics.
Once the preceding matrix has been selected at 212, a determination is made at decision block 214 whether the selected preceding matrix is the same as a preceding matrix employed to precode a previous transmission. If so, the process continues directly to block 218 where an index identifying the selected codebook and the selected preceding matrix is fed back to the transmitter so that the transmitter may access the identified codebook and the identified precoding matrix within the identified codebook in order to precode a wireless transmission to be sent from the transmitter to the receiver in the MIMO wireless communication system. If, however, it is determined a decision block 214 that the selected preceding matrix is not the same preceding matrix that was employed on the previous transmission, the process switches to the new preceding matrix at block 216 before proceeding to feed back the identity selected codebook and the selected matrix to the transmitter at block 218.
Once the selected codebook and preceding matrix have been selected and their identities fed back to the transmitter for preceding a next wireless transmission, the process waits for the next reporting period at block 220. The process may be adapted to re-evaluate channel conditions and select a codebook and preceding matrix at certain predefined rate, or after a predefined period of time, after a certain number of transmissions or based on some other criteria. In any case, at the beginning of the next reporting period the process returns to block 202 and repeats.
Variable size codebook techniques such as described above may be utilized in any type of wireless communication system including, for example, ones used in wireless computer systems such as those implemented via a wireless local area network (WLAN) or a wide area wireless network (e.g., WiMax), internet, cable and satellite based communication systems (such as internet, data, video and voice communication systems), wireless telephone systems (including cellular phone systems, voice over internet protocol (VoIP) systems, home-based wireless telephone systems, etc.) Referring now to FIGS. 3A-3H, various exemplary implementations of the present invention are shown.
Referring now to FIG. 3A, variable size codebooks may be utilized in a high definition television (HDTV) 420 which may include either or both signal processing and/or control circuits, which are generally identified in FIG. 3C at 422, a WLAN network interface 429 and/or mass data storage 427 of the HDTV 420. HDTV 420 receives HDTV input signals in either a wired or wireless format and generates HDTV output signals for a display 426. In some implementations, signal processing circuit and/or control circuit 422 and/or other circuits (not shown) of HDTV 420 may process data, perform coding and/or encryption, perform calculations, format data and/or perform any other type of HDTV processing that may be required. Variable size codebook techniques may be utilized in the signal processing circuit and/or control circuit 422 and/or the WLAN network interface 429, for example.
HDTV 420 may communicate with mass data storage 427 that stores data in a nonvolatile manner such as optical and/or magnetic storage devices such as a hard disk drive (HDD) or a digital versatile disk (DVD) drive. The HDD may be a mini HDD that includes one or more platters having a diameter that is smaller than approximately 1.8′′. HDTV 420 may be connected to memory 428 such as RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. HDTV 420 also may support connections with a WLAN via the WLAN network interface 429 which may implement the beamforming techniques described above.
Referring now to FIG. 3B, the present invention may be used in conjunction with a control system of a vehicle 430 having a WLAN network interface 448 and/or mass data storage 446. In some implementations, may be used within a powertrain control system 432 that receives inputs from one or more sensors such as temperature sensors, pressure sensors, rotational sensors, airflow sensors and/or any other suitable sensors and/or that generates one or more output control signals such as engine operating parameters, transmission operating parameters, braking parameters, and/or other control signals.
Variable size codebook techniques may also be utilized in other control systems 440 of vehicle 430. Control system 440 may likewise receive signals from input sensors 442 and/or output control signals to one or more output devices 444. In some implementations, control system 440 may be part of an anti-lock braking system (ABS), a navigation system, a telematics system, a vehicle telematics system, a lane departure system, an adaptive cruise control system, a vehicle entertainment system such as a stereo, DVD, compact disc and the like. Still other implementations are contemplated.
Powertrain control system 432 may communicate with mass data storage 446 that stores data in a nonvolatile manner. Mass data storage 446 may include optical and/or magnetic storage devices, for example, a hard disk drive (HDD) and/or a DVD drive. The HDD may be a mini HDD that includes one or more platters having a diameter that is smaller than approximately 1.8′′. Powertrain control system 432 may be connected to memory 447 such as RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. Powertrain control system 432 also may support connections with a WLAN via the WLAN network interface 448 which may implement the beamforming techniques described above. The control system 440 may also include mass data storage, memory and/or a WLAN network interface (all not shown). Variable size codebook techniques may be utilized on the WLAN network interface 448 of the powertrain control system and/or the WLAN network interface of the control system 440.
Referring now to FIG. 3C, variable size codebook techniques may be embodied in a cellular phone 450 that may include one or more cellular antennas 451, either or both signal processing and/or control circuits, which are generally identified in FIG. 3C at 452, a WLAN network interface 468 and/or mass data storage 464 of the cellular phone 450. In some implementations, cellular phone 450 includes a microphone 456, an audio output 458 such as a speaker and/or audio output jack, a display 460 and/or an input device 462 such as a keypad, pointing device, voice actuation and/or other input device. Signal processing and/or control circuits 452 and/or other circuits (not shown) in cellular phone 450 may process data, perform coding and/or encryption, perform calculations, format data and/or perform other cellular phone functions.
Cellular phone 450 may communicate with mass data storage 464 that stores data in a nonvolatile manner such as optical and/or magnetic storage devices, for example, a hard disk drive (HDD) and/or a DVD drive. The HDD may be a mini HDD that includes one or more platters having a diameter that is smaller than approximately 1.8′′. Cellular phone 450 may be connected to memory 466 such as RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. Cellular phone 450 also may support connections with a WLAN via the WLAN network interface 468. Variable size codebook techniques may be utilized on the WLAN network interface 468 and/or the signal processing and/or control circuits 452.
Referring now to FIG. 3D, the variable size codebook techniques may be embodied in a set top box 480 including either or both signal processing and/or control circuits, which are generally identified in FIG. 3D at 484, a WLAN network interface 496 and/or mass data storage 490 of the set top box 480. Set top box 480 receives signals from a source such as a broadband source and outputs standard and/or high definition audio/video signals suitable for a display 488 such as a television and/or monitor and/or other video and/or audio output devices. Signal processing and/or control circuits 484 and/or other circuits (not shown) of the set top box 480 may process data, perform coding and/or encryption, perform calculations, format data and/or perform any other set top box function.
Set top box 480 may communicate with mass data storage 490 that stores data in a nonvolatile manner. Mass data storage 490 may include optical and/or magnetic storage devices, for example, a hard disk drive HDD and/or a DVD drive. The HDD may be a mini HDD that includes one or more platters having a diameter that is smaller than approximately 1.8′′. Set top box 480 may be connected to memory 494 such as RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. Set top box 480 also may support connections with a WLAN via the WLAN network interface 496 which may implement the beamforming techniques described herein. Variable size codebook techniques may be utilized in the signal processing and/or control circuits 484 and/or the WLAN network interface 496.
Referring now to FIG. 3E, the variable size codebook techniques may be embodied in a media player 500. The variable size codebook techniques may be implemented in either or both the signal processing and/or control circuits, which are generally identified in FIG. 3E at 504, and a WLAN network interface 516 and/or mass data storage 510 of the media player 500. In some implementations, media player 500 includes a display 507 and/or a user input 508 such as a keypad, touchpad and the like. In some implementations, media player 500 may employ a graphical user interface (GUI) that typically employs menus, drop down menus, icons and/or a point-and-click interface via display 507 and/or user input 508. Media player 500 further includes an audio output 509 such as a speaker and/or audio output jack. Signal processing and/or control circuits 504 and/or other circuits (not shown) of media player 500 may process data, perform coding and/or encryption, perform calculations, format data and/or perform any other media player function.
Media player 500 may communicate with mass data storage 510 that stores data such as compressed audio and/or video content in a nonvolatile manner. In some implementations, the compressed audio files include files that are compliant with MP3 format or other suitable compressed audio and/or video formats. The mass data storage may include optical and/or magnetic storage devices, for example, a hard disk drive (HDD) and/or a DVD drive. The HDD may be a mini HDD that includes one or more platters having a diameter that is smaller than approximately 1.8′′. Media player 500 may be connected to memory 514 such as RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. Media player 500 also may support connections with a WLAN via the WLAN network interface 516 which may implement the beamforming techniques described herein. Still other implementations in addition to those described above are contemplated.
Referring to FIG. 3F, the variable size codebook techniques may be embodied in a Voice over Internet Protocol (VoIP) phone 600 that may include one or more antennas 618, either or both signal processing and/or control circuits, which are generally identified in FIG. 3F at 604, and a wireless interface and/or mass data storage 602 of the VoIP phone 600. In some implementations, VoIP phone 600 includes, in part, a microphone 610, an audio output 612 such as a speaker and/or audio output jack, a display monitor 614, an input device 616 such as a keypad, pointing device, voice actuation and/or other input devices, and a Wireless Fidelity (Wi-Fi) communication module 608. Signal processing and/or control circuits 604 and/or other circuits (not shown) in VoIP phone 600 may process data, perform coding and/or encryption, perform calculations, format data and/or perform other VoIP phone functions.
VoIP phone 600 may communicate with mass data storage 602 that stores data in a nonvolatile manner such as optical and/or magnetic storage devices, for example, a hard disk drive (HDD) and/or a DVD drive. The HDD may be a mini HDD that includes one or more platters having a diameter that is smaller than approximately 1.8′′. VoIP phone 600 may be connected to memory 606, which may be a RAM, ROM, low latency nonvolatile memory such as flash memory and/or other suitable electronic data storage. VoIP phone 600 is configured to establish communications link with a VoIP network (not shown) via Wi-Fi communication module 608 which may implement the beamforming techniques described herein. Variable size codebook techniques may be employed in either or both the signal processing and/or control circuits 604 and the Wi-Fi communication module 608.
Moreover, while the present invention has been described with reference to specific examples, which are intended to be illustrative only and not to be limiting of the invention, changes, additions and/or deletions may be made to the disclosed embodiments without departing from the spirit and scope of the invention. For example, one or more steps of the method described above may be performed in a different order or concurrently to achieve desirable results.

## Claims

1. A wireless transmission system comprising:
a base station configured to transmit wireless signals;
a memory associated with the base station, the memory configured to store a variable size codebook comprising i) a first codebook having a codebook size comprising a first plurality of precoding matrices for precoding the wireless signals, and ii) a second codebook having a codebook size comprising a second plurality of precoding matrices for precoding the wireless signal;
a terminal configured to receive wireless signals;
channel state measuring circuitry associated with the terminal, the channel state measuring circuitry configured to measure transmission conditions of a wireless communication channel between the base station and the terminal;
a codebook selector associated with the terminal, the codebook selector configured to select a size of a codebook based on i) an expected throughput for each of a plurality of different codebook sizes given the channel state information measured by the channel state measuring circuitry and ii) channel overhead associated with each of the plurality of different codebook sizes;
a feedback transmitter associated with the terminal the feedback transmitter configured to wirelessly transmit an indicator of a codebook corresponding to the selected size of the codebook from the terminal to the base station; and
a feedback receiver associated with the base station, the feedback receiver configured to receive the indicator of the codebook from the terminal,
wherein the base station is configured to select a codebook size based on the indicator of the codebook from the terminal, and
wherein the base station is configured to select a precoding matrix from a codebook selected by the base station for precoding wireless signals to be transmitted from the base station.

2. The wireless transmission system of claim 1, wherein the variable size codebook comprises a plurality of fixed size codebooks containing different numbers of precoding matrices.

3. The wireless transmission system of claim 1, wherein the channel state information measured by the channel state measuring circuitry comprises a signal interference plus noise ratio (SINR).

4. A multiple-input-multiple-output (MIMO) wireless communication system comprising:
a base station configured to transmit a plurality of wireless data streams, the base station including a memory to store a variable size codebook for precoding the data streams, wherein the variable size codebook corresponds to a plurality of codebook sizes corresponding to different gradations of precoding matrix quantization;
a terminal configured to receive wireless transmissions including at least one of the plurality of data streams transmitted by the base station via a plurality of receiving antennas, the terminal including i) a channel state measuring block for measuring channel state information of a wireless communication channel established between the base station and the terminal, ii) a codebook selector to select a size of a codebook based on the measured channel state information, and iii) a feedback transmitter to wirelessly transmit a feedback signal corresponding to an indicator of a codebook corresponding to the selected size of the codebook;
the base station further including a feedback receiver for receiving the feedback signal transmitted from the terminal, wherein the base station is configured to select a codebook size based on the feedback signal received by the feedback receiver; and
wherein one of the base station or the terminal is further configured to select a codebook size by measuring a ratio of an amount of transmission overhead associated with a particular codebook size and an achievable maximum throughput associated with the particular codebook size for a plurality of different codebook sizes, and to select the codebook size having the lowest ratio.

5. The MIMO wireless communication system of claim 4, wherein the feedback signal comprises a codebook identifier and wherein the base station selects a codebook based on the codebook identifier.

6. The MIMO wireless communication system of claim 5, wherein the feedback signal further comprises a matrix identifier whereby the base station selects a precoding matrix based on the matrix identifier.

7. The MIMO wireless communication system of claim 4, wherein the channel state measuring block is configured to measure a signal interference plus noise ratio (SINR) for the wireless communication channel established between the base station and the terminal, and
wherein the codebook selector is configured to select the size of the codebook based on the SINR.

8. A method of selecting a codebook for precoding a wireless transmission signal, the method comprising:
measuring a characteristic of a wireless communication channel;
developing codebook size selection criteria based on i) an expected throughput for each of a plurality of different codebook sizes given the measured characteristic of the wireless communication channel, and ii) channel overhead associated with each of the plurality of different codebook sizes;
selecting a code book size based on the codebook size selection criteria; and
transmitting an indicator of a codebook corresponding to the selected size.

9. The method of claim 8, wherein developing the codebook size selection criteria comprise calculating, for a plurality of codebook sizes, a ratio of communication channel overhead consumed by a codebook of a particular size versus the channel throughput expected to be obtained by using a codebook of the particular size given the measured characteristic of the communication channel, and selecting a codebook size for which the ratio is smallest.

10. The method of claim 8, further comprising:
selecting a best matrix from a codebook of the selected codebook size based on matrix selection criteria; and
transmitting an indicator of a matrix.

11. The method of claim 10, wherein selecting the best matrix comprises calculating the maximum sum throughput for precoding matrices in a codebook of the selected size and selecting a matrix with the highest maximum sum throughput.

12. The method of claim 8, wherein measuring a characteristic of a wireless communication channel comprises measuring a signal interference plus noise ratio (SINR), and
wherein selecting the codebook size is based on an expected throughput for each of the plurality of different codebook sizes given the SINR.

13. A wireless receiver comprising:
channel state information measuring circuitry;
a codebook selector for selecting a size of a codebook based on
i) an expected throughput for each of a plurality of different codebook sizes given a measured characteristic of the wireless communication channel measured by the channel state information circuitry, and
ii) channel overhead associated with each of the plurality of different codebook sizes,

wherein a codebook corresponding to the selected size includes precoding matrices for precoding signals to be sent to the receiver and for selecting a precoding matrix from a codebook corresponding to the selected size based on the channel state information measured by the channel state measuring circuitry by determining a precoding matrix from the codebook corresponding to the selected sized that produces the highest maximum sum throughput; and
a feed back transmitter for transmitting an indicator of a codebook corresponding to the selected codebook size to a wireless transmitter and for transmitting a matrix identifier corresponding to the selected precoding matrix.

14. The receiver of claim 13, wherein the channel state information measuring circuitry measures a signal interference plus noise ratio for wireless transmissions received by the receiver, and
wherein codebook selector is configured to select the size of the codebook based on an expected throughput for each of a plurality of different codebook sizes given the signal interference plus noise ratio.

15. The wireless transmission system of claim 1, wherein the channel state information measured by the channel state measuring circuitry comprises a signal-to-noise ratio (SNR).

16. The MIMO wireless communication system of claim 4, wherein the channel state measuring block is configured to measure a signal-to-noise ratio (SNR) for the wireless communication channel established between the base station and the terminal, and
wherein the codebook selector is configured to select the size of the codebook based on the SNR.

17. The method of claim 8, wherein measuring a characteristic of a wireless communication channel comprises measuring a signal-to-noise ratio (SNR), and
wherein selecting the codebook size is based on an expected throughput for each of the plurality of different codebook sizes given the SNR.

18. A wireless transmission system comprising:
a base station configured to transmit wireless signals;
a memory associated with the base station, the memory configured to store a variable size codebook including a first plurality of precoding matrices for precoding the wireless signals;
a terminal configured to receive wireless signals;
channel state measuring circuitry associated with the terminal, the channel state measuring circuitry configured to measure transmission conditions of a wireless communication channel between the base station and the terminal;
a codebook selector associated with the terminal, the codebook selector configured to select a size of a codebook based on i) an expected throughput for each of a plurality of different codebook sizes given the channel state information measured by the channel state measuring circuitry and ii) channel overhead associated with each of the plurality of different codebook sizes, the codebook selector further configured to select a precoding matrix from a codebook corresponding to the selected size of the code book;
a feedback transmitter associated with the terminal, the feedback transmitter configured to wirelessly transmit an indicator of the codebook corresponding to the selected size of the codebook and the selected precoding matrix from the terminal to the base station; and
a feedback receiver associated with the base station, the feedback receiver configured to receive the indicator of the codebook and the selected precoding matrix from the terminal,
wherein the base station is configured to select a codebook based on the indicator of the codebook from the terminal, and
wherein the base station is configured to select a precoding matrix from the codebook based on the indicator of the selected precoding matrix from the terminal for precoding wireless signals to be transmitted from the base station.