Abstract:
The present invention provides procedures for computing Forward Error Correction (FEC) parameters given a set of constraints on maximum interleaver memory, maximum interleaver depth, maximum codeword size, maximum number of check bytes, maximum number of FEC codewords per Discrete Multi-Tone (DMT) symbol, and minimum number of DMT symbols that the FEC must correct, as well as any constraints imposed by the interleaver. These procedures are implemented on a computational engine in a modem, enabling it to achieve optimal performance in all cases. In addition these procedures can be applied as part of any bit loading algorithm to determine the optimal FEC parameters, taking into account the Signal-to-Noise Ratio (SNR) profile, the FEC coding gain, the constraints of the framer, and any application specific constraints.

Description:
CROSS-REFERENCE TO RELATED APPLICATION(S)  
       [0001]     The present non-provisional patent application claims the benefit of priority of U.S. Provisional Patent Application No. 60/617,047, entitled “DETERMINATION OF FEC PARAMETERS IN DMT BASED xDSL SYSTEMS IN THE PRESENCE OF SYSTEM IMPOSED CONSTRAINTS,” and filed on Oct. 12, 2004, which is incorporated in full by reference herein. 
     
    
     FIELD OF THE INVENTION  
       [0002]     The present invention relates generally to improved methods for the determination of Forward Error Correction (FEC) parameters in Discrete Multi-Tone (DMT) based Digital Subscriber Line (xDSL) systems (e.g. modems) that use FEC and convolutional interleaving to combat impulse noise in the presence of system imposed constraints.  
       BACKGROUND OF THE INVENTION  
       [0003]     Conventional high speed communications on copper media (e.g. standard telephone lines) use DMT technology and are bundled under the umbrella of xDSL. There are several variants of this technology currently deployed, namely Asymmetric Digital Subscriber Line (ADSL), ADSL2, ADSL2plus, and Very High Speed Digital Subscriber Line (VDSL). Some of these technologies are standardized by the International Telecommunications Union, Geneva, (ITU) as follows: “ITU-T Recommendation G992.1, Asymmetric Digital Subscriber Line (ADSL),” “ITU-T Recommandation G992.3, Asymmetric Digital Subscriber Line Transceivers 2 (ADSL2),” “ITU-T Recommendation G992.5, Asymmetric Digital Subscriber Line (ADSL) Transceivers—Extended Bandwidth ADSL2 (ADSL2plus),” and “ITU-T Recommendation G993.1, Very High Speed Asymmetric Digital Subscriber Line (VDSL) Transceivers.” These and other systems are the subject of ongoing and future standardization efforts.  
         [0004]     One key feature of such xDSL modems is the use of FEC to combat the effects of impulse noise on the lines. The FEC used is typically the well known Reed Solomon code, with a maximum codeword size of 255 bytes. These coders add redundancy to data by appending R check bytes to each block of data, allowing for the correction of R/2 random errors per block, where: 
 
 N=K+R,  
 
 and there are K data bytes and R check bytes in each codeword block of N bytes. 
 
         [0005]     In order to enhance the effectiveness of error correction, a convolutional interleaver is added to spread the error pattern over many DMT symbols, thus allowing for the correction of such errors without introducing excessive redundancy and, hence, overhead. The convolutional interleaver has the following property: 
 
Δ j =( D −1) j j= 1,  . . . , I −1, 
 
 where, 
        Δ j  is the distance between two interleaved bytes,     D is the interleaver depth, and     I is the interleaver block size.        
 
         [0009]     A necessary condition of such an interleaver is that D and I must be co-prime (i.e. have no common divisor). This has been enforced in different ways: 
 
in  ADSL D= 2 n    I=N =odd integer, and 
 
in  VDSL D=M·I+ 1 with  N =q·I, 
 
 where q is an integer fraction. Finally, a generalized interleaver has also been considered where: 
 
