# Patent

## Title
Wireless feedback system and method

## Abstract

A codebook C is provided in a MIMO transmitter as well as a MIMO receiver. The codebook C will include M codewords ci, where i is a unique codeword index for each codeword ci. Each codeword defines weighting factors to apply to the MIMO signals, and may correspond to channel matrices or vectors to apply to the MIMO signals prior to transmission from the respective antennas of the MIMO transmitter. The present invention creates codeword subsets Si for each codeword ci of the codebook C. Each codeword subset Si defines L codewords cj, which are selected from all the codewords ci in the codebook C. The codewords cj in a codeword subset Si are the L codewords in the entire codebook that best correlate with the corresponding codeword ci.

## Background
PRIORITY CLAIM
This application is a continuation of and claims the benefit of priority from U.S. patent application Ser. No. 15/175,246, entitled “Wireless Feedback System and Method” and filed on Jun. 7, 2016, which is a continuation of and claims the benefit of priority from U.S. patent application Ser. No. 14/853,539 (now U.S. Pat. No. 9,369,190, issued on Jun. 14, 2016), of the same title and filed on Sep. 14, 2015, which is a continuation of and claims the benefit of priority from U.S. patent application Ser. No. 14/551,053, of the same title and filed on Nov. 23, 2014 (now U.S. Pat. No. 9,136,923, issued on Sep. 15, 2015), which is a continuation of and claims the benefit of priority from U.S. patent application Ser. No. 14/072,779, of the same title and filed on Nov. 5, 2013 (now U.S. Pat. No. 8,897,384, issued on Nov. 25, 2014), which is a continuation of and claims the benefit of priority from U.S. patent application Ser. No. 13/464,640, of the same title and filed on May 4, 2012 (now U.S. Pat. No. 8,605,812, issued on Dec. 10, 2013), which is a continuation of and claims the benefit of priority from U.S. patent application Ser. No. 12/066,322, of the same title and filed on Nov. 5, 2008 (now U.S. Pat. No. 8,189,714, issued on May 29, 2012), which is a 35 U.S.C. § 371 National Application of and claims the benefit of priority from International Patent Application Serial No. PCT/IB2006/001157, of the same title and filed on May 4, 2006, which claims the benefit of priority from U.S. Provisional Patent Application Ser. No. 60/677,493, of the same title and filed on May 4, 2005, all of which are fully incorporated herein by reference for all purposes and to the extent not inconsistent with this application.
The claims in the instant application are different than those of the parent application or other related applications. The Applicant therefore rescinds any disclaimer of claim scope made in the parent application or any predecessor application in relation to the instant application. The Examiner is therefore advised that any such previous disclaimer and the cited references that it was made to avoid, may need to be revisited. Further, any disclaimer made in the instant application should not be read into or against the parent application or other related applications.


