Abstract:
Disclosed is a method and computer-readable medium for bit and power allocation for modems sharing a common multi-carrier binder, including Discrete Multi-Tone (DMT) based Digital Subscriber Line (DSL) modems. In one preferred embodiment, the method includes the steps of initializing a modem by calculating loop-to-loop channel transfer functions and noise power spectral densities (PSDs) at a corresponding receiver, and taking into account cross-talk between loops in the process of allocation so as to maximize total data rates within the binder.

Description:
FIELD OF THE INVENTION 
   The present invention relates to multi-carrier modem systems and, more particularly, to a method and system for allocating information bits and power so as to maximize data transmission capacity within a multi-carrier binder. 
   BACKGROUND OF THE INVENTION 
   Digital Subscriber Line (DSL) technology greatly increases the digital capacity of an ordinary telephone line, allowing much more information to be channeled into a home or office receiver as well as providing for “always-on” operation. The speed that a DSL modem can achieve is a function of the distance between the receiver and a central office. Symmetric DSL (SDSL) is typically used for short connections that require high data rates in both upstream and downstream directions. SDSL utilizes only one cable pair and may be used with adaptive rates from 144 Kbps to 1.5 Mbps. High Bit Rate DSL (HDSL) is a symmetric technology that uses two twisted pairs for transmission distances up to about 12,000 feet. Each twisted pair can be used to provide T1 transmission, but such lines are typically not shared with analog telephone devices. Alternatively, HDSL-2 technology requires only one cable pair and provides transmission distances of about 18,000 feet. 
   Asymmetric DSL (ADSL) technology uses frequencies that are higher than voice, shares telephone lines, and is suitable for accessing the Internet. For ADSL applications, a Plain Old Telephone System (POTS) splitter may be installed at the receiver end to separate the voice frequencies and the ADSL frequencies. The ‘G.lite’ version of ADSL, alternatively known as ‘ADSL lite,’ ‘Universal ADSL,’ or ‘splitterless ADSL,’ does not require a POTS splitter. Rather, telephone devices are connected to low-pass filters that remove the higher ADSL frequencies from the lower-frequency voice transmissions. In the current state of the art, ADSL is using Discrete Multi-tone (DMT) modulation and Carrierless Amplitude Phase (CAP) modulation. 
   Cables comprising twisted-pair transmission channels emanate from essentially all telephone company central offices. Such cables typically include binders containing groups of twenty-five or fifty tightly-packed twisted pairs. As can be appreciated by one skilled in the relevant art that this configuration results in crosstalk among twisted pairs in the same binder. There are nearly a billion such twisted pairs worldwide and the number is growing dramatically as nearly all new commercial and residential building developments continue to install twisted-pair lines for telephone service connection. This “installed copper base” of twisted pairs lines may indeed be the greatest infrastructure asset of the local telephone service provider. 
   In view of the fact that DSL technology can provide for many services over this installed copper base, the communication lines in a binder can be viewed as a service provider resource, much as the wireless spectrum is viewed as a resource. This resource needs fair management to provide the maximum competitive financial return and economic prosperity to all stakeholders in the broadband marketplace. Thus, in view of the valuable resource provided by the binder, unstructured use of the binder communication lines at the physical layer by uncoordinated competitive service providers becomes detrimental to the overall binder data carrying capacity. 
   In a typical binder containing twenty five or fifty twisted copper-pair lines, insulation between the lines provides only minimal shielding between copper loops in the high frequency band that is used by the various flavors of xDSL technologies. Accordingly, as the deployment of the various xDSL products has grown, the resulting interference into neighboring loops sharing the binder also continues to increase. Consequently, it has become clear that ever-increasing levels of interference in the binder present a limitation to xDSL product performance. The cross-talk caused by the signals transmitted on the loops, such as self-echo, near-end cross-talk (NEXT), and far-end cross-talk (FEXT), is dependent on the transmit signal power levels. In conventional xDSL applications, this cross-talk reduces the signal-to-noise ratio (SNR) since the cross talk acts as additional noise to the receiver. 
   In DMT-based ADSL modems, a selected bandwidth of 1.104 MHz is divided into 256 bins and the data bits are used for Quadrature Amplitude Modulation (QAM) in each bin. In DMT-based VDSL modems, a selected bandwidth of 17.664 MHz is divided into 4096 bins. Normally during the initialization period, each modem goes through a channel SNR estimation phase and data/power allocation phase, so as to maximize its own data rate. Because of the fact that each modem&#39;s transmission power leaks into other loops within the same binder, the leaked power adds to the noise detected by modems on the other loops. Moreover, if two modems happen to be sharing the same frequency band, then an increase in transmission power of one modem reduces the transmission data rate of the other shared-frequency-band modem. On the other hand, if the two modems were not sharing a common frequency band, then one modem&#39;s operation would have less of an adverse effect on the data rate of the other modem. As can be appreciated by one skilled in the art, if both modems were cooperating and jointly performed initial power allocation over available frequency bands, the resulting transmission data rate of the two modems would greater than the transmission data rates achieved if both modems were not cooperating. 
   Data rates can be increased utilizing a power control algorithm based on a single user as disclosed, for example, in a related technical article by Wei Yu, George Ginis, and John M. Cioffi, entitled “An adaptive multi-user power control algorithm,” T1E1.4 Contribution 01-200R3, August 2001. The core of the disclosed adaptive multi-user power control algorithm is an iterative water-filling procedure that effectively allocates transmission power among modem users and frequency bands when the power budget of each modem user is known. In the iterative water-filling procedure, multiple users take turns to allocate power based on the well-known water-filling method for a single user, taking into account the background noise and the cross-talk noise from other users, until the power allocation profile converges to equilibrium. 
   Thus, there is a particular need for a method which takes into account cross-talk among users in maximizing the total data rate achievable within a multi-carrier binder. 
   BRIEF SUMMARY OF THE INVENTION 
   The present invention provides a method and computer readable medium for allocation of available power budget of each Discrete Multi-Tone (DMT)-based Digital Subscriber Line (DSL) modem to its DMT frequency tones, simultaneously, over a collection of all ‘cooperating’ DSL modems that share a common binder. The method includes the steps of: initializing the DMT-based DSL modems by calculating the frequency-dependent values of channel attenuations, loop-to-loop cross-talk coefficients, and noise power spectral densities (PSDs) at all receivers, and using an iterative process to allocate power and bits to the frequency bins of all the cooperating modems such that the data rate totaled over all the modems is maximized for the pre-assigned power budgets for each of the modems. The disclosed method allocates the power considering all the users simultaneously rather than allocating the power sequentially from user to user and also functions within constraints imposed by the Standards Organizations. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The foregoing summary of the invention, as well as the following detailed description of preferred embodiments, is better understood when read in conjunction with the accompanying drawings, which are included by way of example, and not by way of limitation with regard to the claimed invention: 
       FIG. 1  is a simplified functional diagram of a conventional discrete multi-tone-based digital subscriber system; 
       FIG. 2  is a generalized diagram showing a DSL channel with M transmitters and M receivers modeled as an M-input and M-output interference channel; and 
       FIG. 3  is a flow diagram illustrating a preferred method of allocating bits and power in the DSL channel of  FIG. 2 . 
   

   DETAILED DESCRIPTION OF THE INVENTION 
   There is shown in  FIG. 1  a simplified functional diagram of a conventional discrete multi-tone-based digital subscriber system  10  including a central office  31  such as may be provided by a local telephone company. The central office  31  includes a plurality of transmitters or modems, exemplified by central office modems  11  and  21 . In the example provided, the central office modem  11  communicates with a customer receiver or modem  15  via communication link  13  and the central office modem  21  communicates with a customer receiver or modem  25  via communication link  23 . 
   This duplex transmission configuration results in a certain amount of signal leakage between the communication links  13  and  23 . For example, signals transmitted to the customer modem  15  induce cross-talk  17  (having coefficient H B,A ) in the communication link  23  and signals transmitted to the customer modem  25  induce cross-talk  27  (having coefficient H A,B ) in the communication link  13 . Moreover, background noise  19  (Z A ) and  29  (Z B ) appear on the respective communication links  13  and  23 . The calculation of transmission source power levels P A  and P B  needed at the central office  31  for specific bit-error rates are coupled to respective receiver signal power levels Y A  and Y B  required at the customer premise  30 . 
   Existing telephone loops can be adapted to provide broadband access using DSL technology. The dominant impairment in such DSL communication methods typically results from the electromagnetic coupling occurring between neighboring twisted pair lines. Traditional approaches to prevent the failure of a DSL system due to the cross-talk are based on the single-user system design. That is, a criterion used to limit the power level of a particular telephone loop or carrier is determined by the worst-case cross-talk induced in other loops. 
   It can be appreciated that, because the channel characteristics of DSL loops typically change more slowly than channel parameters of a wireless network, it becomes possible to acquire fairly accurate channel information for DSL lines and advantageously model the DSL loop as an interference channel. This approach allows the channel information to be used more effectively in allocating power among multiple user carriers and frequency bands, in comparison to a single-user system method. 
   A typical DSL configuration may include twenty-five to fifty twisted pairs bundled as a group of communication lines, herein represented by a binder  33 . As can be appreciated by one skilled in the relevant art, the electromagnetic field generated by a twisted pair in the binder  33  provides causes cross-talk signals, particularly on other pairs within the binder  33 . These interactions can be illustrated in greater detail with reference to  FIG. 2  in which a DSL channel with M transmitters and M receivers can be modeled as an M-input and M-output (MIMO) interference channel. Each user&#39;s channel comprises an inter-symbol interference (ISI) channel divided into N independent sub-channels in discrete multi-tone (DMT) systems. Thus, the DMT-based DSL channel with M users consists of N independent sub-channels, where N is equal to the number of DMT tones to which data must be assigned for each modem. The M transmitters operate at respective power levels of P(n,1), P(n,2), . . . , P(n, M), where 0≦n≦N. 
   Each DMT tone can be modeled as an interference channel having the following channel matrix: 
                   H   n     =     [             H     1   ,   1       ⁡     (   n   )               H     1   ,   2       ⁡     (   n   )           ⋯           H     1   ,   M       ⁡     (   n   )                   H     2   ,   1       ⁡     (   n   )               H     2   ,   2       ⁡     (   n   )           ⋯           H     2   ,   M       ⁡     (   n   )               ⋮       ⋮       ⋰       ⋮               H     M   ,   1       ⁡     (   n   )               H     M   ,   2       ⁡     (   n   )           ⋯           H     M   ,   M       ⁡     (   n   )             ]             (   1   )               