in any  DSL D=M·I+x  with  N=q·I x= 1,  . . . ,I− 1, 
 
 with the constraint that x is chosen such that D and I are mutually co-prime. Generally, these conditions place one constraint on the choice of D and N. 
 
         [0010]     In a DMT modem, the data is broken into frames and transmitted on a set of discrete tones in each frame, also called a DMT symbol. In xDSL, the frame or symbol rate is typically 4 kHz. The number of DMT symbols per FEC codeword is a variable designated as S in the standards. Traditionally, S is an integer or an integer fraction, but more recent standards have relaxed this to allow non-integer values of S. However, the minimum value of S is limited to some specified value S min , which effectively limits the number of times the FEC decoder is run every DMT frame and has a direct influence on complexity and cost. This leads to a second constraint on the choice of FEC parameters.  
         [0011]     The convolutional interleaver was introduced to combat impulse noise. Due to the nature of DMT modems, any impulse noise corrupts at least one whole DMT frame of data. This leads to the definition of a parameter, INP min , that specifies how many DMT frames (symbols) the FEC must correct. This defines a third constraint on the choice of FEC parameters.  
         [0012]     Other possible constraints on the choice of FEC parameters include the delay introduced by the interleaver, defined as MaxLatency, and the total memory required, defined a MaxMemory.  
         [0013]     A DMT modem is required to allocate the bits in an input stream to the tones in a DMT frame. This process is known as bit allocation, and is based on the Signal-to-Noise Ratio (SNR) per tone, using well known algorithms based on the relationship: 
 