FIELD OF THE INVENTION
The present invention relates to communications, and in particular to providing feedback information in a multiple-input multiple-output communication environment.
BACKGROUND OF THE INVENTION
Providing feedback in a multiple-input multiple-output (MIMO) communication environment has proven to significantly benefit performance. In early systems that employed feedback, weighting factors were created at the MIMO receiver based on channel conditions. A codeword was fed back from the MIMO receiver to the transmitter, which would apply the weighting factors to the respective signals to be transmitted from the different MIMO transmitter antennas. The weighting factors effectively pre-distorted the signals to be transmitted to reverse the effects of the communication channel. Accordingly, the signals received at the MIMO receiver's antennas approximated those that would have been received without weighting through a clear channel. Unfortunately, channel conditions frequently if not continuously change, and the weighting factors to represent channel conditions are data-intensive. In light of the limited bandwidth available for feedback, providing weighting factors for changing channel conditions became unfeasible.
In an effort to reduce the bandwidth required to provide feedback for a MIMO channel, designers developed codebooks, which are maintained at the MIMO transmitter and MIMO receiver. The codebooks include codewords, which are predefined weighting factors. These predefined weighting factors are configured to cover the range of possible channel conditions through a fixed number of discrete weighting factors. Each of the codewords in a codebook is associated with a codeword index. In operation, the MIMO receiver will systematically determine the channel conditions and select the most appropriate codeword in light of the channel conditions. Instead of sending the codeword, which includes the weighting factors, the MIMO receiver will send the codeword index to the MIMO transmitter over an appropriate feedback channel. The MIMO transmitter will receive the codeword index, obtain the weighting factors of the corresponding codeword, and apply those weighting factors to the signals to be transmitted from the different transmit antennas.
The number of codewords in the codebook impacts the bandwidth required for feedback and the performance enhancement associated with using feedback. Unfortunately, as the number of codewords increases, the bandwidth required to feed back the codeword index to the MIMO transmitter from the MIMO receiver increases. Although incorporating the use of codebooks and providing the codeword index instead of the entire codeword as feedback has provided performance enhancement over systems providing the entire codeword as feedback, there is still a need to increase the number of available codewords while minimizing the bandwidth required to provide feedback from the MIMO receiver to the MIMO transmitter.
SUMMARY OF THE INVENTION
A codebook C is provided in a MIMO transmitter as well as a MIMO receiver. The codebook C will include M codewords ci, where i is a unique codeword index for each codeword ci. Each codeword defines weighting factors to apply to MIMO signals, and may correspond to channel matrices or vectors to apply to the MIMO signals prior to transmission from the respective antennas of the MIMO transmitter. The present invention creates codeword subsets Si for each codeword ci of the codebook C. Each codeword subset Si defines L codewords cj, which are selected from all the codewords ci in the codebook C. The codewords cj in a codeword subset Si are the L codewords in the entire codebook that best correlate with the corresponding codeword ci.
In operation, the MIMO receiver will initially identify the channel conditions of the MIMO channel and search the entire codebook C for the most appropriate codeword ci based on the channel conditions of the MIMO channel. The MIMO receiver will then transmit the codeword index i corresponding to the selected codeword ci back to the MIMO transmitter as feedback. The MIMO transmitter will use the codeword index i to identify the codeword ci to employ when weighting the MIMO signals to be transmitted to the MIMO receiver. For a subsequent period of time or a given number of feedback instances, the MIMO receiver will again identify channel conditions for the MIMO channel. Instead of searching the entire codebook C for the best codeword ci in light of the channel conditions, the MIMO receiver will limit its search to the codeword subset Si, which corresponds to the codeword ci that was selected from a search of the entire codebook C.
As such, a limited number of L codewords cj of the codeword subset Si are searched, instead of the M codewords ci of the entire codebook C. From the L codewords cj of the codeword subset Si, the MIMO receiver will select the most appropriate codeword cj and then provide the subset index k corresponding to the selected codeword cj back to the MIMO transmitter as feedback. The MIMO transmitter will use the subset index k to identify the codeword cj from the codeword subset Si that corresponds to the codeword ci, which was provided by the MIMO receiver in response to the most recent full codebook search. Once the appropriate codeword cj is obtained, the corresponding weighting factors are provided to the MIMO signals being transmitted to the MIMO receiver from the MIMO transmitter.
Those skilled in the art will appreciate the scope of the present invention and realize additional aspects thereof after reading the following detailed description of the preferred embodiments in association with the accompanying drawing figures.



