Abstract:
A base station including a plurality of codebooks embodied on a computer readable storage medium. The base station further includes a transceiver configured to i) notify a first receiver of a first codebook of the plurality of codebooks to be used for transmissions between the base station and the first receiver, ii) notify a second receiver of a second codebook of the plurality of codebooks to be used for transmissions between the base station and the second receiver, iii) receive, from the first receiver, a first precoding vector from the set of precoding vectors in the first codebook, iv) receive, from the second receiver, a second precoding vector from the set of precoding vectors in the second codebook, v) transmit, in accordance with the first precoding vector, first data to the first receiver, and vi) transmit, in accordance with the second precoding vector, second data to the second receiver.

Description:
RELATED APPLICATIONS 
     This present disclosure is a continuation of U.S. application Ser. No. 12/167,788, now U.S. Pat. No. 7,995,528, filed on Jul. 3, 2008, which claims priority to U.S. Provisional Application Ser. No. 60/950,453, filed on Jul. 18, 2007 and also is related to U.S. application Ser. No. 12/755,246, filed on Apr. 6, 2010 which is a continuation-in-part of U.S. application Ser. No. 12/167,788. 
    
    
     BACKGROUND 
     Beamforming is a commonly used technique in the downlink of advanced cellular systems such as 3G Long-Term Evolution (3G LTE) and Worldwide Interoperability for Microwave Access (WiMAX) systems. Beamforming uses coordinated transmissions across multiple transmit antennas at a base-station in order to direct a signal towards the intended receiver, typically a mobile receiver. The use of beamforming with a narrow beam helps to ensure that the signal strength at the mobile receiver is high, while at the same time ensures that interference caused to receivers at other locations within a particular cell is kept to a minimum. 
     Setting the coefficients of a beamformer requires channel knowledge at the base station. Specifically, the channel is measured at the receiver and measurements are fed back to the base station over the uplink. Feeding back the entire channel measurement typically requires too much overhead, so in practical systems the receiver generally measures the downlink channel and then selects a beamforming or ‘precoding’ vector p from a finite set of precoding vectors ψ={p 1 , . . . , p N } known as a codebook. This codebook is typically designed offline and is known to both the base station and the receiver. As a result the receiver only needs to feed back the index of the selected precoding vector, thus significantly reducing feedback overhead. 
     Consider, as shown in  Fig. 1 , a cell with two receivers, Receiver a and Receiver b and an associated base station. The channel row vector from the base station to Receiver a is denoted as h a , where the nth element contains the channel from the nth transmit antenna at the base station to the receiver&#39;s antenna. Note that in general there may be multiple antennas at the mobile receiver in which case h a  and p a  will be matrices. Similarly, denote h b  as the channel row vector from the base station to Receiver b. If precoding is applied, the signal transmitted by the base station will be as follows:
 
 x=p   a   x   a   +p   b   x   b ,
 
where p a  and p b  denote the precoding column vectors of Receivers a and b, and x a  and x b  denote the signals intended for Receivers a and b respectively. The signal received by Receiver a is then as follows:
 
 y   a   =h   a   p   a   x   a   +h   a   p   b   x   b   +z   a  
 