bits i =round((snr(tone i )−snrGap−margin+ cg )/3), 
 
 where snr is expressed in dB, the snrGap is approx 9.7 dB, margin is a noise margin parameter, and cg is any coding gain. All bit allocation algorithms are required to take into account any coding gain introduced by the FEC, which is a function of the FEC parameters. This leads to an iterative solution where a first set of FEC parameters is determined assuming no FEC coding gain, and the parameters are adjusted to take into account the coding gain for the chosen FEC parameters. This process is repeated until no difference is observed. Thus, the final outcome is a process for choosing both the bit allocation and the FEC parameters using a computational engine on the modem to achieve optimum performance in the presence of all of the specified constraints. 
 
         [0014]     In conventional implementations, the determination of the optimal FEC parameters is by some form of search over a large set of possible values in order to satisfy all of the constraints.  
       BRIEF SUMMARY OF THE INVENTION  
       [0015]     In various embodiments, the present invention provides procedures for computing FEC parameters given a set of constraints on maximum interleaver memory, maximum interleaver depth, maximum codeword size, maximum number of check bytes, maximum number of FEC codewords per DMT symbol, and minimum number of DMT symbols that the FEC must correct, as well as any constraints imposed by the interleaver. These procedures are implemented on a computational engine in a modem, enabling it to achieve optimal performance in all cases.  
         [0016]     In addition these procedures can be applied as part of any bit loading algorithm to determine the optimal FEC parameters, taking into account the SNR profile, the FEC coding gain, the constraints of the framer, and any application specific constraints, as described above.  
         [0017]     In one embodiment of the present invention, a method for the determination of Forward Error Correction (FEC) parameters in a Discrete Multi-Tone (DMT) based Digital Subscriber Line (xDSL) system includes providing an initial value for each of R (number of check bytes), N (codeword size in bytes), and D (interleaver depth in bytes); providing a set of constraints for one or more of maximum interleaver memory in bytes, maximum interleaver depth in bytes, maximum codeword size in bytes, maximum number of check bytes, maximum number of FEC codewords per DMT symbol, minimum number of DMT symbols for FEC correction, interleaver parameters, Signal-to-Noise ratio (SNR) profile, FEC coding gain, and framer parameters; and determining a constrained value for each of R, N, and D based upon the set of constraints.  
         [0018]     In another embodiment of the present invention, a Discrete Multi-Tone (DMT) based Digital Subscriber Line (xDSL) system includes a processor operable for determining Forward Error Correction (FEC) parameters, the processor including a first algorithm operable for providing an initial value for each of R (number of check bytes), N (codeword size in bytes), and D (interleaver depth in bytes); a second algorithm operable for providing a set of constraints for one or more of maximum interleaver memory in bytes, maximum interleaver depth in bytes, maximum codeword size in bytes, maximum number of check bytes, maximum number of FEC codewords per DMT symbol, minimum number of DMT symbols for FEC correction, interleaver parameters, Signal-to-Noise ratio (SNR) profile, FEC coding gain, and framer parameters; and a third algorithm operable for determining a constrained value for each of R, N, and D based upon the set of constraints.  
         [0019]     In a further embodiment of the present invention, a processor operable for determining Forward Error Correction (FEC) parameters includes a first algorithm operable for providing an initial value for each of R (number of check bytes), N (codeword size in bytes), and D (interleaver depth in bytes); a second algorithm operable for providing a set of constraints for one or more of maximum interleaver memory in bytes, maximum interleaver depth in bytes, maximum codeword size in bytes, maximum number of check bytes, maximum number of FEC codewords per DMT symbol, minimum number of DMT symbols for FEC correction, interleaver parameters, Signal-to-Noise ratio (SNR) profile, FEC coding gain, and framer parameters; and a third algorithm operable for determining a constrained value for each of R, N, and D based upon the set of constraints. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0020]     Using the naming convention developed in G.992.3, described above, it can be written:  
         INP   =         R   ·   S   ·   D       2   ·   N       ⁢   DMT   ⁢           ⁢   symbols       ,     
     ⁢     Latency   =         S   ·   D     4     ⁢   ms       ,     
     ⁢     LineRate   =     lr   =         32   ·   N     S     ⁢   kb   ⁢     /     ⁢   s         ,   and       
         DataRate   =     dr   =         32   ·     (     N   -   R     )       S     ⁢   kb   ⁢     /     ⁢   s         ,       
 
 where: 
        lr is the data rate including coding overhead in kbits/sec,     dr is the net data rate available to carry data in kbits/sec,     N is the size of the Reed Solomon codeword in bytes,     R is the number of check bytes and is even,     D is the interleaver depth in bytes, and     S is the number of DMT symbols per FEC codeword.        
 
         [0027]     The following parameters are further defined: 
        lr max  is the maximum data rate that can be transmitted in kbits/sec,     S min  is the minimum value of S,     mem=D·N is a parameter designated as the interleaver memory in bytes,     INP min  is the minimum number of DMT symbols in error that must be corrected, and     Latency max  is the maximum allowed latency (delay) of the modem in milliseconds.        
 
         [0033]     First, considering the case where there is no constraint on D max  and S min , the following two relationships are considered:  
       dr   =       32   S     ⁢     (     N   -   R     )           
       INP   =         S   ·   R   ·   D       2   ·   N       .         
 
         [0034]     Next, the parameters  
       β   =     R   N         
 
 and use mem=D·N are introduced. Rearranging the second equation as:  
         N   S     =         D   ·   R       2   ·   INP       =         D   ·   N   ·   R       2   ·   N   ·   INP       =         mem   ·   β       2   ·   INP       .             
 
         [0035]     Substituting in the first equation:  
       dr   =           32   ·   N     S     ⁢     (     1   -   β     )       =           32   ·   mem   ·   β       2   ·   INP       ⁢     (     1   -   β     )       =         16   ·   mem     INP     ⁢       β   ⁡     (     1   -   β     )       .               
 
         [0036]     It should be noted, however, that the data rate, dr, cannot exceed the maximum line rate, lr max , minus the redundancy expressed as: 
 
 dr≦lr   max (1−β). 
 
         [0037]     Equating the two equations above, β is solved for to yield the data rate as a function of INP as follows:  
             dr   =       ⁢           16   ·   mem       INP   min       ⁢     β   ⁡     (     1   -   β     )         ≤       lr   max     ⁡     (     1   -   β     )                     ⁢     β   &lt;   0.5                 =       ⁢       4   ·   mem       INP   min                   ⁢     β   =     0.5   .                 
 
         [0038]     This yields the following values for β and the data rate:  
       β   =     min   ⁢     {           lr   max     ·     INP   min         16   ·   mem       ,   0.5     }           
       dr   =         16   ·   mem       INP   min       ⁢       β   ⁡     (     1   -   β     )       .           
 
         [0039]     Calculating the value of the latency when the maximum data rate is attained for a given INP:  
       Latency   =       S   ·   D     4         
       INP   =         S   ·   D   ·   R       2   ·   N       =     Latency   ·   2   ·   β           
             Latency   =       ⁢     INP     2   ·   β               =       ⁢       8   ·   mem       lr   max                   ⁢       if   ⁢           ⁢   β     &lt;   0.5                         =       ⁢   INP               ⁢       if   ⁢           ⁢   β     =   0.5               
 
         [0040]     Thus, it should be noted that, in the case of no constraints, the latency is constant until 50% redundancy is reached, and then becomes proportional to the latency. In practice, for constrained systems with quantified parameters, this forms a lower boundary on the latency expected.  
         [0041]     Introducing constraints on D max  and S min , the case when S is limited from below to some minimum value is first examined: 
 