BRIEF DESCRIPTION OF THE DRAWING FIGURES
The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the invention, and together with the description serve to explain the principles of the invention.
FIG. 1 is a block representation of a MIMO communication environment according to one embodiment of the present invention.
FIG. 2 illustrates a traditional codebook construction.
FIG. 3 illustrates a codebook constructed according to one embodiment of the present invention.
FIG. 4 illustrates a codeword subset according to one embodiment of the present invention.
FIG. 5 is a flow diagram illustrating operation of a MIMO receiver according to one embodiment of the present invention.
FIG. 6 is a flow diagram illustrating operation of a MIMO transmitter according to one embodiment of the present invention.
FIG. 7 is a block representation of a wireless communication system according to one embodiment of the present invention.
FIG. 8 is a block representation of a base station according to one embodiment of the present invention.
FIG. 9 is a block representation of a user element according to one embodiment of the present invention.
FIG. 10 is a logical breakdown of a MIMO transmitter architecture according to one embodiment of the present invention.
FIG. 11 is a logical breakdown of a MIMO receiver architecture according to one embodiment of the present invention.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The embodiments set forth below represent the necessary information to enable those skilled in the art to practice the invention and illustrate the best mode of practicing the invention. Upon reading the following description in light of the accompanying drawing figures, those skilled in the art will understand the concepts of the invention and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.
The present invention improves performance of multiple-input multiple-output (MIMO) communication systems. As shown in FIG. 1, a MIMO transmitter 2 has multiple transmit antennas 4 from which MIMO signals are transmitted over a MIMO communication channel to a MIMO receiver 6. The MIMO signals may be space-time coded (STC) signals, which are defined to be any spatially diverse signals or spatially multiplexed signals. As such, the signals transmitted from different transmit antennas 4 may be the same or different signals. The MIMO signals are received at the MIMO receiver by multiple receive antennas 8.
In operation, a codebook C, such as that illustrated in FIG. 2, is provided in the MIMO transmitter 2 as well as the MIMO receiver 6. The codebook C will include M codewords ci, where i is a unique codeword index for each codeword ci. In this example, there are 64 codewords ci (M=64), and as such, the codeword index i will range from zero to M−1, Each codeword defines weighting factors to apply to the MIMO signals, and may correspond to channel matrices or vectors to apply to the MIMO signals prior to transmission from the respective antennas 4 of the MIMO transmitter 2.
As noted above, current systems employing codebooks operate as follows. Initially, the MIMO receiver 6 will obtain channel conditions for the MIMO channel, and identify the codeword ci that would provide the best compensation of the MIMO signals in light of the channel conditions of the MIMO channel. The MIMO receiver 6 will search all of the codewords ci of the codebook C to determine the most appropriate codeword ci. Once the codeword ci is determined, the MIMO receiver 6 will provide feedback to the MIMO transmitter 2 to identify the corresponding codeword index i. The MIMO transmitter 2 will use the received codeword index i to identify the corresponding codeword ci and apply the weighting factors defined by the codeword ci to the MIMO signals transmitted from the antennas 4. The process will continue, wherein the MIMO receiver 6 will systematically monitor the channel conditions of the MIMO channel and identify the most appropriate codeword ci by providing a search of all of the codewords ci in the codebook C.
The present invention improves upon the current state of the art by creating codeword subsets Si for each codeword ci of the codebook C, as illustrated in FIG. 3. Each codeword subset Si defines L codewords cj, which are selected from all the codewords ci in the codebook C. The codewords cj in a codeword subset Si are the L codewords in the entire codebook that best correlate with the corresponding codeword ci.
As illustrated in FIG. 4, a codeword subset S7, which corresponds to the codeword c7, is defined to include k codewords cj, where k=0, 1, 2, . . . , L−1, where L=8. As such, the codeword subset S7 has eight codewords cj. The codewords cj in the codeword subset S7 are the eight codewords that best correlate with codeword c7. In this example, the codeword subset S7 associated with codeword c7 is defined to include codewords c3, c13, c16, c25, c37, c41, c49, and c60. Notably, each codeword ci in the codebook C will have a corresponding codeword subset Si, where the codewords cj in the codeword subset Si will differ from one codeword subset Si to another. Notably, the codeword cj of the codeword subset Si may or may not include the corresponding codeword ci with which the codeword subset Si is associated.
The codeword subsets Si are created by identifying the L codewords cj that have the highest correlations with ci. Those skilled in the art will recognize various techniques for determining codewords ci, cj, that have the highest correlations. For example, identifying the codewords ci, cj having the highest correlations may be determined using the normalized interproduct criterion defined as:




  
    〈
    
      
        c
        i
      
      ,
      
        c
        j
      
    
    〉
  
  =
  
    
      
        
          c
          i
          *
        
        ⁢
        
          c
          j
        
      
      
        
          
          
            c
            i
          
          
        
        *
        
          
          
            c
            j
          
          
        
      
    
    .
  