where the diagonal term H 1,l (n) is a channel gain coefficient for user i, and the off-diagonal term H l,j (n) is a channel cross-talk coefficient representing signal coupling from user j to user i in sub-channel DMT-frequency bin n. Using this nomenclature, a receiver signal power level  40 , designated as Y(n,1), transmitted to a first user includes received transmission source power  41 , designated as H 1,1   2 (n)P(n,1), and background noise  43 , designated as Z(n,1). The receiver signal power Y(n,1) also includes a plurality of cross-talk signals from other user communication links, exemplified by a cross-talk signal  45 , designated as H 1,2   2  (n)P(n,2), from a second user and a cross-talk signal  47 , designated as H 1,M   2 (n)P(n,M), from an M th  user.
 
   Similarly, a receiver signal power level  50 , designated as Y(n,2), transmitted to the second user includes received transmission source power  51 , designated as H 2,2   2  (n)P(n,2), and background noise  53 , designated as Z(n,2). The receiver signal power Y(n,2) also includes a plurality of cross-talk signals, exemplified by a cross-talk signal  55 , designated as H 2,2   2 , (n)P(n,1), from the first user and a cross-talk signal  57 , designated as H 2,M   2 (n)P(n,M), from the M th  user. The M th  receiver signal power level  90 , designated as Y(n,M), includes received transmission source power  91 , H M,M   2 (n)P(n,M), background noise  93 , Z(n,M), cross-talk signal  95 , H M,1   2 (n)P(n,1), and cross-talk signal  97 , H M,2   2 (n)P(n,2). 
   The disclosed method addresses the allocation of power in each modem so as to maximize the total capacity of the binder  33 . In this case, the total noise power spectral density function of user i in sub-channel n is the sum of the background noise power Z(n,i) and the cross-talk caused by other communication links in the binder  33 , 
                   Noise   ⁢           ⁢     Power   ⁡     (     n   ,   i     )         =       Z   ⁡     (     n   ,   i     )       +       ∑       j   =   1     ,     j   ≠   i       M     ⁢         H     i   ,   j     2     ⁡     (   n   )       ·     P   ⁡     (     n   ,   j     )                     (   2   )               