S≧S min . 
 
         [0042]     Transferring this constraint to β:  
       INP   =       S   ·   D   ·   R       2   ·   N           
         S   =         2   ·   INP       D   ·   β       =         2   ·   INP   ·   N       mem   ·   β       =         2   ·   INP   ·   R       mem   ·     β   2         ≥     S   min             ,       
 
 which provides, for the largest value of R=R max :  
       β   ≤           2   ·   INP   ·     R   max         mem   ·     S   min           .         
 
         [0043]     Considering limiting D max , for maximum data rate:  
         D   ·   N     =   mem       
             D   ·   N     R     =     mem   R       ,     
     ⁢     D   =         mem   ·   β     R     ≤     D   max             
 
 from which, for the largest value or R=R max :  
       β   ≤           D   max     ·     R   max       mem     .         
 
         [0044]     Combining this with the previous equation for β:  
         β   =     min   ⁢     {         2   ·     INP   min     ·     N   min         mem   ·     S   min         ,         D   max     ·     R   max       mem     ,         lr   max     ·     INP   min         16   ·   mem       ,   0.5     }         ,       
 
 and the data rate is still provided by:  
       dr   =         16   ·   mem       INP   min       ⁢       β   ⁡     (     1   -   β     )       .           
 
         [0045]     This provides an exact expression for the data rate as a function of INP min , and demonstrates that the data rate is a function of β and the maximum memory, which is a constant. The constraints are all captured by the value of β. This then allows for the computation of a set of integer values for the FEC parameters R, N, and D, such that the rate is maximized for a given INP min  using the following steps:  
       β   =     min   ⁢     {           2   ·     INP   min     ·     R   max         mem   ·     S   min           ,         D   max     ·     R   max       mem     ,         lr   max     ·     INP   min         16   ·   mem       ,   0.5     }           
       N   =       ceiling   ⁡     (       R   max     ·   β     )       ≤     N   max           
       R   =       even   ⁢           ⁢   integer     ≥     min   ⁡     (       N   ·   β     ,     R   max       )             
       D   =     integer   ≤     (     mem   N     )           
 
         [0046]     Once these parameters are calculated, the value of S can be computed to meet the constraint on INP min :  
         S   =     min   ⁢     {         2   ·     INP   min     ·   N       D   ·   R       ,       lr   max       32   ·   N       ,     S   min       }         ,       
 
 as well as the actual inp achieved by the chosen parameters:  
       inp   =         S   ·   D   ·   R       2   ·   N       .         
 
         [0047]     It should be noted that if S is not constrained from below, the constraint on INP min  is exactly met. Otherwise, it will typically be exceeded due to the upward rounding of R to the nearest even integer. If the quantification error is too large, some adjustment to R and S is necessary to meet INP min , while maximizing the data rate. This is accomplished by testing the next higher value of R and recomputing S to determine the new data rate. If it is larger then the first one chosen, this new value of R is used.  
         [0048]     Next, applying the constraint imposed by the convolutional interleaver, the first case is when D is limited to powers of 2 and N is an odd integer, as in G992.3 and G992.5. In this case, the following procedure is used, starting with the integer values of R, N, and D determined above:  
         D   ′     =     2     round   ⁡     (       log   2     ⁡     (   D   )       )             
         N   ′     =     mem     D   ′           
         N   ′′     =       odd   ⁢           ⁢   integer     ≤     N   ′     ≤     N   max           
         R   ′     =       even   ⁢           ⁢   integer     ≥     β   ·     N   ′             
 
         [0049]     S is recomputed as before:  
       S   =     min   ⁢       {         2   ·     INP   min     ·     N   ′′           D   ′     ·     R   ′         ,       lr   max       32   ·     N   ′′         ,     S   min       }     .           
 
         [0050]     In this case, a situation may arise where R′&gt;R max , requiring the adjustment of either R or D as follows:  
       if   ⁢           ⁢     (     S   ≥     2   ·     S   min         )     ⁢           ⁢   and   ⁢           ⁢     (       2   ·     D   ′       ≤     D   max       )         
         D   ′     =     2   ·     D   ′           
         N   ′     =     mem     D   ′           
         N   ′′     =       odd   ⁢           ⁢   integer     ≥     N   ′           
         R   ′     =       even   ⁢           ⁢   integer     ≥     β   ·     N   ′             
     else     
         R   ′     =     R   max         
 
         [0051]     Recomputing S and inp as before:  
       S   =     min   ⁢     {         2   ·     INP   min     ·     N   ′′           D   ′     ·     R   ′         ,       lr   max       32   ·     N   ′′         ,     S   min       }           
       inp   =       S   ·     D   ′     ·     R   ′         2   ·     N   ′′             
 
         [0052]     If S is not limited from below, the constraint on INP min  is again exactly met. Otherwise, the constraint is exceeded by a large margin and R′ is readjusted as follows:  
         let   ⁢           ⁢     S   limit       =       lr   max       32   ·     N   ′′             
       if   ⁢           ⁢     (     S   ==     S   limit       )         
         R   ′     =       even   ⁢           ⁢   integer     ≥       2   ·     N   ′′     ·     INP   min           S   limit     ·     D   ′               
 
         [0053]     Finally, S and inp are recomputed once more to make sure that the constraint is met. Again, in the case of large quantification errors in R (due to small R values, for example), a neighboring solution with a higher R may have to be examined to achieve the best possible data rate at the given INP min .  
         [0054]     Next, considering the case of the so-called triangular interleaver used in VDSL: 
 
 D=M·I+ 1 with  N=q·I.  
 
         [0055]     In this case, a number of extra degrees of freedom have been introduced. Again, starting with the integer values of R, N, and D computed above, a convenient, small value of M is chosen and I and q are calculated:  
       I   =     floor   ⁡     (       D   -   1     M     )           
       q   =     integer   ≤     N   I     ≥   1         
 
         [0056]     R, N, and D are then recomputed: 
 
 N′=q·I  
 
 R′ =even integer≧ β·N′.  
 
 D′=M·I+ 1 
 
         [0057]     Next S and inp are computed, as above:  
         S   =     min   ⁢     {         2   ·     INP   min     ·     N   ′′           D   ′     ·     R   ′         ,       lr   max       32   ·     N   ′′         ,     S   min       }         ,     
     ⁢     inp   =       S   ·     D   ′     ·     R   ′         2   ·     N   ′′               
 
 and it is checked to determine if inp≧INP min . It should noted that, in this case, the value of M may have to be chosen again if the solution is unsatisfactory. Also, the final result may have to be adjusted by searching the nearest value of R for the best possible rate. In general, the granularity of this interleaver is much smaller than that based on D being a factor of 2, thus yielding an optimal result for a judicious choice of M in all cases. 
 
         [0058]     Finally, in the case of the generalized interleaver defined by: 
 
 D=M·I+x  with  N=q·I x= 1,  . . . , I− 1. 
 
         [0059]     The situation is analogous to the one above, with the added advantage that D can be chosen very close to the original integer value by a proper choice of x. The process in this case is identical to the on above with the modification:  
         I   =     floor   ⁡     (       D   -   x     M     )         ,     
     ⁢     q   =     integer   ≤     N   I     ≥   1           
 
 where x is chosen such that D and I are co-prime (i.e. have no common factors). The rest of the procedure is then identical to that described above for the case of the triangular interleaver. 
 
         [0060]     This procedure for choosing the FEC parameters is then applied to one of the conventional methods of bit allocation by using the actual per bin snr (with the snr Gap and the margin added, but no coding gain) to compute the maximum line rate lr max  in the above equations. The coding gain due to the FEC obtained is then used to increase the maximum snr, and the FEC parameters are recomputed. This procedure is repeated until no appreciable difference in the FEC parameters results. This process yields the optimal bit allocation and FEC parameters that guarantee meeting all of the system. imposed constraints, without conducting an exhaustive search. The procedure can be implemented on a computational engine as part of any xDSL modem, allowing it to achieve optimal performance in the presence of the various system imposed constraints.  
         [0061]     Although the present invention has been illustrated and described with reference to preferred embodiments and/or examples thereof, it will be readily apparent to those of ordinary skill in the art that other embodiments and/or examples may perform similar functions and/or achieve like results. All such equivalent embodiments and/or examples are within the spirit and scope of the present invention and are contemplated and covered by the following claims.