In one embodiment, the subset index k, which is used to identify each of the codewords cj of the codeword subset Si, will require log2(L) bits, whereas the codebook index i requires log2(M) bits. Thus, L is preferably significantly smaller than M. In the examples of FIGS. 2-4, the number of codewords cj (L) is eight times less than the number of codewords ci in the entire codebook C (M). Again, the codebook C, including the codeword subset extensions, is provided in the MIMO transmitter 2 as well as in the MIMO receiver 6. The codebook C will remain substantially fixed, and if there is a change to a codebook C in the MIMO transmitter 2, there must be corresponding changes in the MIMO receiver 6 to ensure that the codebooks C remain the same.
In operation, the MIMO receiver 6 will initially identify the channel conditions of the MIMO channel and search the entire codebook C for the most appropriate codeword ci based on the channel conditions of the MIMO channel. The MIMO receiver 6 will then transmit the codeword index i corresponding to the selected codeword ci back to the MIMO transmitter 2 as feedback. The MIMO transmitter 2 will use the codeword index i to identify the codeword ci to employ when weighting the MIMO signals to be transmitted to the MIMO receiver 6. For a subsequent period of time or a given number of feedback instances, the MIMO receiver 6 will again identify channel conditions for the MIMO channel. Instead of searching the entire codebook C for the best codeword ci in light of the channel conditions, the MIMO receiver 6 will limit its search to the codeword subset Si, which corresponds to the codeword ci that was selected from a search of the entire codebook C.
As such, a limited number of L codewords cj of the codeword subset Si are searched, instead of the M codewords ci of the entire codebook C. From the L codewords cj of the codeword subset Si, the MIMO receiver 6 will select the most appropriate codeword cj and then provide the subset index k corresponding to the selected codeword cj back to the MIMO transmitter 2 as feedback. The MIMO transmitter 2 will use the subset index k to identify the codeword cj from the codeword subset Si that corresponds to the codeword ci, which was provided by the MIMO receiver 6 in response to the most recent full codebook search. Once the appropriate codeword cj is obtained, the corresponding weighting factors are provided to the MIMO signals being transmitted to the MIMO receiver 6 from the MIMO transmitter 2.
With reference to FIG. 5, a flow diagram illustrating operation of the MIMO receiver 6 is provided. Operation begins (step 100) where the MIMO receiver 6 selects a codeword ci from a full codebook search based on channel estimates (step 102). The MIMO receiver 6 will transmit the codeword index i of the selected codeword ci to the MIMO transmitter 2 (step 104). After a full codebook search, the MIMO receiver 6 may set a time instance counter (N−1) (step 106) and then proceed by selecting a codeword cj from codeword subset Si for the codeword ci based on new channel estimates (step 108). The MIMO receiver 6 will transmit the subset index k of the selected codeword cj to the MIMO transmitter 2 (step 110) and adjust the time instance counter accordingly (step 112). Based on the time instance counter, the MIMO receiver 6 will determine whether or not a full codebook search is required (step 114). If a full codebook search is not required, the MIMO receiver 6 will once again select a codeword cj from the codeword subset Si for the codeword ci based on new channel estimates (step 108). Notably, the new channel estimates may result in a different codeword cj being selected from the same codeword subset Si for consecutive feedback instances. Further, the codeword subset Si will not change until a full codebook search is provided. As such, until the time instance counter is incremented to N−1 or decremented to zero, the iterative process of selecting a codeword cj from the codeword subset Si and transmitting the corresponding subset index k back to the MIMO transmitter 2 repeats.
When it is time to provide a full codebook search (step 114), the overall process will begin anew, wherein a codeword ci is selected from a full codebook search based on new channel estimates (step 102). Codeword index i is transmitted to the MIMO transmitter 2 (step 104), and the time instance counter is set (step 106). At this point, a new codeword subset Si is selected, assuming channel estimates have changed from the last full codebook search, and subsequent feedback instances will result in searches of only the appropriate codeword subset Si until a full codebook search is needed.
With reference to FIG. 6, a flow diagram is provided to illustrate operation of a MIMO transmitter 2 according to one embodiment of the present invention. Operation begins (step 200) where the MIMO transmitter 2 will receive a codeword index i for the full codebook C (step 202). The MIMO transmitter 2 will identify the codeword ci from the full codebook C based on the codeword index i (step 204). The MIMO transmitter 2 will then apply the codeword ci to the MIMO signals to be transmitted to the MIMO receiver 6 (step 206). The MIMO transmitter 2 will then set a time instance counter (step 208) and receive a subset index k for the codeword subset Si (step 210). The MIMO transmitter 2 will be able to identify the codeword subset Si based on the previous codeword ci as recovered from the codeword index i from the prior feedback of the MIMO receiver 6. The MIMO transmitter 2 will use the subset index k to identify the codeword cj from the codeword subset Si (step 212) and apply the codeword cj to the MIMO signals to be transmitted (step 214). The MIMO transmitter 2 may then adjust the time instance counter (step 216) and determine whether or not a full codebook C should be used on the next feedback from the MIMO receiver 6 (step 218).
If the codeword subset Si should be used, the next feedback from the MIMO receiver 6 will identify subset index k for a codeword subset Si (step 210). The codeword cj is identified based on the subset index k and applied to the MIMO signals to be transmitted (step 210). This process will continue until the full codebook C is to be used to identify a codeword ci based on a codebook index i being fed back from the MIMO receiver 6. When it is time to use the full codebook C (step 218), the MIMO receiver 6 will provide a codeword index i (step 202), which will be used by the MIMO transmitter 2 to identify a codeword ci from the full codebook C (step 204). Codeword ci will be applied to the MIMO signals to be transmitted (step 206), and the MIMO transmitter 2 will begin receiving subset indices k from the MIMO receiver 6 and identify codeword cj of the codeword subset Si based on the subset index k until the full codebook C needs to be accessed again.
Those skilled in the art will recognize that codewords may have various configurations, but in any case will effectively define weighting factors in the form of matrices, vectors, and the like to apply to MIMO signals to be transmitted from the various antennas 4 of the MIMO transmitter 2. Further, cycling between using the full codebook C and a significantly smaller codeword subset Si may be based on feedback instances, transmission instances, and time periods, as well as the extent to which channel conditions are actually changing. Further, the MIMO transmitter 2 and the MIMO receiver 6 may coordinate with one another to selectively invoke the use of the codeword subsets such that they may operate according to the prior art for a certain period of time or under certain conditions at certain times, while at other times they may operate according to the concepts of the present invention.
Further, for OFDM systems, the codeword subsets may be arranged by time and frequency. As such, the subset indices may relate to and be selected from codebook codewords having the best correlations in the time or frequency direction in the OFDM spectrum.
With reference to FIG. 7, a basic MIMO wireless communication environment is illustrated. In general, a base station controller (BSC) 10 controls wireless communications within one or more cells 12, which are served by corresponding base stations (BS) 14. Each base station 14 facilitates communications with user elements 16, which are within the cell 12 associated with the corresponding base station 14. For the present invention, the base stations 14 and user elements 16 include multiple antennas to provide spatial diversity for communications. Notably, the base station 14 may be any type of wireless access point for cellular, wireless local area network, or like wireless network. For the present invention, the base station 14 and the user elements 16 may act as the MIMO transmitter 2 as well as the MIMO receiver 6. For clarity and conciseness, the following embodiments employ the MIMO transmitter 2 in the base station 14 and MIMO receiver 6 in the user elements 16.
With reference to FIG. 8, a base station 14 configured according to one embodiment of the present invention is illustrated. The base station 14 generally includes a control system 20, a baseband processor 22, transmit circuitry 24, receive circuitry 26, multiple antennas 28, and a network interface 30. The receive circuitry 26 receives radio frequency signals through antennas 28 bearing information from one or more remote transmitters provided by user elements 16. Preferably, a low noise amplifier and a filter (not shown) cooperate to amplify and remove broadband interference from the signal for processing. Downconversion and digitization circuitry (not shown) will then downconvert the filtered, received signal to an intermediate or baseband frequency signal, which is then digitized into one or more digital streams.
The baseband processor 22 processes the digitized received signal to extract the information or data bits conveyed in the received signal. This processing typically comprises demodulation, decoding, and error correction operations. As such, the baseband processor 22 is generally implemented in one or more digital signal processors (DSPs). The received information is then sent across a wireless network via the network interface 30 or transmitted to another user element 16 serviced by the base station 14. The network interface 30 will typically interact with the base station controller 10 and a circuit-switched network forming a part of a wireless network, which may be coupled to the public switched telephone network (PSTN).
On the transmit side, the baseband processor 22 receives digitized data, which may represent voice, data, or control information, from the network interface 30 under the control of the control system 20, and encodes the data for transmission. The encoded data is output to the transmit circuitry 24, where it is modulated by a carrier signal having a desired transmit frequency or frequencies. A power amplifier (not shown) will amplify the modulated carrier signal to a level appropriate for transmission, and deliver the modulated carrier signal to the antennas 28 through a matching network (not shown). The multiple antennas 28 and the replicated transmit and receive circuitries 24, 26 provide spatial diversity.
With reference to FIG. 9, a user element 16 configured according to one embodiment of the present invention is illustrated. Similarly to the base station 14, the user element 16 will include a control system 32, a baseband processor 34, transmit circuitry 36, receive circuitry 38, multiple antennas 40, and user interface circuitry 42. The receive circuitry 38 receives radio frequency signals through antennas 40 bearing information from one or more base stations 14. Preferably, a low noise amplifier and a filter (not shown) cooperate to amplify and remove broadband interference from the signal for processing. Downconversion and digitization circuitry (not shown) will then downconvert the filtered, received signal to an intermediate or baseband frequency signal, which is then digitized into one or more digital streams.
The baseband processor 34 processes the digitized received signal to extract the information or data bits conveyed in the received signal. This processing typically comprises demodulation, decoding, and error correction operations, as will be discussed in greater detail below. The baseband processor 34 is generally implemented in one or more digital signal processors (DSPs) and application-specific integrated circuits (ASICs).
For transmission, the baseband processor 34 receives digitized data, which may represent voice, data, or control information, from the control system 32, which it encodes for transmission. The encoded data is output to the transmit circuitry 36, where it is used by a modulator to modulate a carrier signal that is at a desired transmit frequency or frequencies. A power amplifier (not shown) will amplify the modulated carrier signal to a level appropriate for transmission, and deliver the modulated carrier signal to the antennas 40 through a matching network (not shown). The multiple antennas 40 and the replicated transmit and receive circuitries 36, 38 provide spatial diversity.
With reference to FIG. 10, a transmission architecture is provided according to one embodiment. The transmission architecture is described as being that of the base station 14, but those skilled in the art will recognize the applicability of the illustrated architecture for both uplink and downlink communications. Further, the transmission architecture is intended to represent a variety of multiple access architectures, including, but not limited to code division multiple access (CDMA), frequency division multiple access (FDMA), time division multiple access (TDMA), and orthogonal frequency division multiplexing (OFDM).
Initially, the base station controller 10 sends data 44 intended for a user element 16 to the base station 14 for scheduling. The scheduled data 44, which is a stream of bits, is scrambled in a manner reducing the peak-to-average power ratio associated with the data using data scrambling logic 46. A cyclic redundancy check (CRC) for the scrambled data is determined and appended to the scrambled data using CRC adding logic 48. Next, channel encoding is performed using channel encoder logic 50 to effectively add redundancy to the data to facilitate recovery and error correction at the user element 16. The channel encoder logic 50 uses known Turbo encoding techniques in one embodiment. The encoded data is then processed by rate matching logic 52 to compensate for the data expansion associated with encoding.
Bit interleaver logic 54 systematically reorders the bits in the encoded data to minimize the loss of consecutive data bits. The resultant data bits are systematically mapped into corresponding symbols depending on the chosen baseband modulation by mapping logic 56. Preferably, a form of Quadrature Amplitude Modulation (QAM) or Quadrature Phase Shift Key (QPSK) modulation is used. The symbols may be systematically reordered to further bolster the immunity of the transmitted signal to periodic data loss caused by frequency selective fading using symbol interleaver logic 58.
At this point, groups of bits have been mapped into symbols representing locations in an amplitude and phase constellation. Blocks of symbols are then processed by space-time code (STC) encoder logic 60. The STC encoder logic 60 will process the incoming symbols according to a selected STC encoding mode and provide n outputs corresponding to the number of transmit antennas 28 for the base station 14. The codeword feedback from the user element 16 (MIMO receiver 6) is recovered from the corresponding receive circuitry 26 and used to identify the codeword to apply to the symbols. Further detail regarding the SIC encoding is provided later in the description. Assume the symbols for the n outputs are representative of the weighted data to be transmitted and capable of being recovered by the user element 16. Further detail is provided in A. F. Naguib, N. Seshadri, and A. R. Calderbank, “Applications of space-time codes and interference suppression for high capacity and high data rate wireless systems,” Thirty-Second Asilomar Conference on Signals, Systems & Computers, Volume 2, pp. 1803-1810, 1998; R. van Nee, A. van Zelst and G. A. Atwater, “Maximum Likelihood Decoding in a Space Division Multiplex System”, IEEE VTC. 2000, pp. 6-10, Tokyo, Japan, May 2000; and P. W. Wolniansky et al., “V-BLAST: An Architecture for Realizing Very High Data Rates over the Rich-Scattering Wireless Channel,” Proc. IEEE ISSSE-98, Pisa, Italy, Sep. 30, 1998 which are incorporated herein by reference in their entireties.
For illustration, assume the base station 14 has selected two of a number of antennas 28 (n=2) and the STC encoder logic 60 provides two output streams of symbols. Accordingly, each of the symbol streams output by the STC encoder logic 60 is sent to a corresponding multiple access modulation function 62, illustrated separately for ease of understanding. Those skilled in the art will recognize that one or more processors may be used to provide such analog or digital signal processing alone or in combination with other processing described herein. For example, the multiple access modulation function 62 in a CDMA function would provide the requisite PN code multiplication, wherein an OFDM function would operate on the respective symbols using inverse discrete Fourier transform (IDFT) or like processing to effect an Inverse Fourier Transform.
Each of the resultant signals is up-converted in the digital domain to an intermediate frequency and converted to an analog signal via the corresponding digital up-conversion (DUC) circuitry 64 and digital-to-analog (D/A) conversion circuitry 66. The resultant analog signals are then simultaneously modulated at the desired RF frequency, amplified, and transmitted via the RF circuitry 68 and antennas 28. Notably, the transmitted data may be preceded by pilot signals, which are known by the intended user element 16. The user element 16, which is discussed in detail below, may use the pilot signals for channel estimation and interference suppression and the header for identification of the base station 14.
Reference is now made to FIG. 11 to illustrate reception of the transmitted signals by a user element 16 and provision of codeword feedback to the base station 14. Upon arrival of the transmitted signals at each of the antennas 40 of the user element 16, the respective signals are demodulated and amplified by corresponding RF circuitry 74. For the sake of conciseness and clarity, only one of the multiple receive paths in the user element 16 is described and illustrated in detail. Analog-to-digital (A/D) conversion and downconversion circuitry (DCC) 76 digitizes and downconverts the analog signal for digital processing. The resultant digitized signal may be used by automatic gain control circuitry (AGC) 78 to control the gain of the amplifiers in the RE circuitry 74 based on the received signal level.
The digitized signal is also fed to synchronization circuitry 80 and a multiple access demodulation function 82, which will recover the incoming signal received at a corresponding antenna 40 in each receiver path. The synchronization circuitry 80 facilitates alignment or correlation of the incoming signal with the multiple access demodulation function 82 to aid in the recovery of the incoming signal, which is provided to a signaling processing function 84 and channel estimation function 86. The signaling processing function 84 processes basic signaling and header information to provide information sufficient to generate a channel quality measurement, which may bear on an overall signal-to-noise ratio for the link, which takes into account channel conditions and/or signal-to-noise ratios for each receive path. The channel estimation function 86 for each receive path provides channel responses corresponding to channel conditions of the MIMO channel.
The symbols from the incoming signal and perhaps channel estimates for each receive path are provided to an STC decoder 88, which provides STC decoding on each receive path to recover the transmitted symbols. The channel estimates may provide channel response information to allow the STC decoder 88 to better decode the symbols according to the STC encoding used by the base station 14.
The recovered symbols are placed back in order using symbol de-interleaver logic 90, which corresponds to the symbol interleaver logic 58 of the base station 14. The de-interleaved symbols are then demodulated or de-mapped to a corresponding bitstream using de-mapping logic 92. The bits are then de-interleaved using bit de-interleaver logic 94, which corresponds to the bit interleaver logic 54 of the transmitter architecture. The de-interleaved bits are then processed by rate de-matching logic 96 and presented to channel decoder logic 98 to recover the initially scrambled data and the CRC checksum. Accordingly, CRC logic 100 removes the CRC checksum, checks the scrambled data in traditional fashion, and provides it to the de-scrambling logic 102 for de-scrambling using the known base station de-scrambling code to recover the originally transmitted data 104.
For the present invention, the channel conditions of the MIMO channel are provided to feedback processing circuitry 106, which will function to determine codewords for the codebook C or codeword subset Si and provide the corresponding indices as codeword feedback to the base station 14 via the transmit circuitry 36. The feedback processing circuitry 106 may be considered part of the control system 32, but is separated for clarity.
Those skilled in the art will recognize improvements and modifications to the preferred embodiments of the present invention. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.