where P(n, j) and Z(n, i) are the transmit signal power of user j and the background noise power of receiver i in sub-channel n, respectively. The signal to noise ratio S(n,i) at receiver i in sub-channel n can be expressed as,
 
   
     
       
         
           
             
               
                 
                   S 
                   ⁡ 
                   
                     ( 
                     
                       n 
                       , 
                       i 
                     
                     ) 
                   
                 
                 = 
                 
                   
                     
                       
                         
                           H 
                           
                             i 
                             , 
                             i 
                           
                           2 
                         
                         ⁡ 
                         
                           ( 
                           n 
                           ) 
                         
                       
                       · 
                       
                         P 
                         ⁡ 
                         
                           ( 
                           
                             n 
                             , 
                             i 
                           
                           ) 
                         
                       
                     
                     
                       
                         Z 
                         ⁡ 
                         
                           ( 
                           
                             n 
                             , 
                             i 
                           
                           ) 
                         
                       
                       + 
                       
                         
                           ∑ 
                           
                             
                               j 
                               = 
                               1 
                             
                             , 
                             
                               j 
                               ≠ 
                               i 
                             
                           
                           M 
                         
                         ⁢ 
                         
                           
                             
                               H 
                               
                                 i 
                                 , 
                                 j 
                               
                               2 
                             
                             ⁡ 
                             
                               ( 
                               n 
                               ) 
                             
                           
                           · 
                           
                             P 
                             ⁡ 
                             
                               ( 
                               
                                 n 
                                 , 
                                 j 
                               
                               ) 
                             
                           
                         
                       
                     
                   
                   . 
                 
               
             
             
               
                 ( 
                 3 
                 ) 
               
             
           
         
       
     
   
   By assuming that all the transmitted signals and the background noise are Gaussian, the number of bits that can be transmitted in sub-channel n from transmitter i to receiver i is given by, 
                   b   ⁡     (     n   ,   i     )       =       log   2     ⁡     (     1   +       S   ⁡     (     n   ,   i     )       Γ       )               (     4   ⁢   a     )               =       log   2     (     1   +           H     i   ,   i     2     ⁡     (   n   )       ·     P   ⁡     (     n   ,   i     )           Γ   ·     (       Z   ⁡     (     n   ,   i     )       +       ∑       j   =   1     ,     j   ≠   i       M     ⁢         H     i   ,   j     2     ⁡     (   n   )       ·     P   ⁡     (     n   ,   j     )             )           )             (     4   ⁢   b     )               
