Patent Publication Number: US-8121567-B2

Title: Double search algorithm of user group selection for multiuser MIMO downlink transmission

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS/INCORPORATION BY REFERENCE 
     This application is a continuation application of U.S. application Ser. No. 11/231,501 filed Sep. 21, 2005. This application also makes reference to:
     U.S. application Ser. No. 11/232,340 filed Sep. 21, 2005, issued as U.S. Pat. No. 7,826,416 on Nov. 2, 2010 ;   U.S. application Ser. No. 11/232,266 filed Sep 21, 2005, issued as U.S. Pat. No. 7,630,337 on Dec. 8, 2009;   U.S. application Ser. No. 11/231,699 filed Sep. 21, 2005, issued as U.S. Pat. No. 7,839,842 on Nov. 23, 2010;   U.S. application Ser. No. 11/231,586 filed Sep. 21, 2005;   U.S. application Ser. No. 11/232,369 filed Sep. 21, 2005, issued as U.S. Pat. No. 7,636,553 on Dec. 22, 2009;   U.S. application Ser. No. 11/231,701 filed Sep. 21, 2005;   

     U.S. application Ser. No. 11/232,362 filed Sep. 21, 2005, issued as U.S. Pat. No. 7,515,878 on Apr. 7, 2009;
     U.S. application Ser. No. 11/231,557 filed Sep. 21, 2005; and   U.S. application Ser. No. 11/231,416 filed Sept. 21, 2005.   

     Each of the above stated applications is hereby incorporated by reference in its entirety. 
    
    
     FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT 
     [Not Applicable] 
     MICROFICHE/COPYRIGHT REFERENCE 
     [Not Applicable] 
     FIELD OF THE INVENTION 
     Certain embodiments of the invention relate to processing of signals in communication systems. More specifically, certain embodiments of the invention relate to a double search algorithm for user group selection for multiuser multiple-input-multiple-output (MIMO) downlink transmission. 
     BACKGROUND OF THE INVENTION 
     Mobile communications have changed the way people communicate and mobile phones have been transformed from a luxury item to an essential part of every day life. The use of mobile phones is today dictated by social situations, rather than hampered by location or technology. While voice connections fulfill the basic need to communicate, and mobile voice connections continue to filter even further into the fabric of every day life, the mobile Internet is the next step in the mobile communication revolution. The mobile Internet is poised to become a common source of everyday information, and easy, versatile mobile access to this data will be taken for granted. 
     Third generation (3G) cellular networks have been specifically designed to fulfill these future demands of the mobile Internet. As these services grow in popularity and usage, factors such as cost efficient optimization of network capacity and quality of service (QoS) will become even more essential to cellular operators than it is today. These factors may be achieved with careful network planning and operation, improvements in transmission methods, and advances in receiver techniques. To this end, carriers need technologies that will allow them to increase downlink throughput and, in turn, offer advanced QoS capabilities and speeds that rival those delivered by cable modem and/or DSL service providers. 
     In order to meet these demands, communication systems using multiple antennas at both the transmitter and the receiver have recently received increased attention due to their promise of providing significant capacity increase in a wireless fading environment. These multi-antenna configurations, also known as smart antenna techniques, may be utilized to mitigate the negative effects of multipath and/or signal interference on signal reception. It is anticipated that smart antenna techniques may be increasingly utilized both in connection with the deployment of base station infrastructure and mobile subscriber units in cellular systems to address the increasing capacity demands being placed on those systems. These demands arise, in part, from a shift underway from current voice-based services to next-generation wireless multimedia services that provide voice, video, and data communication. 
     The utilization of multiple transmit and/or receive antennas is designed to introduce a diversity gain and to increase the degrees of freedom to suppress interference generated within the signal reception process. Diversity gains improve system performance by increasing received signal-to-noise ratio and by stabilizing the transmission link. On the other hand, more degrees of freedom may allow multiple transmissions that may provide more robustness against signal interference, and/or by permitting greater frequency reuse for higher capacity. In communication systems that incorporate multi-antenna receivers, a set of M receive antennas may be utilized to null the effect of (M−1) interferers, for example. Accordingly, N signals may be simultaneously transmitted in the same bandwidth using N transmit antennas, with the transmitted signal then being separated into N respective signals by way of a set of N antennas deployed at the receiver. Systems that utilize multiple transmit and receive antennas may be referred to as multiple-input multiple-output (MIMO) systems. One attractive aspect of multi-antenna systems, in particular MIMO systems, is the significant increase in system capacity that may be achieved by utilizing these transmission configurations. For a fixed overall transmitted power, the capacity offered by a MIMO configuration may scale with the increased signal-to-noise ratio (SNR). For example, in the case of fading multipath channels, a MIMO configuration may increase system capacity by nearly M additional bits/cycle for each 3-dB increase in SNR. 
     The widespread deployment of multi-antenna systems in wireless communications has been limited by the increased cost that results from increased size, complexity, and power consumption. This poses problems for wireless system designs and applications. As a result, some initial work on multiple antenna systems may be focused on systems that support single user point-to-point links. However, the use of multi-antenna techniques for a multiuser environment to improve total throughput remains a challenge. 
     Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings. 
     BRIEF SUMMARY OF THE INVENTION 
     A system and/or method is provided for a double search algorithm for user group selection for multiuser multiple-input-multiple-output (MIMO) downlink transmission, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims. 
     These and other features and advantages of the present invention may be appreciated from a review of the following detailed description of the present invention, along with the accompanying figures in which like reference numerals refer to like parts throughout. 
    
    
     
       BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS 
         FIG. 1A  is a top-level block diagram illustrating an exemplary multiuser multiple-input-multiple-output (MIMO) downlink transmission system with linear precoding, in accordance with an embodiment of the invention. 
         FIG. 1B  is a diagram illustrating exemplary signal transmission from the base station to the receivers of  FIG. 1B , in accordance with an embodiment of the invention. 
         FIG. 2A  is a flow diagram illustrating exemplary steps in a double search algorithm for user group selection, in accordance with an embodiment of the invention. 
         FIG. 2B  is a flow diagram illustrating exemplary steps in user pair selection in a double search algorithm for user group selection, in accordance with an embodiment of the invention. 
         FIG. 3  is a flow diagram illustrating exemplary steps for base station transmission after user group selection, in accordance with an embodiment of the invention. 
         FIG. 4  is a graph that illustrates exemplary downlink transmission schemes in terms of sum rate, in accordance with an embodiment of the present invention. 
         FIG. 5  is a graph that illustrates exemplary downlink transmission schemes in terms of bit error rate, in accordance with an embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Certain embodiments of the invention may be found in a system and/or method for a double search algorithm for user group selection for multiuser multiple-input-multiple-output (MIMO) downlink transmission. In accordance with various embodiments of the invention, the double search algorithm may reduce the computational complexity typically associated with optimal brute-force user group selection while achieving performances that may exceed the TDMA scheme and be on par with systems having ideal channel state information (CSI) at the transmitter. The double search algorithm may comprise a first search operation that may be based on a first user having a channel gain greater than that of other users and a second search operation that may be based on a second user having a channel gain greater than that of the remaining users. A maximized system capacity may be determined based on the maximized system capacities determined in the first and second search loop. A receiver pair associated with the maximized system capacity may be selected as the user group. 
     In a multiuser communication system, employing multiple antennas at the base station may improve the downlink system capacity. Communicating simultaneously to multiple users through precoding at the transmitter when channel state information (CSI) is available may result in capacity improvement. Zero-forcing (ZF) linear precoding combined with an optimal user group selection algorithm may be utilized to asymptotically achieve the sum capacity when the number of users, K, approaches infinity. Furthermore, ZF precoders with that utilize a brute-force search algorithm may, in some instances, provide near-optimal performance even with a limited number of users, such as K=10, for example. Utilizing zero-forcing precoding in a multiuser environment may provide improvements to future broadband wireless data communication systems with reduced computational complexity as compared to optimal brute-force user group selection algorithms. 
       FIG. 1A  is a top-level block diagram illustrating an exemplary multiuser multiple-input-multiple-output (MIMO) downlink transmission system with linear precoding, in accordance with an embodiment of the invention. Referring to  FIG. 1A , there is shown a communication system  100  that may comprise a base station  102   a  and a plurality of users  122   a , . . . ,  130   a . In the communication system  100 , the base station  102   a  may be equipped with M antennas and K users  122   a , . . . ,  130   a  may each have a single antenna. In this implementation, the total number of users or receiver antennas may be equal or higher than the number of base station antennas, that is, K≦M. 
     The base station  102   a  may comprise a plurality of channel encoders  104   a , . . . ,  106   a , a user scheduler  108   a , a plurality of modulators (MOD)  110   a , . . . ,  112   a , a power control block  114   a , a beamforming or linear precoding block  116   a , a channel state information (CSI) block  152 , a processor  154 , and a memory  156 . Each of the plurality of users  122   a , . . . ,  130   a  may comprise one of a plurality of demodulators (DEM)  132   a , . . . ,  140   a , and one of a plurality of channel decoders  142   a , . . . ,  150   a.    
     The channel encoders  104   a , . . . ,  106   a  may comprise suitable logic, circuitry, and/or code that may be adapted to encode binary data for each of the K users in the communication system  100 . The beamforming or linear precoding block  116   a  may comprise suitable logic, circuitry, and/or code that may be adapted to processes the user data symbols to separate signals intended for different users such that each of the users receive little or no interference from other users. With M antennas at the base station  102   a , the beamforming or linear precoding block  116   a  may separate at most M different signals, that is, the base station  102   a  may transmit to at most M users at a time. Therefore, for each channel realization, the base station  102   a  may need to select M or less than M users among all the K users to transmit. 
     The user scheduler  108   a  may comprise suitable logic, circuitry, and/or code that may be adapted to find a best user group that optimizes certain performance criterion such as the sum throughput of the system, for example. In this regard, the user scheduler  108   a  may be adapted to perform the steps of a double search user selection algorithm to find the best user group. The user scheduler  108   a  may utilize knowledge of the channel estate information (CSI) provided by the CSI block  152  when determining the best user group. The user scheduler  108   a  may be adapted to select a first user with the strongest channel gain and a second user with the second strongest channel gain. The user scheduler  108   a  may be adapted to determine a first maximum system capacity based on the first user and a second maximum system capacity based on the second user. The user scheduler  108   a  may also be adapted to select the highest of the first maximum system capacity and the second maximum system capacity as the maximum system capacity to be supported by the communication system  100 . The system capacity may refer to the transmit data rate between the base station  102   a  and at least one user selected from the K users. The first maximum system capacity and the second maximum system capacity may be based on transmit data rate to a chosen group of users, for example, a pair of users. In this regard, for a case when M=2, the user scheduler  108   a  may select a user group comprising a pair of users associated with the maximum system capacity selected. 
     The modulators  110   a , . . . ,  112   a  may comprise suitable logic, circuitry, and/or code that may be adapted to modulate the binary data of each of the users selected by the user scheduler  108   a . In this regard, the modulation operation on the binary data may result in a plurality of complex symbols, for example. The power control block  114   a  may comprise suitable logic, circuitry, and/or code that may be adapted to allocate different users with different power levels in accordance with their respective channel quality, for example. 
     The user scheduler  108   a , the power control block  114   a , and/or the beamforming or linear precoding block  116  may require knowledge of the state of the downlink channel. The CSI block  152  may comprise suitable logic, circuitry, and/or code that may be adapted to receive, store and/or transfer channel state information associated with the users  122   a , . . . ,  130   a . In this regard, the CSI block  152  may be adapted to transfer the channel state information to the user scheduler  108   a , the power control block  114   a , and/or the beamforming or linear precoding block  116  when necessary. 
     The processor  154  may comprise suitable logic, circuitry, and/or code that may be adapted to process information and/or data associated with the generation of transmission signals at the base station  102   a . The processor  154  may also be adapted to control at least a portion of the operations of the base station  102   a  such as the channel encoders  104   a , . . . ,  106   a , the user scheduler  108   a , the modulators (MOD)  110   a , . . . ,  112   a , the power control block  114   a , the beamforming or linear precoding block  116   a , the CSI block  152 , and/or the memory  156 . The memory  156  may comprise suitable logic, circuitry, and/or code that may be adapted to store data and/or control information that may be utilized in the operation of at least a portion of the base station  102   a.    
     The demodulators  132   a , . . . ,  140   a  in the users  122   a , . . . ,  130   a  may comprise suitable logic, circuitry, and/or code that may be adapted to demodulate the signals received from the base station  102   a , for example. The channel decoders  142   a , . . . ,  150   a  may comprise suitable logic, circuitry, and/or code that may be adapted to decode the demodulated signals from the demodulators  132   a ,  140   a  into binary bit streams, for example. 
       FIG. 1B  is a diagram illustrating exemplary signal transmission from the base station to the receivers of  FIG. 1B , in accordance with an embodiment of the invention. There is shown a base station  170 , a first user (user  1 )  160 , and a second user (user  2 )  162 . The base station  170  may comprise antennas  152 ,  154 ,  156 , and  158 . The operation of the base station  170  may be substantially similar to the operation of the base station  102   a  described in  FIG. 1A . The operation of the first user  160  and the second user  162  may be substantially similar to the operation of users  122   a , . . . ,  130   a  in  FIG. 1A . In this regard, the first user  160  and the second user  162  may each have a single antenna. 
     In this instance, the base station  170  may transmit signals  161   a ,  161   b ,  163   a , and  163   b , for example. The signals  161   a  and  161   b  may be intended to be received by the second user  162 . The signals  163   a  and  156   b  may be intended to be received by the first user  160 . The first user  160  may receive signals  161   a  and  163   a , where signal  161   a  was intended for the second user  162 . The second user  162  may receive signals  161   b  and  163   b , where signal  163   b  was intended for the first user  160 . 
     When the base station  170  is equipped with M antennas and there are K users where each user has a single antenna, the signal model may be expressed as: 
                       [           y   1               y   2             ⋮             y   k           ]     =         [           h   1               h   2             ⋮             h   k           ]     ⁢   x     +   n       ,           (   1   )               