## Claims

1. A method of providing feedback from a wireless receiver, the method comprising, at the wireless receiver:
selecting a first codebook index;
transmitting, at a first time, first feedback comprising the first codebook index;
selecting a first subset index, wherein the first subset index is selected from a first subset of codebook indices corresponding to the first codebook index, wherein the first subset index of the first subset of codebook indices corresponds to a set of weighting factors to be applied to multiple input multiple output (MIMO) signals by an orthogonal frequency division multiplexing (OFDM) wireless transmitter;
transmitting, at a second time, second feedback comprising the first subset index;
determining whether to transmit a second codebook index or a second subset index, wherein the second subset index is selected by the wireless receiver from the first subset of codebook indices corresponding to the first codebook index; and
transmitting, at a third time, third feedback comprising one of the second codebook index or the second subset index.

2. The method of claim 1, wherein determining whether to transmit a second codebook index or a second subset index is based on a number of previous feedback instances.

3. The method of claim 1, further comprising:
receiving an OFDM transmission from the OFDM wireless transmitter based on the second feedback.

4. The method of claim 1, wherein determining whether to transmit a second codebook index or a second subset index comprises:
transmitting, for each of N consecutive feedback instances associated with a first mode of operation, subsequent to the first time, feedback comprising a respective subset index of the first subset of codebook indices.