where Γ is the signal-to-noise ratio gap. The data rate of user i can be found by summing the bit rates in all N channels to give,
 
                   R   i     =       1     T   s       ⁢       ∑     n   =   1     N     ⁢     b   ⁡     (     n   ,   i     )                   (     5   ⁢   a     )               =       1     T   s       ⁢       ∑     n   =   1     N     ⁢       log   2     (     1   +           H     i   ,   i     2     ⁡     (   n   )       ·     P   ⁡     (     n   ,   i     )           Γ   ·     (       Z   ⁡     (     n   ,   i     )       +       ∑       j   =   1     ,     j   ≠   i       M     ⁢         H     i   ,   j     2     ⁡     (   n   )       ·     P   ⁡     (     n   ,   j     )             )           )                 (     5   ⁢   b     )               
where
 
           1     T   s           
is the symbol rate.
 
   The disclosed method maximizes binder capacity over an available frequency bandwidth subject to a power budget constraint P budget (i), a power mask constraint P mask (n), and a ‘bit-cap’ constraint b max (n) for each user carrier. Using the channel matrix terms H i,j (n) and the background noise power spectral density function Z(n, i), the transmit signal powers are advantageously distributed among the N sub-channels such that the summation of the data rates of all the user carriers is maximized: 
                     max   ⁢       ∑     i   =   1     M     ⁢     R   i         =     max   ⁢     1     T   s       ⁢       ∑     i   =   1     M     ⁢       ∑     n   =   1     N     ⁢     [       log   2     (     1   +           H     i   ,   i     2     ⁡     (   n   )       ·     P   ⁡     (     n   ,   i     )           Γ   ·     (       Z   ⁡     (     n   ,   i     )       +       ∑       j   =   1     ,     j   ≠   i       M     ⁢         H     i   ,   j     2     ⁡     (   n   )       ·     P   ⁡     (     n   ,   j     )             )           )     ]             ⁢     
     ⁢     subject   ⁢           ⁢   to             (     6   ⁢   a     )                       ∑     n   =   1     N     ⁢     P   ⁡     (     n   ,   i     )         ≤         P   budget     ⁡     (   i   )       ⁢           ⁢   for   ⁢           ⁢   i       =   1     ,   …   ⁢           ,   M           (     6   ⁢   b     )               0 ≦P ( n,i )≦ P   mask ( n ) for  i =1 , . . . ,M; n= 1 , . . . ,N   (6c)   b ( n,i )≦ b   max ( n ) for  i= 1 , . . . , M;n= 1 , . . . ,N   (6d) 