which leads to a signal to interference plus noise ratio (SINR) as follows:
 
     
       
         
           
             
               SINR 
               a 
             
             = 
             
               
                 
                   
                      
                     
                       
                         h 
                         a 
                       
                       ⁢ 
                       
                         p 
                         a 
                       
                     
                      
                   
                   2 
                 
                 ⁢ 
                 
                   S 
                   x 
                 
               
               
                 
                   
                     
                        
                       
                         
                           h 
                           a 
                         
                         ⁢ 
                         
                           p 
                           b 
                         
                       
                        
                     
                     2 
                   
                   ⁢ 
                   
                     S 
                     x 
                   
                 
                 + 
                 
                   S 
                   z 
                   ′ 
                 
               
             
           
         
       
     
     Ideally one would like to choose the precoding vector for Receiver a, p a  to be parallel to h a  so that the signal power at Receiver a is maximized. At the same time, one would like p a  to be orthogonal to h b  such that the interference caused to Receiver b is minimized. 
     Unfortunately, when Receivers a and b are in close vicinity to one another, h a ≈h b  and it becomes difficult to find a precoding vector that satisfies both criteria. Seen another way, the codebook which contains the set of available precoding vectors may not have a fine enough granularity in angular space to allow the signals intended for the two receivers to be adequately separated. For example, consider transmission with a 4 element (2-bit) codebook as shown in  FIG. 2 . 
     In this case one can either transmit to Receiver a using p 1 , which will cause severe interference to Receiver b, or transmit to Receiver a using p 2 , which will decrease the interference to Receiver b, but will also cause Receiver a to receive an extremely weak signal since it is located far outside of the main lobe of p 2 . 
     One solution to this problem is to increase the codebook size, as diagrammatically indicated in  FIG. 3 , thereby increasing the number of beams and achieving a finer granularity in angular space. This allows the receivers to be adequately separated, but unfortunately this approach requires a higher feedback overhead and increases the complexity of precoding vector selection at the receiver. 
     SUMMARY 
     This Summary is provided to introduce subject matter that is further described below in the Detailed Description and Drawings. Accordingly, the Summary should not be considered to describe essential features nor used to limit the scope of the claimed subject matter. 
     In one embodiment, a system comprises a base station configured to wirelessly communicate data to a plurality of receivers in a cell associated with the base station; multiple different codebooks, each codebook providing a set of pre-coding vectors that are used to provide individual beam patterns within the cell; and wherein the base station is further configured to allocate different codebooks to different receivers within the cell. 
     In yet other embodiments, a computer-implemented method comprises ascertaining that a plurality of receivers are within a particular cell; allocating different codebooks to different receivers within the cell, each codebook providing a set of pre-coding vectors that are used to provide individual beam patterns within the cell; and notifying individual receivers of corresponding codebooks that are to be used. 
     Other embodiments provide means for ascertaining that a plurality of receivers are within a particular cell; means for allocating different codebooks to different receivers within the cell, each codebook providing a set of pre-coding vectors that are used to provide individual beam patterns within the cell; and means for notifying individual receivers of corresponding codebooks that are to be used. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The same numbers are used throughout the drawings to reference like features. 
         FIG. 1  illustrates a base station and two receivers. 
         FIG. 2  illustrates transmission with a 4-element codebook. 
         FIG. 3  illustrates transmission, as in  FIG. 2 , only with a larger codebook. 
         FIG. 4  illustrates a system in accordance with one or more embodiments. 
         FIG. 5  illustrates an example transmitter in accordance with one or more embodiments. 
         FIG. 6  illustrates an example receiver in accordance with one or more embodiments. 
         FIG. 7  illustrates transmission using multiple codebooks in accordance with one or more embodiments. 
         FIG. 8  is a flow diagram that describes steps in a method in accordance with one or more embodiments. 
         FIG. 9  is a flow diagram that describes steps in a method in accordance with one or more embodiments. 
         FIG. 10  is a graph that illustrates throughput improvements using multiple codebooks in accordance with one or more embodiments. 
         FIGS. 11-14  illustrate example receivers in accordance with one or more embodiments. 
     
    
    
     DETAILED DESCRIPTION 
     Overview 
     In one or more embodiments, a cellular system utilizes different codebooks of precoding vectors for different receivers within a particular cell. A set of different codebooks is designed and then used by a base station as a basis to allocate to various receivers in a dynamic fashion. In at least some embodiments, the codebooks are designed to be non-overlapping in angular space. For example, codebooks can be designed to be generally orthogonal to one another thereby increasing the separation between receivers that use the different codebooks. 
     In at least some embodiments, codebooks can be allocated responsive to a determination that two or more receivers are geographically proximate one another in a manner which would permit an undesirable amount of interference. In yet other embodiments, codebooks can be allocated in a more random fashion. 
     In the discussion that follows, a section entitled “Operating Environment” is provided and describes one example operating environment in which one or more embodiments can be employed. Following this, a section entitled “Example Transmitter” is provided and gives an example of a transmitter in accordance with one or more embodiments. Next, a section entitled “Example Receiver” is provided and gives an example of a receiver in accordance with one or more embodiments. Following this, a section entitled “Implementation Example” is provided and describes an example implementation in accordance with one or more embodiments. Following this, a section entitled “Example Receiver Environments” is provided and describes various example receiver environments in accordance with one or more embodiments. 
     Operating Environment 
       FIG. 4  illustrates a communication system in accordance with one or more embodiments generally at  400 . In the illustrated and described embodiments, communication system  400  can work in connection with any suitable wireless or cellular system. By way of example and not limitation, communication system  400  can work in connection with 3G Long-Term Evolution (3G LTE) and/or Worldwide Interoperability for Microwave Access (WIMAX) systems. Typically, such systems include one or more base stations that transmit and receive signals from one or more receivers. In at least some instances, the receivers are mobile receivers that can move within a particular transmission cell. WIMAX is typically used in a number of scenarios including, by way of example and not limitation, Voice over IP or “VoIP”, TCP/IP, and with applications having different quality of service or QoS requirements, as will be appreciated by the skilled artisan. 
     Communication system  400  includes, in this example, one or more base stations  402  and multiple receivers  404 ,  406 , and  408 . Base stations can be connected to an IP network  410  via a gateway (not shown). Base station  402  can, and typically does include multiple transmit antennas that are used to effect transmissions to the receivers. The IP network can include various special and general purpose servers shown generally at  412 . Elements within both the base stations and receivers are configured with processors, memories, instruction sets and the like, that implement the functionality described in this document. Typically, communication that takes place within the system goes through base station  402 . The base station is responsible for allocating bandwidth and can typically handle many receivers. In at least some embodiments, base station  402  is implemented as a WIMAX tower, which is similar in concept to a cell-phone tower. A WIMAX tower can provide coverage to a very large area, e.g., 8000 square kilometers. 
     Receivers can include, by way of example and not limitation, receivers such as those that are associated with residential and business customers. The receiver and associated antenna(s) can be embodied in a small box or PCMCIA card, or can be embodied in some type of computing device such as a laptop computer, notebook computer, desktop computer, mobile device and/or a handheld computing device to name just a few. Of course, the receiver can be embodied in other types of computing devices without departing from the spirit and scope of the claimed subject matter. 
     Communication system  400  includes two types of communication links. A downlink is used for communication from the base station  402  to the receivers  404 ,  406 , and  408 . An uplink is used for communication from the receivers to base station  402 . 
     Communication system  400  utilizes the base station  402  to communicate data, such as packets and/or other information, to the various receivers. Any suitable data format can be used, as will be appreciated by the skilled artisan. When individual receivers boot up, each can register with the base station. The base station can serve to exchange messages with the receivers located in a corresponding service cell, authenticate and register receivers via one or more servers in the IP network, transmit service request messages from the receivers to the IP network, and transmit packets from the IP network to the receivers, and so on. 
     As noted above, in one or more embodiments a base station has at its disposal multiple different codebooks that can be allocated to receivers within a particular cell. The codebooks each provide a set of precoding vectors which define coefficients that are utilized to provide a beam pattern. By using the different codebooks, different beam patterns can be defined. The different codebooks can then be assigned or allocated to different receivers within the cell in order to reduce interference between transmitted signals by virtue of using different beam patterns for different receivers. 
     Example Transmitter 
       FIG. 5  illustrates a transmitter, such as that embodied at base station  402  ( FIG. 4 ), generally at  500  in accordance with one or more embodiments. In this example, transmitter  500  includes a buffer  502 , an encoder  504 , a packet generator  506 , and a transceiver  508  including one or more antennas. The transceiver  508  includes a set of codebooks  510 . Any suitable number of codebooks can be used. The codebooks are typically embodied on some type of computer-readable storage media. 
     Buffer  502  includes storage media such as random access memory for storing data that is to be transmitted to a receiver, such as one or more receivers (not shown). Buffer  502  is coupled with encoder  504 , which is configured to encode the buffer data in any suitable encoding scheme. 
     Encoder  504  is communicatively coupled with packet generator  506 . The packet generator includes circuitry and logic that constructs data packets that are to be transmitted to various receivers. The packet generator is coupled with transceiver  508 , which is configured to transmit the data packets to the various receivers, as will be understood by the skilled artisan. 
     The set of codebooks  510  can be used to allocate individual codes books to individual receivers within a particular cell. The codebooks each provide a set of precoding vectors which define coefficients that are utilized to provide a beam pattern. By using the different codebooks, different beam patterns can be defined. The different codebooks can then be assigned or allocated to different receivers within the cell in order to reduce interference between transmitted signals by virtue of using different beam patterns for different receivers. 
     Example Receiver 
       FIG. 6  illustrates a receiver, generally at  600 , in accordance with one or more embodiments. The illustrated receiver represents a receiver, such as receivers  404 ,  406 , and  408  in  FIG. 4 . In this example, receiver  600  includes a transceiver  602 , a decoder  604 , and a logic unit  606 . In addition, the receiver includes or otherwise has access to a set of codebooks  608 . Codebook set  608  includes the same codebooks that are included in codebook set  510  ( FIG. 5 ). The codebooks are typically embodied on some type of computer-readable storage media. 
     In the illustrated and described embodiment, transceiver  602  is one that can operate in compliance with any suitable wireless or cellular standard, such as those named above and others. 
     Transceiver  602  is configured to receive transmitted packets from a transmitter, such as that shown in  FIG. 5 . Transceiver  602  is communicatively coupled to decoder  604  and provides received packets to the decoder for decoding in accordance with usual operations which will be understood by the skilled artisan. 
     Logic unit  606  is configured with a microprocessor controller and logic to facilitate decoding operations. Decoder  604  outputs data that has been decoded. 
     In operation, the base station can select, from its set of codebooks, a particular codebook for a particular receiver. The base station then notifies the receiver of the particular codebook which is then used for transmissions to and from the receiver. The base station can use any suitable criteria upon which to base its selection of a particular codebook for a particular receiver. For example, in some embodiments, the base station may dynamically assign codebooks to receivers based upon knowledge that the receiver is within an associated cell. Alternately or additionally, the base station may take into account criteria associated with the geographical proximity of receivers. That is, the base station may acquire information that describes the physical locations of the receivers within a particular cell. Using the information, the base station can then make codebook allocations. Some examples of how this can be done are provided just below. 
     Implementation Example 
       FIG. 7  illustrates a system in accordance with one or more embodiments. Here, two different codebooks are used. The codebooks are represented as follows:
 