where y k  (k=1, . . . , K) is the signal received by user k, h k ε  is the channel vector to user k, xε  is the transmitted symbol vector by the base station  170 , and nε  is the additive white Gaussian noise (AWGN) with zero mean and unit variance. The transmitted symbols may satisfy certain power constraint, for example E[x H x]≦P where (•) H  represents a complex conjugate transpose operation.
 
     In this exemplary analysis, each element in h k  may be a zero-mean circularly symmetric complex Gaussian (ZMCSCG) random variable with unit variance. Moreover, the users may experience independent fading and therefore the channel vectors {h k } k=1   K  may be statistically independent from each other. The channel state information (CSI), h k  may be known to user k, but may not be known to other user devices. The base station  170  may have knowledge of the CSI for all users. This may occur in a time division duplex (TDD) system where the channel reciprocity may be available or in a frequency division duplex (FDD) system where CSI feedback may be received by the base station  170  from the users. 
     Employing multiple antennas at the base station in cellular multiuser communication systems may improve the downlink system capacity. This approach may be utilized with any multiuser MIMO system, such as CDMA2000, WCDMA, and Wireless LAN (WLAN), for example. The capacity improvement may be attained by communicating simultaneously to multiple users through precoding at the transmitter or base station when channel state information is available. In this regard, a transmitter or base station may refer to any device or equipment may be adapted to communicate with multiple other devices, users, and/or receivers. Moreover, user or receiver may refer to user device or equipment that may be adapted for communication with a base station and/or other devices. Dirty paper coding (DPC) may be utilized as a precoding scheme that may achieve the sum capacity, however, it may be difficult to implement due to complexity issues. There may also exist other suboptimal but relatively low complexity schemes for multiuser MIMO downlink, such as linear precoding, Tomlinson-Harashima precoding, and vector encoding, for example. 
     Recently, it has been shown that zero-forcing (ZF) linear precoder may achieve the sum capacity when combined with infinite-order multiuser diversity, that is, when the number of users K approaches infinity. Moreover, ZF precoders may provide near-optimal performance even with a limited number of users, when K=10 for example. The following discussion addresses the use of zero-forcing precoders in a multiuser environment. 
     Zero-forcing precoders may be a specific type of linear precoders. When the base station, for example the base station  102   a  in  FIG. 1A , decides to transmit to a group of users D ⊂ {1, . . . , K} with d=|D|≦K, a linear precoding scheme linearly weighs the data symbols, s=[s l , . . . , s d ] T , before they are transmitted from the base station,
 
