Abstract:
A wireless receiver is disclosed that is capable of efficiently selecting a preferred transmission/detection scheme for use in wireless communication. The wireless receiver may be capable of communicating using any one of several transmission/detection schemes. Therefore, in order to select a preferred transmission/detection scheme, the wireless receiver calculates at least one metric for the transmission/detection schemes. In MIMO systems, the link adaptation is more complex and the metrics typically must be more accurate. Because of the potentially substantial amount of calculation that may be required to calculate the metric, the wireless receiver is capable of performing the individual calculations in optimized ways, as well as easily reducing the total number of metrics required to be calculated so as to reduce overall complexity.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This patent application claims the benefit of U.S. Provisional Patent Application No. 61/562,196, filed Nov. 21, 2011, entitled “Fourth Generation (4G) Communication Systems,” which is incorporated herein by reference in its entirety. 
     
    
     BACKGROUND 
       [0002]    1. Field of Invention 
         [0003]    The disclosure relates to wireless communications, and more specifically to a wireless communication device that is capable performing link adaptation calculations with reduced complexity within a MIMO wireless system. 
         [0004]    2. Related Art 
         [0005]    Wireless communication devices, such as cellular telephones to provide an example, are becoming commonplace in both personal and commercial settings. The wireless communication devices provide users with access to all kinds of information, as well as the ability to communicate with other such devices across large distances. For example, a user can access the internet through an internet browser on the device, download miniature applications (e.g., “apps”) from a digital marketplace, send and receive emails, or make telephone calls using a voice over internet protocol (VoIP). Consequently, wireless communication devices provide users with significant mobility, while allowing them to remain “connected” to communication channels and information. 
         [0006]    Wireless communication devices communicate with one or more other wireless communication devices or wireless access points to send and receive data. Typically, a first wireless communication device generates and transmits a radio frequency signal modulated with encoded information. This radio frequency signal is transmitted into a wireless environment and is received by a second wireless communication device. The second wireless communication device demodulates and decodes the received signal to obtain the information. The second wireless communication device may then respond in a similar manner. The wireless communication devices can communicate with each other or with access points using any well-known modulation scheme, including amplitude modulation (AM), frequency modulation (FM), quadrature amplitude modulation (QAM), phase shift keying (PSK), quadrature phase shift keying (QPSK), and/or orthogonal frequency-division multiplexing (OFDM), as well as any other communication scheme that is now, or will be, known. 
         [0007]    The receiving device may perform a link adaptation calculation in order to determine an optimal transmission scheme to be used for communication. This conventionally includes selecting a metric and, for each combination of transmission parameters (e.g., for each possible transmission scheme), calculating the metric. Although this is an acceptable method for simpler systems that do not include significant numbers of transmission parameters, performing these calculations can be extremely cumbersome for a more complex system (such as, for example, a closed loop MIMO system capable of supporting layers), and therefore may require an unacceptable amount of processing and/or operating power. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES 
         [0008]    Embodiments are described with reference to the accompanying drawings. In the drawings, like reference numbers indicate identical or functionally similar elements. Additionally, the left most digit(s) of a reference number identifies the drawing in which the reference number first appears. 
           [0009]      FIG. 1  illustrates a block diagram of an exemplary wireless communication environment; 
           [0010]      FIG. 2  illustrates a block diagram of an exemplary receiver that is implemented as part of the wireless communication environment; 
           [0011]      FIG. 3  illustrates an exemplary link adaptation module that may be implemented within the receiver; 
           [0012]      FIG. 4  illustrates an exemplary method for selecting a preferred transmission/detection scheme; and 
           [0013]      FIG. 5  illustrates an exemplary computer system that can be used to implement aspects of the present disclosure. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0014]    The following Detailed Description refers to accompanying drawings to illustrate exemplary embodiments consistent with the invention. References in the Detailed Description to “one exemplary embodiment,” “an exemplary embodiment,” “an example exemplary embodiment,” etc., indicate that the exemplary embodiment described may include a particular feature, structure, or characteristic, but every exemplary embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same exemplary embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an exemplary embodiment, it is within the knowledge of those skilled in the relevant art(s) to affect such feature, structure, or characteristic in connection with other exemplary embodiments whether or not explicitly described. 
         [0015]    The exemplary embodiments described herein are provided for illustrative purposes, and are not limiting. Other exemplary embodiments are possible, and modifications may be made to the exemplary embodiments within the spirit and scope of the disclosure. Therefore, the Detailed Description is not meant to limit the invention. Rather, the scope of the invention is defined only in accordance with the following claims and their equivalents. 
         [0016]    Embodiments may be implemented in hardware (e.g., circuits), firmware, software, or any combination thereof. Embodiments may also be implemented as instructions stored on a machine-readable medium, which may be read and executed by one or more processors. A machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computing device). For example, a machine-readable medium may include read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other forms of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.), and others. Further, firmware, software, routines, instructions may be described herein as performing certain actions. However, it should be appreciated that such descriptions are merely for convenience and that such actions in fact results from computing devices, processors, controllers, or other devices executing the firmware, software, routines, instructions, etc. Further, any of the implementation variations may be carried out by a general purpose computer, as described below. 
         [0017]    For purposes of this discussion, the term “module” shall be understood to include at least one of software, firmware, and hardware (such as one or more circuit, microchip, or device, or any combination thereof), and any combination thereof. In addition, it will be understood that each module may include one, or more than one, component within an actual device, and each component that forms a part of the described module may function either cooperatively or independently of any other component forming a part of the module. Conversely, multiple modules described herein may represent a single component within an actual device. Further, components within a module may be in a single device or distributed among multiple devices in a wired or wireless manner. 
         [0018]    The following Detailed Description of the exemplary embodiments will so fully reveal the general nature of the invention that others can, by applying knowledge of those skilled in relevant art(s), readily modify and/or adapt for various applications such exemplary embodiments, without undue experimentation, without departing from the spirit and scope of the disclosure. Therefore, such adaptations and modifications are intended to be within the meaning and plurality of equivalents of the exemplary embodiments based upon the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by those skilled in relevant art(s) in light of the teachings herein. 
         [0019]    Although the following description is to be described in terms of wireless communication (specifically cellular communication), those skilled in the relevant art(s) will recognize that this description may also be applicable to other communications that use wired, optical, or other wireless communication methods without departing from the spirit and scope of the present disclosure. 
         [0020]    An Exemplary Wireless Communications Environment 
         [0021]      FIG. 1  illustrates a block diagram of a wireless communication environment  100  according to an exemplary embodiment of the disclosure. The wireless communication environment  100  provides wireless communication of information, such as one or more commands and/or data, between wireless communication devices. The wireless communication devices may each be implemented as a standalone or a discrete device, such as a mobile telephone, or may be incorporated within or coupled to another electrical device or host device, such as a portable computing device, a camera, or a Global Positioning System (GPS) unit or another computing device such as a personal digital assistant, a video gaming device, a laptop, a desktop computer, or a tablet, a computer peripheral such as a printer or a portable audio and/or video player to provide some examples and/or any other suitable electronic device that will be apparent to those skilled in the relevant art(s) without departing from the spirit and scope of the invention. 
         [0022]    The exemplary wireless communication environment  100  includes a wireless transmitter  110  and a wireless receiver  120 . Each of the wireless transmitter  110  and the wireless receiver  120  may be included within corresponding wireless communication devices that are each capable of both wireless transmission and wireless reception. The wireless transmitter  110  may represent an exemplary embodiment of a base station, and the wireless receiver  120  may represent an exemplary embodiment of a user equipment/subscriber station within a cellular communications network. 
         [0023]    The wireless transmitter  110  includes a scheduler  115  for preparing outgoing signals for transmission in accordance with a selected transmission scheme, and includes an antenna  111  for transmitting the signals into the wireless communication environment  100 . Those skilled in the relevant art(s) will recognize that the antenna  111  may include an array of N t  antennas, where N t  is a positive integer, and that the antenna  111  may be capable of both transmitting and receiving signals. 
         [0024]    The wireless receiver  120  includes a link adaptation module  125  configured to perform the link adaptation calculations in accordance with one or more of the embodiments discussed in the present disclosure, and includes an antenna  121  for receiving the signals from the wireless communication environment  100 . Those skilled in the relevant art(s) will recognize that the antenna  121  may include an array of N r  antennas, where N r  is a positive integer, and that the antenna  121  may be capable of both transmitting and receiving signals. 
         [0025]    Detailed functionality of the wireless receiver  120  and the link adaptation module  125  are discussed below, with respect to the relevant figures. 
         [0026]    Exemplary Wireless Communication Device 
         [0027]      FIG. 2  illustrates a block diagram of an exemplary wireless receiver  200  that may be implemented as part of the wireless communication environment  100 . The wireless receiver  200  includes a measurement module  220 , a memory module  230 , and a link adaptation module  240 , and may represent an exemplary embodiment of the wireless receiver  120 . 
         [0028]    The wireless receiver  200  receives signals from the wireless communication environment  100  via its antenna  205  connected to an antenna module  210 . Again, the antenna  205  may include N r  antennas, where N r  is a positive integer. Each of the N r  antennas may be capable of individually receiving signals from the wireless communication environment  100 . The antenna module  210  forwards the received signals to the measurement module  220 . 
         [0029]    The measurement module  220  takes various measurements of the received signals, which may be needed for performing the link adaptation calculations. Such measurements may include, for example, channel estimates (e.g. amplitude and phase response) and/or noise powers. For example, the measurement module  220  may measure a channel estimate H 1 , H 2 , . . . H M , for each of M channels, where each channel H will have the size N r ×N t . The M channels can be distributed over the frequency domain (e.g., as carriers in an OFDM system) or in the time domain (e.g., space time codes). Similarly, the measurement module  220  may calculate per channel noise plus interference powers (hereinafter “noise power”) σ i   2 , where i=1, 2, . . . M. The measurement module  220  forwards the measurements to the link adaptation module  240  for use in the link adaptation calculation. 
         [0030]    The measurement module  220  may also forward one or more measurements and/or information to the memory module  230  for storage. The memory module  230  stores various aspects and/or parameters of the system that may be needed by the link adaptation module  240  to perform the link adaptation calculations. Such parameters may include a set of transmission schemes Θ available with the current wireless transmitter  110 , a set of detection schemes Λ available for use by the wireless receiver  200 , and a constraints set C that dictates various limitations on the wireless receiver  200  and/or on calculations performed by the wireless receiver  200 , discussed in further detail below. In an embodiment, these various parameters may be stored in one or more look-up tables that are accessible by the link adaptation module. 
         [0031]    The link adaptation module  240  receives the measurements from the measurement module  220  and the various parameters from the memory module  230 . Using this information, the link adaptation module  240  performs the link adaptation calculations for the wireless receiver  200  in order to determine a preferred transmission scheme to be employed between the wireless transmitter  110  and the wireless receiver  200 . 
         [0032]    Once the link adaptation module  240  has determined a preferred transmission scheme, the link adaptation module  240  informs the antenna module  210  of the preferred transmission scheme, which forwards a signal to the wireless transmitter  110  via the antenna  205 . Upon receiving the preferred transmission scheme from the wireless receiver  200 , the wireless transmitter  110  instructs its scheduler  115  accordingly, which then employs the preferred transmission scheme for communicating with the wireless receiver  200 . 
         [0033]    Exemplary Link Adaptation Module 
         [0034]      FIG. 3  illustrates an exemplary link adaptation module  300  that may be implemented within the wireless receiver  200 . The link adaptation module  300  includes a constraint module  310 , a metric computation module  320 , and a decision module  330 , and may represent an exemplary embodiment of the link adaptation module  240 . 
         [0035]    In the link adaptation module  300 , the constraint module  310  receives the constraint sets C from the memory module  230 . From these constraint sets, the constraint module  310  determines the current constraints on the link adaptation. 
         [0036]    1. Exemplary Constraints 
         [0037]    As discussed above, there may be several different constraints on which the constraint module  310  may restrict the transmission/detection schemes analyzed by the metric computation module  320 . 
         [0038]    In one example, the constraint module  310  calculates a constraint C 1 (H 1 , H 1 , . . . H M , Θ, Λ), where C 1  denotes the exponent of the complexity of a detector used in the receiver, under the possible channel model represented by the channels H and the transmit/receiver pair Θ/Λ. The constraint module  310  may require C 1  to be below a predetermined threshold. For example, if the constraint module  310  requires C 1  to be less than 1, then only linear receivers will be permitted. 
         [0039]    In another example, the constraint module  310  may restrict channel uses and/or throughput. For example, the constraint module  310  may calculate the number of channel uses that can be allocated to a user as constraint C 2 , and calculate the inverse of the throughput that the user is expected to achieve as a part of the Quality of Service (QoS) as constraint C 3 . The constraint module  310  can then require each of these constraints C 2  and C 3  to be below corresponding thresholds. In this manner, if the constraint C 2  is too tight, then the module can bias its selection towards the higher rate transmission schemes (in terms of spatial-time-frequency rate). 
         [0040]    In another example, the constraint module  310  may restrict power consumption. For example, the constraint module  310  may calculate power consumption and any boundaries on power consumption (e.g., battery life) as constraint C 4 , and may calculate the inverse of the minimum QoS as constraint C 5 . The constraint module  310  can then require each of these constraints C 4  and C 5  to be below corresponding thresholds. In this manner, the constraint module  310  will bias possible transmission/detection schemes towards those which involve less receiver power consumption. 
         [0041]    In another example, the constraint module  310  may take into account the spatial correlation factor. For example, the constraint module  310  may calculate spatial correlation of the channel and compare the result with predetermined thresholds to determined possible transmission/detection schemes. If the spatial correlation is high, the constraint module  310  will bias possible transmission/detection schemes towards those that include fewer layers. 
         [0042]    Once the constraint module  310  has calculated the constraints, the constraint module forwards the constraints to the metric computation module  320 . 
         [0043]    2. Exemplary Metric Computation Module 
         [0044]    The metric computation module  320  measures at least one metric for each applicable transmission and detection scheme. In order to determine the applicable transmission and detection schemes, the metric computation module  320  receives the set of transmission schemes Θ and the set of detection schemes Λ from the memory module  230 . The metric computation module  320  also receives the constraints from the constraint module  310 . By applying the constraints to the received set of transmission schemes Θ and set of detection schemes Λ, the metric module is able to determine the applicable transmission and detection schemes {Θ i , Λ i }. 
         [0045]    Once the applicable transmission and detection schemes have been determined, the metric computation module  320  then calculates at least one metric for a plurality of these applicable transmission and detection scheme combinations. The metrics can be selected based on desired performance characteristics (e.g., signal quality, power consumption, etc.) and should provide some value or other means by which to compare the abilities of the transmission and detection scheme combinations to satisfy the desired performance characteristics. Examples of such metrics include Effective signal-to-noise ratio (SNR), effective exponential SNR mapping (EESM), capacity based SNR metric, and normalized modulation constrained capacity (NMCC) (also known as “receive bit information rate (RBIR)”). It will be noted that the metric computation module  320  need not calculate the same metric for each of the transmission/detection scheme combinations. Further, the metric may be represented as a function of the channel estimates, the noise power, the applicable transmission schemes, and the applicable detection schemes as ξ(H 1 , H 2 , . . . H M , σ 2 , Θ, Λ). 
         [0046]    Once the metrics have been calculated for the plurality of acceptable transmission and detection schemes, the metric computation module  320  forwards the calculated metrics to the decision module  330 . The decision module  330  compares the calculated metrics to each other and selects a preferred transmission scheme and/or a preferred detection scheme based on which of the metrics is preferred. In an embodiment, the preferred metric may be the metric that best satisfies the desired performance characteristic, and/or which may have the highest or lowest value from among the similarly-calculated metrics. 
         [0047]    Metric: Per Layer SNR 
         [0048]    In an embodiment, the link adaptation module  300  may calculate the SNR for each applicable transmission/detection scheme. Although this calculation is relatively established for a single-layer system (rank 1 system—a system that communicates only a single data symbol per channel use), this calculation has conventionally been unsuited to multi-layer systems due to its complexity. Therefore, below is provided an exemplary configuration for calculating a rank 2 (2-layer system) per layer SNR. 
         [0049]    In this configuration, the measurement module  220  measures the effective channel H between the receive antennas  205  and the two layers in the rank 2 system. The effective channel H can thus be represented as a [N r , 2] matrix. In addition, the measurement module  220  also measures the average noise power σ 2  at the receive antennas. The measurement module  220  then forwards this information to the metric computation module  320  of the link adaptation module  300 . 
         [0050]    The metric computation module  320  first generates a matrix A=H H ×H, where ( ) H  represents the Hermitian (transpose—conjugate) 
         [0000]    
       
         
           
             
               
                 
                   
                     [ 
                     
                       
                         
                           
                             A 
                              
                             
                               ( 
                               
                                 1 
                                 , 
                                 1 
                               
                               ) 
                             
                           
                         
                         
                           
                             A 
                              
                             
                               ( 
                               
                                 1 
                                 , 
                                 2 
                               
                               ) 
                             
                           
                         
                       
                       
                         
                           
                             
                               A 
                                
                               
                                 ( 
                                 
                                   1 
                                   , 
                                   2 
                                 
                                 ) 
                               
                             
                             * 
                           
                         
                         
                           
                             A 
                              
                             
                               ( 
                               
                                 2 
                                 , 
                                 2 
                               
                               ) 
                             
                           
                         
                       
                     
                     ] 
                   
                   . 
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
     
         [0000]    In this matrix, A(1,1) may represent the power from a first symbol to all receive antennas, and A(2,2) represents the power from a second symbol to all the receive antennas. A(1,2) and A(1,2)* represent the leakage from one layer into the other. 
         [0051]    From this information, the metric computation module  320  calculates the average SNR as: 
         [0000]      Avg_Rank — 2_SNR dB =10 log 10 (√{square root over (| A |)})−10 log 10(σ 2 ),   (2)
 
         [0000]    where |A| represents the determinant of A. Equation (2) provides the total SNR averaged over the different channels. However, in order to obtain more accurate metric measurements, it may be desired to determine the average SNR on each channel individually. It has been found that the individual channel averages can be calculated as functional differences of the Avg 13  Rank — 2_SNR dB . Therefore, the metric computation module  320  calculates the individual layer SNRs as: 
         [0000]      Rank — 2_Layer — 1_SNR dB =Avg_Rank — 2_SNR dB +Δ( A ) dB , and   (3)
 
         [0000]      Rank — 2_Layer — 2_SNR dB =Avg_Rank — 2_SNR dB −Δ( A ) dB ,   (4)
 
         [0000]    where Δ(A) is a channel differential and is a function of A. 
         [0052]    Assuming that the layer 1 SNR is proportional to A(1,1) and that the layer 2 SNR is proportional to A(2,2), the metric computation module  320  can then, in one embodiment, calculate Δ(A) dB  as: 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       
                         Δ 
                          
                         
                           ( 
                           A 
                           ) 
                         
                       
                       dB 
                     
                     = 
                     
                       k 
                       * 
                       10 
                        
                       
                           
                       
                        
                       log 
                        
                       
                           
                       
                        
                       10 
                        
                       
                         ( 
                         
                           
                             A 
                              
                             
                               ( 
                               
                                 1 
                                 , 
                                 1 
                               
                               ) 
                             
                           
                           
                             A 
                              
                             
                               ( 
                               
                                 2 
                                 , 
                                 2 
                               
                               ) 
                             
                           
                         
                         ) 
                       
                     
                   
                   , 
                 
               
               
                 
                   ( 
                   5 
                   ) 
                 
               
             
           
         
       
     
         [0000]    where k is a tuning parameter. During implementation, it was discovered that k value of 0.5 functioned as a good general approximation for most multilayer receivers. 
         [0053]    Once the metric computation module has calculated the Δ(A) dB , the metric computation module  320  enters the result into equations (3) and (4) in order to obtain the per layer SNR metrics. The decision module  330  can then compare these calculated metrics with those of other transmission schemes in order to select a preferred transmission scheme. 
         [0054]    It should be noted that, if the receiver detection is linear (e.g., zero forcing (ZF), minimum mean squared error (MMSE), etc.), the SNR metric for each layer, regardless of the number of layers, is a direct function of H and σ 2 . In this case, computing the SNR metrics is much simpler than in the above equations. For example, in a zero forcing configuration, the first layer SNR (SNR 1 ) and the second layer SNR (SNR 2 ) can be calculated as: 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       SNR 
                       1 
                     
                     = 
                     
                       
                         1 
                         
                           σ 
                           2 
                         
                       
                       × 
                       
                         
                            
                           A 
                            
                         
                         
                           A 
                            
                           
                             ( 
                             
                               2 
                               , 
                               2 
                             
                             ) 
                           
                         
                       
                     
                   
                   , 
                   and 
                 
               
               
                 
                   ( 
                   6 
                   ) 
                 
               
             
             
               
                 
                   
                     SNR 
                     2 
                   
                   = 
                   
                     
                       1 
                       
                         σ 
                         2 
                       
                     
                     × 
                     
                       
                         
                            
                           A 
                            
                         
                         
                           A 
                            
                           
                             ( 
                             
                               1 
                               , 
                               1 
                             
                             ) 
                           
                         
                       
                       . 
                     
                   
                 
               
               
                 
                   ( 
                   7 
                   ) 
                 
               
             
           
         
       
     
         [0055]    It should be understood that, although the above equations are specifically described with respect to a 2-layer system, similar mathematical principles can be applied to systems having more than two layers. Therefore, the present disclosure should not be limited to a system having only two layers. 
         [0056]    Metric: Per Layer NMCC 
         [0057]    In an embodiment, an additional or alternative metric that the link adaptation module  300  may calculate is the per layer NMCC. In multilayer systems, multiple different factors may affect the NMCC. For example, such factors may include the modulation of the layer under consideration Q, the modulation of the other layer not under consideration Q′, the effective SNR of the layer under consideration γ dB, layer , a channel orthogonality factor Ω(A), and the SNR offset of the other layer with respect to the layer under consideration γ offset . 
         [0058]    Therefore, in this embodiment, the link adaptation module  300  acquires the modulations Q and Q′ from the memory module  230  (the modulations Q and Q′ are part of the transmission scheme and thus can be derived from the information relating to the transmission scheme). The metric computation module  320  calculates the effective SNR of the layer under consideration γ dB, layer  using equations (1)-(5), above, and calculates the SNR offset of the layer not under consideration γ offset  by comparing the calculated SNR of the layer not under consideration to the SNR of the layer under consideration. 
         [0059]    The metric computation module  320  also calculates the channel orthogonality factors as: 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       
                         Ω 
                          
                         
                           ( 
                           A 
                           ) 
                         
                       
                       
                         layer 
                          
                         
                             
                         
                          
                         1 
                       
                     
                     = 
                     
                       
                          
                         
                           A 
                            
                           
                             ( 
                             
                               1 
                               , 
                               2 
                             
                             ) 
                           
                         
                          
                       
                       
                         A 
                          
                         
                           ( 
                           
                             1 
                             , 
                             1 
                           
                           ) 
                         
                       
                     
                   
                   , 
                   and 
                 
               
               
                 
                   ( 
                   8 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       Ω 
                        
                       
                         ( 
                         A 
                         ) 
                       
                     
                     
                       layer 
                        
                       
                           
                       
                        
                       2 
                     
                   
                   = 
                   
                     
                       
                          
                         
                           A 
                            
                           
                             ( 
                             
                               1 
                               , 
                               2 
                             
                             ) 
                           
                         
                          
                       
                       
                         A 
                          
                         
                           ( 
                           
                             2 
                             , 
                             2 
                           
                           ) 
                         
                       
                     
                     . 
                   
                 
               
               
                 
                   ( 
                   9 
                   ) 
                 
               
             
           
         
       
     
         [0000]    After this information has been calculated, the metric computation module  320  can then calculate the NMCC as a function of Q, Q′, Ω(A), γ dB, layer , and γ offset . 
         [0060]    The NMCC, based on these values, can be precomputed empirically and stored for future use. For example, the precomputed values can be stored in a look-up table which can then be accessed based on one or more variables, such as, for example, Q, Q′, Ω(A), γ dB, layer , and γ offset , discussed above. 
         [0061]    Metric: Receiver-Specific NMCC 
         [0062]    Although the theoretically calculated per-layer NMCC is applicable to most receivers, the characteristics of some receivers may make the “theoretical” NMCC unsuitable. Therefore, rather than employing the theoretical NMCC calculations, the NMCC can be calculated and normalized based on the actual implemented receiver. In other words, the NMCC can be calculated in an offline manner by employing the implemented receiver and a simulated transmitter. The pre-calculated NMCC values can be stored as part of look-up tables in the memory module  230 . 
         [0063]    In this embodiment, wireless receiver  200  receives a signal from the simulated wireless communication environment that includes a plurality of symbols Y=[y 0 , y 1 , . . . , y |L|−1 ] contained within a constellation L, where |L| is the size of the constellation. The measurement module  220  measures the size of a QAM constellation |L|, and forwards the constellation size |L|, as well as received symbols Y of the received signal to the link adaptation module  300 . 
         [0064]    Based on the information received from the measurement module  220 , the metric computation module  320  calculates the mutual information μ(X, Y) between the received symbols Y and the transmitted symbols X=[x 0 , x 1 , . . . , x |L|−1 ] as: 
         [0000]                      μ        (     X   ,   y     )       =       1        L                 ∑         x   i        i     =   0            L        -   1                       E        (     log                 2        (     M   ×       f       x   i        y            (       x   i     |   y     )         )       )             ,           (   10   )               where  M =log 2(| L |), and   (11)
 
         [0000]    where E(f a|b (a|b)) is the expectation of “a” given “b”. In other words, because the receiver knows the values of Y, equations (10) and (11) calculate, in part, the expectation of a particular transmitted value based on the received value. 
         [0065]    Once the mutual information μ(X, Y) has been calculated, the metric computation module  320  then calculates the NMCC with respect to the constellation L as: 
         [0000]    
       
         
           
             
               
                 
                   
                     NMCC 
                     L 
                   
                   = 
                   
                     
                       
                         μ 
                          
                         
                           ( 
                           
                             X 
                             , 
                             Y 
                           
                           ) 
                         
                       
                       
                         log 
                          
                         
                             
                         
                          
                         2 
                          
                         
                           ( 
                           
                              
                             L 
                              
                           
                           ) 
                         
                       
                     
                     . 
                   
                 
               
               
                 
                   ( 
                   12 
                   ) 
                 
               
             
           
         
       
     
         [0066]    After performing the NMCC calculation, the link adaptation module  300  may store the pre-calculated NMCC as part of look-up tables within the memory module  230 . These pre-calculated NMCC&#39;s can then later be retrieved by the decision module  330  and compared to one another so as to select a preferred configuration. 
         [0067]    It should be noted that, although the conditioned probability f x     i     |y  can be easily computed for a rank 1 system, it becomes very difficult to compute for multilayer systems (e.g., a rank 2 system). Therefore, when using a multilayer communication configuration, the metric computation module  320  employs a simplified calculation for f x     i     |y . For example, if the transmitted symbol x i  has M bits, then the bits of the transmitted symbol x i  are b i =[b i,0 , b i,1 , . . . b i,M−1 ]. The metric computation module  320  can then calculate the symbol probability as: 
         [0000]        f   x     i     |y   =f   b     i,0     |y   ×f   b     i,1     |y    . . . f   b     i,M−1     |y .   (13)
 
         [0068]    By splitting the computation into individual bit probabilities, the Log Likelihood Ratios calculated by the wireless receiver  200  for error correction can be directly applied to easily compute the conditioned bit probabilities f b     i     |y . Consequently, the calculation can be significantly simplified over conventional methods. Further, by operating on information actually received by the wireless receiver  200 , the multilayer performance characteristics of the wireless receiver  200  can be taken into account. As a result, if the receiver is close to optimal, the calculated NMCC will be close to the theoretical value, whereas if the receiver is suboptimal, the calculated NMCC will be compensated for that condition and be less aggressive as a result. 
         [0069]    Exemplary Configurations for Reducing Metric Calculation Complexity 
         [0070]    As can be seen from the above equations, for systems having several possible transmission/detection configurations, the complexity for calculating and comparing the metrics for all possibilities can be extremely cumbersome. As a result, below are described several configurations for reducing the complexity of the computations. 
         [0071]    As described above, some metrics are more complicated than others to evaluate. In addition, some metrics are more accurate than others. Therefore, in an embodiment, the metric computation module  320  can calculate different metrics for selecting different parameters in the transmission scheme. For example, each transmission parameter may have a corresponding cardinality (e.g., number of options). For a parameter having a larger cardinality, the metric computation module  320  can calculate metrics having lower complexity, but also lower accuracy, in order to simplify the selection process. Conversely, for parameters having smaller cardinality, the metric computation module  320  can calculate metrics having a higher accuracy, but also higher complexity. 
         [0072]    In another embodiment, less accurate/low complexity metrics can be initially calculated in order to reduce the set of values that may be implemented for a particular transmission parameters. For example, for a transmission parameter having a high cardinality, the metric computation module may first calculate a low-complexity, low accuracy metric for each of its possible values. From this initial metric calculation, the decision module  330  may filter out only those parameter values whose metric exceeds some threshold value. This subset of parameter values can then be forwarded back to the metric computation module  320 , which then calculates a more complex, and more accurate metric for each of the filtered parameter values. In this manner, simple calculations can be performed on the large number of values in order to reduce the number of possibilities, and then the complex calculations need only be performed on those remaining. 
         [0073]    In another embodiment, a metric computation for a single transmission scheme can be broken up into more simplistic calculations based on each individual channel. In particular, in a MIMO system, due to metric dependencies, one layer may impact other layers. Therefore, calculating a particular metric over all channel uses would be extremely complex. Therefore, the metric computation module  320  can calculate the metric for an M-channel configuration as: 
         [0000]    
       
         
           
             
               
                 
                   
                     ξ 
                      
                     
                       ( 
                       
                         
                           H 
                           1 
                         
                         , 
                         
                           H 
                           2 
                         
                         , 
                         
                           … 
                            
                           
                               
                           
                            
                           
                             H 
                             M 
                           
                         
                         , 
                         
                           σ 
                           2 
                         
                         , 
                         Θ 
                       
                       ) 
                     
                   
                   ≈ 
                   
                     
                       ∑ 
                       
                         x 
                         = 
                         1 
                       
                       M 
                     
                      
                     
                         
                     
                      
                     
                       
                         
                           ξ 
                           ′ 
                         
                          
                         
                           ( 
                           
                             
                               H 
                               x 
                             
                             , 
                             
                               σ 
                               2 
                             
                             , 
                             Θ 
                           
                           ) 
                         
                       
                       . 
                     
                   
                 
               
               
                 
                   ( 
                   14 
                   ) 
                 
               
             
           
         
       
     
         [0000]    The metric should be chosen such that the relationship of equation (14) holds substantially true. One metric that has been found to substantially satisfy this relationship is NMCC, however, there may be several other metrics that achieve similar or improved results. 
         [0074]    In another embodiment, when the metric can be broken up by channel, as shown in equation (14), it may also be possible to subsample across the channels. In other words, rather than measure each individual channel, the metric computation module  320  may be able to measure only every s th  channel in order to approximate the metric. For example, the above summation may be further simplified as: 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       
                         ∑ 
                         
                           x 
                           = 
                           1 
                         
                         M 
                       
                        
                       
                           
                       
                        
                       
                         
                           ξ 
                           ′ 
                         
                          
                         
                           ( 
                           
                             
                               H 
                               x 
                             
                             , 
                             
                               σ 
                               2 
                             
                             , 
                             Θ 
                           
                           ) 
                         
                       
                     
                     ≈ 
                     
                       
                         ∑ 
                         
                           k 
                           = 
                           1 
                         
                         
                           ⌊ 
                           
                             M 
                             / 
                             s 
                           
                           ⌋ 
                         
                       
                        
                       
                           
                       
                        
                       
                         
                           ξ 
                           ′ 
                         
                          
                         
                           ( 
                           
                             
                               H 
                               sk 
                             
                             , 
                             
                               σ 
                               2 
                             
                             , 
                             Θ 
                           
                           ) 
                         
                       
                     
                   
                   , 
                 
               
               
                 
                   ( 
                   15 
                   ) 
                 
               
             
           
         
       
     
         [0000]    where s is a subsampling factor, and H sk  is the subsampled channel. Using this approximation, the metric calculation for a MIMO system can be even further simplified. 
         [0075]    Exemplary Method for Selecting a Preferred Transmission/Detection Scheme 
         [0076]      FIG. 4  illustrates an exemplary method for selecting a preferred transmission/detection scheme. 
         [0077]    In the method, the wireless receiver receives a signal from the wireless transmitter ( 410 ). The wireless receiver performs various measurements of this signal, which may include channel estimations, noise power, etc. ( 420 ). In addition, the wireless receiver also calculates constraints that are to be implemented by the wireless receiver ( 430 ). Such constraints may include power consumption, complexity, quality of service, etc. 
         [0078]    Once the constraints have been calculated, the wireless receiver determines, as a subset of all possible transmission/detection schemes, the acceptable transmission/detection schemes that fall within the constraints ( 440 ). The wireless receiver then calculates at least one metric for each of the acceptable transmission/detection schemes ( 450 ), based on the various signal measurements. Such metrics may include power, SNR, NMCC, EESM, etc. 
         [0079]    After metrics have been calculated, the wireless receiver compares the calculated metrics to each other and selects, based on the comparison, a preferred transmission/detection scheme ( 460 ). For example, the preferred transmission/detection scheme may be the transmission/detection scheme whose calculated metric exceeds the metrics of all the other transmission/detection schemes. Once the preferred transmission/detection scheme has been determined, the wireless receiver transmits at least the preferred transmission scheme to the wireless transmitter so that it may implement that preferred transmission scheme for future communication ( 470 ). 
         [0080]    Those skilled in the relevant art(s) will recognize that the method can additionally or alternatively include any of the functionality of the wireless receiver  200  and/or the link adaptation module  300  discussed above, and the above description of the exemplary method should neither be construed to limit the method nor the description of the wireless receiver  200  or the link adaptation module  300 . 
         [0081]    Exemplary Computer System Implementation 
         [0082]    It will be apparent to persons skilled in the relevant art(s) that various elements and features of the present disclosure, as described herein, can be implemented it hardware using analog and/or digital circuits, in software, through the execution of instructions by one or more general purpose or special-purpose processors, or as a combination of hardware and software. 
         [0083]    The following description of a general purpose computer system is provided for the sake of completeness. Embodiments of the present disclosure can be implemented in hardware, or as a combination of software and hardware. Consequently, embodiments of the disclosure may be implemented in the environment of a computer system or other processing system. An example of such a computer system  500  is shown in  FIG. 5 . One or more of the modules depicted in the previous figures can be at least partially implemented on one or more distinct computer systems  500 , including, for example, the measurement module  220 , the link adaptation module  340 , and any of the constraint module  310 , the metric computation module  320  and/or the decision module  330  contained therein. 
         [0084]    Computer system  500  includes one or more processors, such as processor  504 . Processor  504  can be a special purpose or a general purpose digital signal processor. Processor  504  is connected to a communication infrastructure  502  (for example, a bus or network). Various software implementations are described in terms of this exemplary computer system. After reading this description, it will become apparent to a person skilled in the relevant art(s) how to implement the disclosure using other computer systems and/or computer architectures. 
         [0085]    Computer system  500  also includes a main memory  506 , preferably random access memory (RAM), and may also include a secondary memory  508 . Secondary memory  508  may include, for example, a hard disk drive  510  and/or a removable storage drive  512 , representing a floppy disk drive, a magnetic tape drive, an optical disk drive, or the like. Removable storage drive  512  reads from and/or writes to a removable storage unit  516  in a well-known manner. Removable storage unit  516  represents a floppy disk, magnetic tape, optical disk, or the like, which is read by and written to by removable storage drive  512 . As will be appreciated by persons skilled in the relevant art(s), removable storage unit  516  includes a computer usable storage medium having stored therein computer software and/or data. 
         [0086]    In alternative implementations, secondary memory  508  may include other similar means for allowing computer programs or other instructions to be loaded into computer system  500 . Such means may include, for example, a removable storage unit  518  and an interface  514 . Examples of such means may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, a thumb drive and USB port, and other removable storage units  518  and interfaces  514  which allow software and data to be transferred from removable storage unit  518  to computer system  500 . 
         [0087]    Computer system  500  may also include a communications interface  520 . Communications interface  520  allows software and data to be transferred between computer system  500  and external devices. Examples of communications interface  520  may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, etc. Software and data transferred via communications interface  520  are in the form of signals which may be electronic, electromagnetic, optical, or other signals capable of being received by communications interface  520 . These signals are provided to communications interface  520  via a communications path  522 . Communications path  522  carries signals and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link and other communications channels. 
         [0088]    As used herein, the terms “computer program medium” and “computer readable medium” are used to generally refer to tangible storage media such as removable storage units  516  and  518  or a hard disk installed in hard disk drive  510 . These computer program products are means for providing software to computer system  500 . 
         [0089]    Computer programs (also called computer control logic) are stored in main memory  506  and/or secondary memory  508 . Computer programs may also be received via communications interface  520 . Such computer programs, when executed, enable the computer system  500  to implement the present disclosure as discussed herein. In particular, the computer programs, when executed, enable processor  504  to implement the processes of the present disclosure, such as any of the methods described herein. Accordingly, such computer programs represent controllers of the computer system  500 . Where the disclosure is implemented using software, the software may be stored in a computer program product and loaded into computer system  500  using removable storage drive  512 , interface  514 , or communications interface  520 . 
         [0090]    In another embodiment, features of the disclosure are implemented primarily in hardware using, for example, hardware components such as application-specific integrated circuits (ASICs) and gate arrays. Implementation of a hardware state machine so as to perform the functions described herein will also be apparent to persons skilled in the relevant art(s). 
       Conclusion 
       [0091]    It is to be appreciated that the Detailed Description section, and not the 
         [0092]    Abstract section, is intended to be used to interpret the claims. The Abstract section may set forth one or more, but not all exemplary embodiments, and thus, is not intended to limit the invention and the appended claims in any way. 
         [0093]    The invention has been described above with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries may be defined so long as the specified functions and relationships thereof are appropriately performed. 
         [0094]    It will be apparent to those skilled in the relevant art(s) that various changes in form and detail can be made therein without departing from the spirit and scope of the disclosure. Thus, the invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.