5. The method of claim 4, further comprising:
selecting a second codebook index;
transmitting, at a fourth time after the N consecutive feedback instances, fourth feedback comprising the second codebook index;
determining a second subset of codebook indices, wherein the second subset of codebook indices corresponds to the second codebook index;
transmitting, for each of N consecutive feedback instances associated with the first mode of operation, subsequent to the fourth time, feedback comprising a respective subset index of the second subset of codebook indices.

6. The method of claim 5, wherein the first and second codebook indices are the same.

7. The method of claim 5, further comprising:
transmitting other feedback instances according to a second mode of operation, wherein the second mode of operation comprises selection from all codebook indices of one or more codebooks for each feedback instance associated with the second mode of operation.

8. An apparatus for providing wireless communications feedback, the apparatus comprising:
transmit circuitry;
a memory storing software instructions; and
one or more processors communicatively coupled to the transmit circuitry and the memory, the one or more processors configured to execute the software instructions, wherein, in executing the software instructions, the one or more processors cause the apparatus to:
select a first codebook index;
transmit, at a first time, first feedback comprising the first codebook index;
select a first subset index, wherein the first subset index is selected from a first subset of codebook indices corresponding to the first codebook index, wherein the first subset index of the first subset of codebook indices corresponds to a set of weighting factors to be applied to multiple input multiple output (MIMO) signals by an orthogonal frequency division multiplexing (OFDM) wireless transmitter;
transmit, at a second time, second feedback comprising the first subset index;
determine whether to transmit a second codebook index or a second subset index, wherein the second subset index is selected by a wireless receiver from the first subset of codebook indices corresponding to the first codebook index; and
transmit, at a third time, third feedback comprising one of the second codebook index or the second subset index.