x=FPs,  (2)
 
where x is the transmitted signal vector as in equation (1), F=[f l , . . . , f d ] is the M×d linear precoding matrix with normalized columns (∥f k ∥)=1, and P=diag{P d } with Σ i=1   d P i ≦P is the power control matrix that allocates transmit power to the different users. The received signal may be given by:
 
     
       
         
           
             
               
                 
                   
                     [ 
                     
                       
                         
                           
                             γ 
                             1 
                           
                         
                       
                       
                         
                           
                             γ 
                             2 
                           
                         
                       
                       
                         
                           ⋮ 
                         
                       
                       
                         
                           
                             γ 
                             d 
                           
                         
                       
                     
                     ] 
                   
                   = 
                   
                     
                       
                         [ 
                         
                           
                             
                               
                                 h 
                                 1 
                               
                             
                           
                           
                             
                               
                                 h 
                                 2 
                               
                             
                           
                           
                             
                               ⋮ 
                             
                           
                           
                             
                               
                                 h 
                                 d 
                               
                             
                           
                         
                         ] 
                       
                       ⁢ 
                       FPs 
                     
                     + 
                     
                       n 
                       . 
                     
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
           
         
       
     
     A zero-forcing precoder may utilize a pseudo-inverse of the overall channel matrix H D =[h l   T , . . . , h d   T ] T  as the weighting matrix when H D  may have full rank according to the following equation: 
                       W   D     =       H   D   †     =         H   D   H     ⁡     (       H   D     ⁢     H   D   H       )         -   1           ,           (   4   )                   F   D     =       W   D     ⁡     [           1     w   1                                                   ⋱                                                 1     w   d             ]         ,           (   5   )               