where └X┘ is defined as the largest integer that is not greater than X, P budget (i) is the power budget of user i, P mask (n) is the power mask constraint in the sub-channel n, and b max (n) is the bit cap constraint in the sub-channel n. As is understood by one skilled in the relevant art, when a theoretical solution to equation (6) produces a non-integer bit allocation, an integer bit allocation approximating the non-integer solution is preferably used in a physical system such as the discrete multi-tone-based digital subscriber system  10 , in  FIG. 1 .
 
   Equation (3) can be rearranged and expressed as
 
 y   n   =A   n   x   n   (7)
 
where
 
 y   n   =[S ( n, 1) Z ( n, 1)  S ( n ,2) Z ( n, 2) . . .  S ( n,M ) Z ( n,M )] T   (8)
 
                   A   n     =     [             H     1   ,   1     2     ⁡     (   n   )               -     S   ⁡     (     n   ,   1     )         ⁢       H     1   ,   2     2     ⁡     (   n   )             ⋯           -     S   ⁡     (     n   ,   1     )         ⁢       H     1   ,   M     2     ⁡     (   n   )                     -     S   ⁡     (     n   ,   2     )         ⁢       H     2   ,   1     2     ⁡     (   n   )                 H     2   ,   2     2     ⁡     (   n   )           ⋯           -     S   ⁡     (     n   ,   2     )         ⁢       H     2   ,   M     2     ⁡     (   n   )                 ⋮       ⋮       ⋰       ⋮               -     S   ⁡     (     n   ,   M     )         ⁢       H     M   ,   1     2     ⁡     (   n   )                 -     S   ⁡     (     n   ,   M     )         ⁢       H     M   ,   2     2     ⁡     (   n   )             ⋯           H     M   ,   M     2     ⁡     (   n   )             ]             (   9   )                 x   n   =[P ( n, 1) P ( n, 2) . . .  P ( n,M )] T   (10) 
   The disclosed method for allocating power among users and frequency bands can be described in greater detail with reference to the flow diagram of  FIG. 3 . Initial parameters are obtained, at step  101 , by measuring the channel matrix parameters H i,j (n) found in equation (3) above, and by measuring the background noise parameter terms Z(n,i). 
   A series of bit allocation matrices b n , one for each user i, are initialized, at step  103 :
 
[ b   n ] l =[0 1 0 2  . . . 0 N ] T  for  i= 1 , . . . , N   (11)
 