ψ a   ={p   a   1   , . . . ,p   a   4 }
 
ψ b   ={p   b   1   , . . . ,p   b   4 },
 
where p represents a beam-forming or precoding vector.
 
     In one or more embodiments, the different codebooks are designed and allocated by the base station to different receivers, such as mobile receivers, in a dynamic fashion. In at least some embodiments, the codebooks are designed to be generally orthogonal or non-overlapping in angular space, thereby increasing the separation between receivers that use the different codebooks. Codebooks can be allocated in any suitable fashion using any suitable method examples of which are described just below. 
       FIG. 8  is a flow diagram that describes a method in accordance with one embodiment. The method can be implemented in connection with any suitable hardware, software, firmware, or combination thereof. In at least some embodiments, the method can be implemented, at least in part, by a base station such as those that are described above. 
     Step  800  ascertains that multiple receivers are within a particular cell. This step can be performed in any suitable way. For example, a base station can maintain a list of receivers that are located within an associated cell. Step  802  allocates different codebooks for different receivers. This step can be performed by a base station selecting a particular codebook relative to a group of receivers in a manner that is directed to reducing associated interference with transmissions that occur using a codebook. Step  804  notifies individual receivers of a codebook to use. This step can be performed by transmitting an index of an associated codebook to a particular receiver. Once the particular codebook is known to the receiver, transmissions between the base station and an associated receiver can be conducted using the codebook to select particular beam patterns for transmissions. 
       FIG. 9  is a flow diagram that describes a method in accordance with one embodiment. The method can be implemented in connection with any suitable hardware, software, firmware, or combination thereof. In at least some embodiments, the method can be implemented, at least in part, by a base station such as those that are described above. 
     Step  900  ascertains that receivers within a particular cell satisfy particular criteria. Any suitable criteria can be used. For example, such criteria can include the geographical proximity of the receivers relative to one another. Any suitable method can be used to ascertain the geographical proximity of the receivers. For example, in at least some embodiments, the base station can detect, using multiple antennas, whether the uplink signals of individual receivers have similar angles of arrival. Alternately or additionally, GPS techniques can be used in cases where receivers are equipped with GPS hardware. If step  900  ascertains that receivers within a particular cell satisfy the particular criteria, step  902  allocates different codebooks for different receivers. This step can be performed by a base station selecting a particular codebook relative to a group of receivers in a manner that is directed to reducing associated interference with transmissions that occur using a codebook. Step  904  notifies individual receivers of a codebook to use. This step can be performed by transmitting an index of an associated codebook to a particular receiver. Once the particular codebook is known to the receiver, transmissions between the base station and an associated receiver can be conducted. 
       FIG. 10  is a graph that shows an example improvement in throughput that can be achieved through the use of precoding using multiple different codebooks. Multi-user MIMO systems with multiple codebooks can reduce interference and increase spatial diversity. This improves throughput because users with less interference can support more aggressive MCSs (modulation and coding schemes) and thus more data can be encoded and transmitted. 
     Example Receiver Environments 
     Referring now to  FIGS. 11-14 , various example implementations of receiver environments are shown. The various receiver environments can utilize the techniques described above. 
     Referring now to  FIG. 11 , a receiver may be implemented as part of a communication system of a vehicle  1100 , a WLAN interface  1118  and/or mass data storage  1114  of the vehicle control system. In some implementations, a powertrain control system  1102  receives inputs from one or more sensors  1104  such as temperature sensors, pressure sensors, rotational sensors, airflow sensors, and/or any other suitable sensors that generate one or more output control signals  1106 , such as engine operating parameters, transmission operating parameters, and/or other control signals. 
     A receiver can be embodied in other control systems  1108  of vehicle  1100 . Control system  1108  may likewise receive signals from input sensors  1110  and/or output control signals  1112  to one or more output devices. In some implementations, control system  1108  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  1102  may include mass data storage  1114  that stores data in a nonvolatile manner. Mass data storage  1114  may include optical and/or magnetic storage devices for example hard disk drives HDD and/or DVDs. The magnetic storage device may be a mini HDD that includes one or more platters having a diameter that is smaller than approximately 1.8″. Powertrain control system  1102  may be connected to memory  1116  such as RAM, ROM, low latency nonvolatile memory such as flash memory, and/or other suitable electronic data storage. Powertrain control system  1102  also may support connections with a WLAN via a WLAN network interface  1118 . The control system  1108  may also include mass data storage, memory, and/or a WLAN interface (all not shown). 
     Referring now to  FIG. 12 , the receiver may be embodied in a cellular phone  1200  that may include a cellular antenna  1202 . The receiver may be implemented in connection with either or both signal processing and/or control circuits, which are generally identified in at  1204 , a WLAN interface  1218 , and/or mass data storage of the cellular phone  1200 . In some implementations, cellular phone  1200  includes a microphone  1206 , an audio output  1208  such as a speaker and/or audio output jack, a display  1210  and/or an input device  1212  such as a keypad, pointing device, voice actuation, and/or other input device. Signal processing and/or control circuits  1204  and/or other circuits (not shown) in cellular phone  1200  may process data, perform coding, decoding and/or encryption, perform calculations, format data, and/or perform other cellular phone functions. 
     Cellular phone  1200  may include mass data storage  1214 , which stores data in a nonvolatile manner such as optical and/or magnetic storage devices for example hard disk drives HDD and/or DVDs. The magnetic storage device may be a mini HDD that includes one or more platters having a diameter that is smaller than approximately 1.8″. Cellular phone  1200  may be connected to memory  1216  such as RAM, ROM, low latency nonvolatile memory such as flash memory, and/or other suitable electronic data storage. Cellular phone  1200  also may support connections with a WLAN via a WLAN network interface  1218 . 
     Referring now to  FIG. 13 , a receiver may be embodied in a media player  1300  and may be implemented in connection with either or both signal processing and/or control circuits, which are generally identified at  1302 , a WLAN interface  1314 , and/or mass data storage  1310  of the media player  1300 . In some implementations, media player  1300  includes a display  1304  and/or a user input  1306  such as a keypad, touchpad, and the like. In some implementations, media player  1300  may employ a graphical user interface (GUI) that typically employs menus, drop down menus, icons, and/or a point-and-click interface via display  1304  and/or user input  1306 . Media player  1300  further includes an audio output  1308  such as a speaker and/or audio output jack. Signal processing and/or control circuits  1302  and/or other circuits (not shown) of media player  1300  may process data, perform coding, decoding and/or encryption, perform calculations, format data, and/or perform any other media player function. 
     Media player  1300  may include mass data storage  1310  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 hard disk drives HDD and/or DVDs. The magnetic storage device may be a mini HDD that includes one or more platters having a diameter that is smaller than approximately 1.8″. Media player  1300  may be connected to memory  1312  such as RAM, ROM, low latency nonvolatile memory such as flash memory, and/or other suitable electronic data storage. Media player  1300  also may support connections with a WLAN via a WLAN network interface  1314 . 
     Referring to  FIG. 14 , a receiver may be embodied in connection with a Voice over Internet Protocol (VoIP) phone  1400  that may include an antenna  1402  or, alternately or additionally, in connection with a VoIP box that enables a conventional telephone to be plugged in and utilized with VoIP technology. The receiver may be implemented in connection with either or both signal processing and/or control circuits, which are generally identified at  1404 , a wireless interface  1414 , and/or mass data storage  1416  of the VoIP phone  1400 . In some implementations, VoIP phone  1400  includes, in part, a microphone  1406 , an audio output  1408  such as a speaker and/or audio output jack, a display monitor  1410 , an input device  1412  such as a keypad, pointing device, voice actuation, and/or other input devices, and a Wireless Fidelity (Wi-Fi) communication module  1414 . Signal processing and/or control circuits  1404  and/or other circuits (not shown) in VoIP phone  1400  may process data, perform coding, decoding and/or encryption, perform calculations, format data, and/or perform other VoIP phone functions. 
     VoIP phone  1400  may include mass data storage  1416  that stores data in a nonvolatile manner such as optical and/or magnetic storage devices, for example hard disk drives HDD and/or DVDs. The magnetic storage device may be a mini HDD that includes one or more platters having a diameter that is smaller than approximately  1 . 8 ″. VoIP phone  1400  may be connected to memory  1418 , which may be a RAM, ROM, low latency nonvolatile memory such as flash memory, and/or other suitable electronic data storage. VoIP phone  1400  is configured to establish communications link with a VoIP network (not shown) via Wi-Fi communication module  1414 . Still other implementations in addition to those described above are contemplated. 
     Conclusion 
     In one or more embodiments, a cellular system utilizes different codebooks of precoding vectors for different receivers within a particular cell. A set of different codebooks is designed and then used by a base station as a basis to allocate to various receivers in a dynamic fashion. In at least some embodiments, the codebooks are designed to be non-overlapping in angular space. For example, codebooks can be designed to be generally orthogonal to one another thereby increasing the separation between receivers that use the different codebooks. 
     In at least some embodiments, codebooks can be allocated responsive to a determination that two or more receivers are geographically proximate one another in a manner which would permit an undesirable amount of interference. In yet other embodiments, codebooks can be allocated in a more random fashion. 
     In at least some embodiments, the approach outlined above can ensure that codebooks of the individual receivers do not increase in size, which allows performance to be improved without the need for additional feedback or higher complexity during precoder selection. 
     Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.