where {w i } i=1   d  are the columns of w D .
 
By defining
 
                     ξ   i     ⁢     =   △     ⁢     1     w   i               (   6   )               
and substituting equation (5) into equation (3), the received signal for each user with zero-forcing precoding may be expressed as,
 
 yi=ξ   i   P   i   s   i   +n   i   ,∀iεD   (7)
 
In this regard, the multiuser downlink channel may become a set of parallel channels. The maximum sum rate of the given user group D may be given by the following expression:
 
                     C   D     ⁢       ∑     i   ∈   D       ⁢     log   ⁡     (     1   +       ξ   i     ⁢     P   i         )                 (   8   )               
where the optimal P i  may be given by the water-filling solution,
 
                     P   i     =       (     μ   -     1     ξ   i         )     +             (   9   )               
with the water level μ chosen to satisfy
 
                 ∑     i   ∈   D       ⁢       (     μ   -     1     ξ   i         )     +       =     P   .           
The maximum achievable sum rate for a given channel realization may be obtained by searching over all the possible user groups, that is,
 
     
       
         
           
             
               
                 
                   C 
                   = 
                   
                     
                       max 
                       
                         
                           D 
                           ⊆ 
                           
                             { 
                             
                               1 
                               , 
                               … 
                               ⁢ 
                               
                                   
                               
                               , 
                               K 
                             
                             } 
                           
                         
                         , 
                         
                             
                         
                         ⁢ 
                         
                           
                              
                             D 
                              
                           
                           ≤ 
                           M 
                         
                       
                     
                     ⁢ 
                     
                       
                         C 
                         D 
                       
                       . 
                     
                   
                 
               
               
                 
                   ( 
                   10 
                   ) 
                 
               
             
           
         
       
     
     An optimal or best user group selection for ZF precoding may require searching over all Σ i=1   M ( i   K ) candidate user groups to find the one with the largest sum rate, which leads to a fairly high computational cost. Moreover, in an FDD system, all the channel state information that may be needed at the transmitter to perform the optimal user group search may be obtained from the users through a feedback link. Because the optimal search requires CSI from each user and each user&#39;s channel is a complex vector of dimension M, that is equivalent to 2M real numbers per user, heavy burden may be placed on the feedback link to obtain this information. This may be particularly cumbersome since the feedback link tends to have very limited capacity. A user group selection scheme that results in a simpler implementation and requires less feedback information may be very useful in multiuser communication systems with multiple transmit antennas. 
       FIG. 2A  is a flow diagram illustrating exemplary steps in a double search algorithm for user group selection, in accordance with an embodiment of the invention. Referring to  FIG. 2A , there is shown a flow diagram  200  that may correspond to a double search algorithm for user group selection for a communication system where the transmitter is equipped with M=2 antennas. In this regard, the communication system supported by the flow diagram  200  may be a third-generation cellular communication system, such as WCDMA and CDMA200, where two antennas may be typically employed at the base station. 
     In step  210 , after start step  202 , the ideal channel state information (CSI) may be available at the base station  102   a , for example, from the CSI block  152 . In this regard, the multiple-input-single-output (MISO) channel impulse response h k ε 1×2  (M=2) of each of the K users  122   a , . . . ,  130   a  may be known at the base station  102   a . The strongest user, represented by the index i, may be selected based on the maximum of the channel powers of all the K users  122   a , . . . ,  130   a  in the communication system  100 , that is, 
     
       
         
           
             
               
                 
                   i 
                   = 
                   
                     arg 
                     ⁢ 
                     
                       
                         max 
                         
                           1 
                           ≤ 
                           κ 
                           ≤ 
                           K 
                         
                       
                       ⁢ 
                       
                         
                           γ 
                           κ 
                         
                         . 
                       
                     
                   
                 
               
               
                 
                   ( 
                   11 
                   ) 
                 
               
             
           
         
       
     
     In step  220 , the i th  user determined in step  210  may be selected as a first candidate to communicate with the base station  102   a . In this regard, a first search may be performed in step  220  to determine which of the remaining users may be a second candidate for communication with the base station  102   a . In step  221 , the maximum system capacity, C max , may be initialized to be the rate or capacity supported by having the base station  102   a  communicate only with the i th  user selected in step  210 , as given by the expression:
 
 C   max   C ( i )=log 2 (1+ρ·γ i ).  (12)
 