9. The apparatus of claim 8, wherein determining whether to transmit a second codebook index or a second subset index is based on a number of previous feedback instances.

10. The apparatus of claim 8, further comprising:
receive circuitry communicatively coupled to the one or more processors;
wherein the one or more processors further cause the apparatus to:
receive an OFDM transmission from the OFDM wireless transmitter based on the second feedback.

11. The apparatus of claim 8, wherein, in determining whether to transmit a second codebook index or a second subset index, the one or more processors further cause the apparatus to:
transmit, for each of N consecutive feedback instances associated with a first mode of operation, subsequent to the first time, feedback comprising a respective subset index of the first subset of codebook indices.

12. The apparatus of claim 11, wherein the one or more processors further cause the apparatus to:
select a second codebook index;
transmit, at a fourth time after the N consecutive feedback instances, fourth feedback comprising the second codebook index;
determine a second subset of codebook indices, wherein the second subset of codebook indices corresponds to the second codebook index;
transmit, for each of N consecutive feedback instances associated with the first mode of operation, subsequent to the fourth time, feedback comprising a respective subset index of the second subset of codebook indices.

13. The apparatus of claim 12, wherein the first and second codebook indices are the same.

14. The apparatus of claim 12, further comprising:
transmit other feedback instances according to a second mode of operation, wherein the second mode of operation comprises selection from all codebook indices of one or more codebooks for each feedback instance associated with the second mode of operation.