A null flag matrix [F] of size M×N is initialized for use in maintaining a set of system flags:
 
   
     
       
         
           
             
               
                 
                   
                     [ 
                     
                       F 
                       
                         N 
                         , 
                         M 
                       
                     
                     ] 
                   
                   0 
                 
                 = 
                 
                   [ 
                   
                     
                       
                         
                           0 
                           
                             1 
                             , 
                             1 
                           
                         
                       
                       
                         
                           0 
                           
                             1 
                             , 
                             2 
                           
                         
                       
                       
                         ⋯ 
                       
                       
                         
                           0 
                           
                             1 
                             , 
                             M 
                           
                         
                       
                     
                     
                       
                         
                           0 
                           
                             2 
                             , 
                             1 
                           
                         
                       
                       
                         
                           0 
                           
                             2 
                             , 
                             2 
                           
                         
                       
                       
                         ⋯ 
                       
                       
                         
                           0 
                           
                             2 
                             , 
                             M 
                           
                         
                       
                     
                     
                       
                         ⋮ 
                       
                       
                         ⋮ 
                       
                       
                         ⋰ 
                       
                       
                         ⋮ 
                       
                     
                     
                       
                         
                           0 
                           
                             N 
                             , 
                             1 
                           
                         
                       
                       
                         
                           0 
                           
                             N 
                             , 
                             2 
                           
                         
                       
                       
                         ⋯ 
                       
                       
                         
                           0 
                           
                             N 
                             , 
                             M 
                           
                         
                       
                     
                   
                   ] 
                 
               
             
             
               
                 ( 
                 12 
                 ) 
               
             
           
         
       
     
   
   At step  105 , the power required to transmit one bit in each of the N frequency bins and for each of the M users is calculated using the expression: 
                     J   ⁡     (     n   ,   i     )       =           w   i     ·         S   ⁡     (     n   ,   i     )       ·     Z   ⁡     (     n   ,   i     )             H     i   ,   i     2     ⁡     (   n   )           ⁢           ⁢   for   ⁢           ⁢   n     =   1       ,   …   ⁢           ,     N   ;     i   =   1       ,     …   ⁢           ⁢     M   .               (   13   )               
Each power value has been weighted with a predetermined weight factor w i , where 0≦w i ≦1. The weighted values are then stored in the weighted incremental power array given by:
 
   
     
       
         
           
             
               
                 
                   [ 
                   
                     J 
                     
                       N 
                       , 
                       M 
                     
                   
                   ] 
                 
                 = 
                 
                   [ 
                   
                     
                       
                         
                           J 
                           
                             1 
                             , 
                             1 
                           
                         
                       
                       
                         
                           J 
                           
                             1 
                             , 
                             2 
                           
                         
                       
                       
                         ⋯ 
                       
                       
                         
                           J 
                           
                             1 
                             , 
                             M 
                           
                         
                       
                     
                     
                       
                         
                           J 
                           
                             2 
                             , 
                             1 
                           
                         
                       
                       
                         
                           J 
                           
                             2 
                             , 
                             2 
                           
                         
                       
                       
                         ⋯ 
                       
                       
                         
                           J 
                           
                             2 
                             , 
                             M 
                           
                         
                       
                     
                     
                       
                         ⋮ 
                       
                       
                         ⋮ 
                       
                       
                         ⋰ 
                       
                       
                         ⋮ 
                       
                     
                     
                       
                         
                           J 
                           
                             N 
                             , 
                             1 
                           
                         
                       
                       
                         
                           J 
                           
                             N 
                             , 
                             2 
                           
                         
                       
                       
                         ⋯ 
                       
                       
                         
                           J 
                           
                             N 
                             , 
                             M 
                           
                         
                       
                     
                   
                   ] 
                 
               
             
             
               
                 ( 
                 14 
                 ) 
               
             
           
         
       
     
   
   The terms H l,j , and Z(n,i) in equation (13) can be measured at subscriber system initiation. From equation (4) the signal-to-noise ratio S(n,i) can be represented as a function of the number of bits transmitted by the receiver i in the sub-channel n,
 
 S ( n, i )=Γ·(2 b(n,j) −1)  (15)
 