The index [idx 1 ,idx 2 ] corresponding to a pair of users or receivers to communicate with the base station  102   a  may be initialized to [i, 0]. In step  223 , a current k th  user may be compared to the i th  selected in step  210 . When the k th  user is the same as the user, the search for a second candidate may proceed to step  228 . When the k th  user is different from the i th  user the search for a second candidate may proceed to step  225 .
 
     In step  225 , the system capacity of communicating to user pair (i, k) may be calculated by the following expression: 
                       C   ⁡     (     i   ,   k     )       =         log   2     ⁡     (     1   +       1   2     ⁢     ρ   ·     γ   i     ·     a     i   ,   k             )       +       log   2     ⁡     (     1   +       1   2     ⁢     ρ   ·     γ   κ     ·     a     i   .   k             )           ,           (   13   )               
where ρ is the average signal-to-noise ratio (SNR) of the system, and α i,k  is a parameter that describes the orthogonality between h i  and h k ,
 
                     a     i   ,   k       =     1   -                〈       h   i     ,     h   k       〉          2                h   i          2     ·            h   k          2         .               (   14   )               
The system capacity in equation (13) may be compared to the maximum system capacity C max  obtained thus far. When the system capacity determined in step  225  is lower than the current maximum system capacity, the process may proceed to step  228 . When the system capacity determined in step  225  is higher than the current maximum system capacity, the process may proceed to step  227 . In step  227 , the maximum capacity C max  may be updated and the corresponding user pair index [i,k] may be stored.
 
     In step  228 , the current user is compared to the total number of users, K, to determine whether the search has exhausted all possible second candidates for communication with the base station  102   a . When the search has been exhausted, the process may proceed to step  230 . If the search has not been exhausted, the process may proceed to step  229  where the user index value may be increased by one. After step  229 , the process may proceed back to step  223  to compare the current (k+1) th  user to the i th  user selected in step  210 . 
     In step  230 , a second strongest user, represented by the index j, or j th  user, may be selected from the users that remain after the user with the strongest channel power has been selected. In this regard, the second strongest user may be selected as based on the following expression: 
     
       
         
           
             
               
                 
                   j 
                   = 
                   
                     arg 
                     ⁢ 
                     
                       
                         max 
                         
                           k 
                           ≠ 
                           i 
                         
                       
                       ⁢ 
                       
                         
                           γ 
                           k 
                         
                         . 
                       
                     
                   
                 
               
               
                 
                   ( 
                   15 
                   ) 
                 
               
             
           
         
       
     
     In step  240 , the j th  user determined in step  230  may be selected as a first candidate to communicate with the base station  102   a . In this regard, a second search may be performed in step  240  to determine which of the remaining users may be a second candidate for communication with the base station  102   a . In step  241 , the current second candidate or user, represented by the index k, may be initialized to k=1, that is, the index [idx 1 ,idx 2 ] corresponding to a pair of users or receivers to communicate with the base station  102   a  may be initialized to [i,l]. In this regard, the maximum system capacity, C max , may correspond to the maximum system capacity determined in step  227 . 
     In step  243 , a current k th  user may be compared to the i th  and j th  user devices selected in steps  210  and  230  respectively. When the k th  user is the same as either the j th  user or the i th  user, the search for a second candidate may proceed to step  248 . When the k th  user is different from the j th  user or the i th  the search for a second candidate may proceed to step  245 . 
     In step  245 , the system capacity of communicating to user pair (j,k) may be calculated by using equation (13). The system capacity in equation (13) may be compared to the maximum system capacity C max  obtained so far. When the system capacity determined in step  245  is lower than the current maximum system capacity, the process may proceed to step  248 . When the system capacity determined in step  245  is higher than the current maximum system capacity, the process may proceed to step  247 . In step  247 , the maximum capacity C max  may be updated and the corresponding user pair index [j,k] may be stored. 
     In step  248 , the current user is compared to the total number of users, K, to determine whether the search has exhausted all possible second candidates for communication with the base station  102   a . When the search has been exhausted, the process may proceed to step  250 . When the search has not been exhausted, the process may proceed to step  249  where the user index value may be increased by one. After step  249 , the process may proceed back to step  243  to compare the current (k+1) th  user to the i th  and j th  users selected in steps  210  and  230  respectively. 
     In step  250 , the optimal user pair index [idx 1 ,idx 2 ] for communicating with the base station  102   a  may be determined based on the results from the first search performed in step  220  and the second search performed in step  240 . 
       FIG. 2B  is a flow diagram illustrating exemplary steps in user pair selection in a double search algorithm for user group selection, in accordance with an embodiment of the invention. Referring to  FIG. 2B , there is shown a flow diagram  203  that may correspond to a double search algorithm for user group selection for a communication system where the transmitter is equipped with M=2 antennas. The flow diagram  203  provides additional detail to step  250  in  FIG. 2A  while steps  210 ,  220 ,  230 , and  240  may be substantially as described in  FIG. 2A . 
     In step  210 , a first candidate for communication with the base station  102   a  may be selected for a first optimal user group selection search based on the maximum of the channel powers of all the K users  122   a , . . . ,  130   a  in the communication system  100  as described by equation (11). In step  220 , a second candidate for communication with the base station  102   a  may be determined based on the maximum capacity that may be achieved for a user pair that comprises the first candidate selected in step  210 . The user pair associated with the maximum capacity may be stored. In step  230 , a first candidate for communication with the base station  102   a  may be selected for a first optimal user group selection search based on the maximum of the channel powers of all the remaining K users  122   a , . . . ,  130   a  in the communication system  100  as described by equation (15). In step  240 , a second candidate for communication with the base station  102   a  may be determined based on the maximum capacity that may be achieved for a user pair that comprises the first candidate selected in step  230 . 
     After step  240 , in step  252 , the maximum capacity determined in step  220  may be compared to the maximum capacity determined in step  240 . When the maximum capacity determined in step  220  is the greater of the two, the process may proceed to step  254 . In step  254 , the user pair index [idx 1 ,idx 2 ]=[i,k] associated with the maximum capacity determined in step  220  may be utilized by the base station  102   a  for transmission. Returning to step  252 , when the maximum capacity determined in step  240  is the greater of the two, the process may proceed to step  256 . In step  256 , the user pair index [idx 1 ,idx 2 ]=[j,k] associated with the maximum capacity determined in step  240  may be utilized by the base station  102   a  for transmission. 
       FIG. 3  is a flow diagram illustrating exemplary steps for base station transmission after user group selection, in accordance with an embodiment of the invention. Referring to  FIG. 3 , there is shown a flow diagram  300  that may correspond to the base station operation after user group selection as described in  FIGS. 2A and 2B . In step  304 , after start step  302 , based on the result of the double search process an optimal user pair index [idx 1 ,idx 2 ] may be determined. There may be two transmission modes, based on the optimal user pair index, which the base station  102   a  may utilize. 
     In step  306 , when both idx 1  and idx 2  correspond to valid indices between 1 and K, the process may proceed to step  308 . In step  308 , the base station  102   a  may communicate with both user idx 1  and user idx 2  at the same time utilizing spatial multiplexing. The transmitter precoding matrix F may be formed by the following expression: 
                     F   =       [             v   ^       idx   2       ⊥   H               v   ^       idx   1       ⊥   H             ]     /     2         ,           (   16   )               