15. A non-transitory computer readable memory medium storing program instructions executable by a processor to:
transmit, at a first time, first feedback comprising a first codebook index;
select a first subset index, wherein the first subset index is selected from a first subset of codebook indices corresponding to the first codebook index, wherein the first subset index of the first subset of codebook indices corresponds to a set of weighting factors to be applied to multiple input multiple output (MIMO) signals by an orthogonal frequency division multiplexing (OFDM) wireless transmitter;
transmit, at a second time, second feedback comprising the first subset index;
determine whether to transmit a second codebook index or a second subset index, wherein the second subset index is selected by a wireless receiver from the first subset of codebook indices corresponding to the first codebook index; and
transmit, at a third time, third feedback comprising one of the second codebook index or the second subset index.

16. The non-transitory computer readable memory medium of claim 15, wherein determining whether to transmit a second codebook index or a second subset index is based on a number of previous feedback instances.

17. The non-transitory computer readable memory medium of claim 15, wherein the program instructions are further executable by the processor to:
receive an OFDM transmission from the OFDM wireless transmitter based on the second feedback.

18. The non-transitory computer readable memory medium of claim 15, wherein, in determining whether to transmit a second codebook index or a second subset index, the program instructions are further executable by the processor to:
transmit, for each of N consecutive feedback instances associated with a first mode of operation, subsequent to the first time, feedback comprising a respective subset index of the first subset of codebook indices.

19. The non-transitory computer readable memory medium of claim 18, wherein the program instructions are further executable by the processor to:
select a second codebook index;
transmit, at a fourth time after the N consecutive feedback instances, fourth feedback comprising the second codebook index;
determine a second subset of codebook indices, wherein the second subset of codebook indices corresponds to the second codebook index;
transmit, for each of N consecutive feedback instances associated with the first mode of operation, subsequent to the fourth time, feedback comprising a respective subset index of the second subset of codebook indices.

20. The non-transitory computer readable memory medium of claim 19, wherein the program instructions are further executable by the processor to:
transmit other feedback instances according to a second mode of operation, wherein the second mode of operation comprises selection from all codebook indices of one or more codebooks for each feedback instance associated with the second mode of operation.