Using equations (8), (9), and (15), A n  and y n  can be determined once the transmission bits b(n,i), the channel cross-talk coefficients H i,j (n), and the background noise Z(n, i) parameters have been derived.
 
   The minimum element (n, i) used to select the user and the frequency bin that costs the least for transmitting one additional bit is determined, in step  107 . If a flag has been set in the flag matrix [F], the corresponding flagged element is not included among the available sub-channels and users in this determination. The minimum element (n, i) can represented by the expression: 
                   (     n   ,   i     )     =     arg   ⁢       {       min     {         (     m   ,   j     )     ·     F     m   ,   j         =   0     }       ⁢           ⁢     J   ⁡     (     m   ,   j     )         }     .               (   16   )               
The necessary power of each user to transmit b n =[b(n,1) b(n,2) . . . b(n,M)] T  bits in sub-channel n can then be calculated by solving the linear equation (7) for x n .
 
   In step  109 , the bit count in sub-channel n is increased by one bit for user i if none of the power budget constraint P budget (i), power mask constraint P mask (n), or ‘bit-cap’ constraint b max (n) has been exceeded,
 
 b   n &lt;=b n   +e   l .  (17)
 
   For the multi-user application, a ‘greedy algorithm’ is used to increase one bit in the sub-channel n, for the selected user i, which requires least incremental power to transmit one more bit. In such multi-user integer bit-loading, the P(n,j) values are changed for j=1 . . . , M; j≠i, in addition to the P(n,i) values. That is, because the bit count for the selected user i has been increased, the power levels for the non-selected users need to be increased to offset increased cross-talk and maintain the desired bit-error rate for the other users transmitting b(n, j) bits for j=1 . . . ,M; j≠i in the sub-channel n. As can be appreciated by one skilled in the art, the step of increasing the power of one user (i.e., of user i) results in an increase in the cross-talk to other users (i.e., to users j for j=1 . . . ,M; j≠i). 
   Thus, the cost function provided by [J N,M ] in equation (14) above is used to effectively represent the incremental powers incurred by all the users j to increase one bit of a the particular user i. In a preferred embodiment, the cost function value J(n,i) for increasing one bit of user i in sub-channel n is selected to be a weighted sum of the incremental powers of all the users, such as given by the expression:
 
 J ( n,i )= w ·( x   n ( b   n   +e   l )− x   n ( b   n )),  (18)
 
where w=[w 1  w 2  . . . w M ] T  is a pre-selected weight vector containing a weight for each user, e l  is a unit vector whose i th  element is unity and all the other elements are zero, and x n (b n ), denotes the necessary power to transmit b n  bits in the sub-channel n.
 
   In step  111 , the cost of increasing one bit for every user in sub-channel n is updated. This is preferably done by solving equation (7) and then updating the corresponding cost function value J(n,j) using the weight vector to give:
 
 J ( n,j )= w ·( x   n ( b   n   +e   j )− x   n ( b   n )), for j=1 . . . , M  (19)
 
   In decision block  113 , the power value x n (b n ) is checked against the power mask constraint P mask (n) and the bit count b n  is checked against the bit cap constraint b max (n). The corresponding flag in the flag matrix [F] is set (i.e., F n,i =1), at step  115 , if either of the power mask or bit count constraints is met or exceeded, indicating that sub-channel n is no longer available to increase one bit of user i, and operation returns to step  107 . 
   If neither the bit cap constraint nor the power mask constraint has been met or exceeded, at decision block  113 , a query is made, at decision block  117 , as to whether there are remaining powers for all users. If modem power is not exhausted, then operation returns to step  107 . If modem power has been exhausted, the bit and power allocation process is ended, at step  119 . 
   While the invention has been described with reference to a preferred embodiment, it will be understood by those skilled in the relevant art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to the particular embodiment disclosed as the best mode contemplated for carrying out this invention, but that the invention will include all embodiments falling within the scope of the appended claims.