where vectors v idx1  and v idx2  are the unit norm directional vectors given by:
 
                       v     idx   1       =       h     idx   1              h     idx   1                ,       v     idx   2       =         h     idx   2              h     idx   2              .               (   17   )               
The precoding provided in equation (16) may be equivalent to the precording given by equation (5). After step  308 , the process may proceed to end step  312 .
 
     
       
         
           
               
             
               
                 TABLE 1 
               
             
            
               
                   
               
               
                 Complexity comparison, where a represents the complexity of comparing two 
               
               
                 values and b the complexity of computing water-filling solution (b &gt;&gt; a). 
               
            
           
           
               
               
               
            
               
                   
                   
                 Brute-force user group 
               
               
                   
                 Double search algorithm 
                 selection scheme 
               
               
                   
               
               
                 Complexity 
                 ≦2Ka 
                 
                   
                     
                       
                         ≥ 
                         
                           
                             
                               K 
                               2 
                             
                             2 
                           
                           ⁢ 
                           b 
                         
                       
                     
                   
                 
               
               
                   
               
            
           
         
       
     
     Returning to step  306 , when idx 2  is equal to 0, the process may proceed to step  310 . In step  310 , the base station  102   a  may only communicate with the strongest user, that is user idx 1 , and may therefore provide better sum capacity by communication with a single user than by using spatial multiplexing, for example. In this instance, the precoding matrix F may be expressed by:
 
F={circumflex over (v)} idx     1     H .  (18)
 
After step  310 , the process may proceed to end step  312 .
 
     The approach described herein may be extended to other more sophisticated precoders that may offer better system performance such as the MMSE precoder, the THP precoder, the sphere encoding precoder, for example. When the number of users K is large enough there may be a high probability that two users exist having close to orthogonal channel vectors. In this instance, zero-forcing precoder may be close to an optimal precoder and most precoding techniques may have similar system performance. 
     A comparison in terms of the search complexity between the brute-force user group selection algorithm and the double search algorithm described herein may be shown in Table 1. The double search algorithm may carry out two searches for a maximum value as described in steps  220  and  240  in  FIG. 2A . The first search may be performed among K users, and the second search may be performed among the remaining (K−1) users. 
     When the complexity of comparing two positive real numbers is represented by variable a, then the complexity of the double search algorithm may be represented by the following expression:
 
χ≦2Ka,  (19)
 
as shown in Table 1. As for the optimal group search algorithm, for each of the
 
                 (         K           1         )     +     (         K           2         )       =       K   ⁡     (     K   +   1     )       2           
possible groups, a water-filling solution may have to be calculated in order to obtain the sum rate for each group. When the complexity of computing water-filling solutions is represented by variable b, the complexity of the optimal group selection algorithm may be represented by the following expression:
 
                     χ   opt     ≥         K   2     2     ⁢     b   .               (   20   )               
From equations (19) and (20) it may be shown that a&lt;&lt;b and therefore
 
χ&lt;&lt;χ opt .  (21)
 
       FIG. 4  is a graph that illustrates exemplary downlink transmission schemes in terms of sum rate, in accordance with an embodiment of the present invention. Referring to  FIG. 4 , there are shown the results of a numerical simulation corresponding to the sum rate of a cellular system with a single base station and K=100 users. The base station may be equipped with M=2 antennas, for example, and each user may be equipped with a single antenna. The channels are flat Rayleigh faded channels. The transmit antennas at the base station may be spaced or separated so as to experience independent fading. The modulation format applied in this instance may be quadrature phase-shift keying (QPSK), for example. 
     With reference to  FIG. 4 , four results are provided. The signal  402  may correspond to the rate sum of a TDMA scheme with channel state information at the transmitter (CSIT). Signal  404  may correspond to the rate sum of a zero-forcing (ZF), brute-force (BF) search with ideal CSIT. The signal  406  may correspond to the rate sum of a ZF, double search scheme with ideal CSIT, in accordance with the various embodiments of the invention. The signal  408  may correspond to the rate sum of a ZF, double search scheme with 3-bits allocated for channel gain feedback (B g =3) and 6 bits allocated for channel directional feedback (B v =6). 
     The TDMA scheme shown by signal  402  may pick a single user in a round robin fashion and may only transmit to one user at a time using maximum ratio transmission whereas zero-forcing precoding schemes, as described by signals  404 ,  406 , and  408 , may communicate to multiple users at a time. Therefore, the zero-forcing precoding schemes may achieve a higher sum rate than the TDMA schemes. The zero-forcing precoding with the optimal brute-force user group selection, signal  404 , may exhibit the best performance at the cost of high computational complexity. In accordance with the various embodiments of the invention, signal  406 , is able to significantly outperform the TDMA scheme with only limited CSI feedback being utilized. An example of a non-ideal CSIT is provided by signal  408 , where 3 bits are allocated for channel gain feedback and 6 bits for channel directional feedback. The system performance of the double search scheme with approximately 49 bits feedback rate may approach the performance of systems with ideal CSIT. 
       FIG. 5  is a graph that illustrates exemplary downlink transmission schemes in terms of bit error rate, in accordance with an embodiment of the present invention. Referring to  FIG. 5 , there are shown results of a numerical simulation corresponding to the bit error rate (BER) of a cellular system with a single base station and K=100 users. The base station may be equipped with M=2 antennas, for example, and each user may be equipped with a single antenna. The channels are flat Rayleigh faded channels. The transmit antennas at the base station are placed so as to experience independent fading. The modulation format applied in this instance may be QPSK, for example. 
     With reference to  FIG. 5 , four results are provided. The signal  502  may correspond to the BER for a TDMA scheme with CSIT. The signal  504  may correspond to the BER of a ZF, BF search with ideal CSIT. The signal  506  may correspond to the BER of a ZF, double search scheme with ideal CSIT, in accordance with the various embodiments of the invention. The signal  508  may correspond to the BER of a ZF, double search scheme with B g =3 and B v =6. The results for the BER performance between the signals  502 ,  504 ,  506 , and  508  are substantially the same as the results for signals  402 ,  404 ,  406 , and  408  shown for the rate sum in  FIG. 4 . 
     The double search user group selection algorithm in a MIMO multiuser downlink environment described herein may reduce the computational complexity compared to the brute-force user selection algorithm. In this regard, the complexity may be reduced from about K 2 /2 to 2K (K&gt;&gt;2), for example, where K represents the number of users. In accordance with various embodiments of the invention, the double search user group selection algorithm may outperform the TDMA scheme as well as the semi-orthogonal user group selection algorithm and achieve performance in terms of capacity and BER close to systems with optimal brute-force user group selection algorithm. Moreover, the invention may be extended to more sophisticated precoders that offer better system performance, such as a minimum mean square error (MMSE) precoder, a Tomlinson-Harashima precoder (THP), and a sphere encoding precoder, for example. 
     Accordingly, the present invention may be realized in hardware, software, or a combination thereof. The present invention may be realized in a centralized fashion in at least one computer system, or in a distributed fashion where different elements may be spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein may be suited. A typical combination of hardware and software may be a general-purpose computer system with a computer program that, when being loaded and executed, may control the computer system such that it carries out the methods described herein. 
     The present invention may also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form. 
     While the present invention has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present invention without departing from its scope. Therefore, it is intended that the present invention not be limited to the particular embodiment disclosed, but that the present invention will include all embodiments falling within the scope of the appended claims.