Patent Publication Number: US-8537938-B2

Title: Method and apparatus for demultiplexer design for multi-edge type LDPC coded modulation

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims the benefit, under 35 U.S.C. §365 of International Application PCT/US2010/000084, filed Jan. 14, 2010, which was published in accordance with PCT Article 21(2) on Jul. 22, 2010 in English and which claims the benefit of U.S. provisional patent application No. 61/205,021, filed Jan. 14, 2009. 
    
    
     TECHNICAL FIELD 
     The present principles relate to cable transmission systems and techniques. More particularly, it relates to a Forward Error Correction (FEC) header design for cable television transmissions. 
     BACKGROUND OF THE INVENTION 
     Turbo codes and LPPC codes represent the leading edge of contemporary channel coding theory and practice. As a hybrid of turbo and LDPC codes, accumulator-based irregular LDPC codes (IRA) with quasi-cyclic structure have been widely adopted in communication standards including IEEE 802.11n, IEEE 802.16e and ETSI&#39;s second generation standards for digital video broadcasting (DVB). The IRA codes control their degree-2 variable nodes in a distinctive way to ensure a linear coding complexity, a low error floor as well as the stability of iterative decoding. 
     On the other hand, coding theorists and practitioners have recognized that a well-designed LDPC code can achieve capacity-approaching performance universally across a range of data transmission and storage channels. One example is ETSI&#39;s second generation DVB standards, which reuse the same LDPC codes for satellite, terrestrial and cable communication. Although this is not an optimal way to achieve capacity like the multi-level codes and the single channel code tailored to a given modulation format, it preserves the compatibility of CODEC structure and avoids the prohibiting complexity of implementation. The DVB LDPC codes family (with two block length 16200 and 64800; code rates coverage from 1/4 to 9/10) was originally developed for satellite communications (DVB-S2), which targeted modulations including BPSK, QPSK, 8PSK, 16APSK and 32APSK. These LDPC codes belong to the class of structured irregular repeat accumulate (S-IRA) codes. As demonstrated by prior methods, the structural simplicity can be admitted to the code ensemble to facilitate a linear complexity for encoding and decoding, without compromising the performance in both waterfall and error floor regions. In particular, under non-iterative modulation and conventional sum-product decoding, the DVB-S2 codes have been shown to be only 0.7-0.8 dB away from Shannon capacity limit at a bit error rate of 10 −6 . As a consequence, they have been adopted by standardization bodies for terrestrial and cable communications, and will be reused over terrestrial and cable channels. Nevertheless, the spectral efficiency of each channel type is distinct and needs to be considered in the joint design for coding and modulation. For example, DVB-T2 supports QAM order as high as 256, and DVB-C2 will make 4096-QAM mandatory to meet the demand for higher data rates. In order to preserve the low complexity of channel CODEC and achieve a power-efficient constellation mapping, a random bit interleaver can be plugged between the channel encoder and the constellation mapper to match the irregular profile of a given code to the non-uniform error resilience of a multi-level modulation. This paradigm is generally known as bit-interleaved coded modulation (BICM). Although the insertion of a random bit interleaver typically yields good performance, it is problematic for high-speed implementation for coding and modulation due to the substantial amount of memory and circuits routing involved. 
     Some work has previously been done in studying the framework of code design for a volume holographic memory (VHM) system with non-uniform error correction requirements. Actually, the model of non-uniform parallel channels can be extended to other applications, such as multi-level modulation, OFDM systems and punctured codes. Moreover, both theoretical analysis and simulation results have demonstrated that the decoding threshold does not depend appreciably on the channel details, but on the mutual information between the input and the output of the effective channel. 
     SUMMARY OF THE INVENTION 
     The principles described herein propose modelling the non-uniform parallel channels by a set of surrogate binary erasure channels (BEC), and the approximation is based on the equivalence of bit level capacities. To mitigate the complexity of random bit interleaving, the principles described herein propose constructing a bit demultiplexer and plugging it between the channel encoder and the modulator. The demultiplexer partitions the coded bits uniformly and then maps them to different levels of the constellation mapper. A set of surrogate binary erasure channels (BEC) are used to model the non-uniform parallel channels of a constellation map, where the approximation is based on the equivalence of bit level capacities. It is also an object of the present invention to propose constructing a bit demultiplexer and implementing it between the channel encoder and the modulator. The demultiplexer partitions the coded bits uniformly and then maps them to different levels of the constellation mapper. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  shows the system model for LDPC coded multi-level modulation with bit demulplexing. 
         FIG. 2  shows the inner structure of demultiplexer for a length N LDPC code and Q modulation levels. 
         FIG. 3  shows the parity check for structured IRA code: (a) Original parity check H (b) Re-organized parity check B with block-wise cyclic pattern 
         FIG. 4  shows a layered edge degree distribution for S-IRA coded modulation under MET setting. 
         FIG. 5  shows two binary-input channels with equivalent capacity: (a) AWGN channel with capacity I(Z;C) (b) BEC with Erasure Probability 1−I(Z;C) 
         FIG. 6  shows the comparison of error performance for rate 7/9 LDPC coded 4096-QAM using different bit interleavers. 
         FIG. 7  shows the comparison of error performance for rate 7/9 LDPC coded 1024-QAM using different bit interleavers. 
         FIG. 8  shows a method for demultiplexing a LDPC coded bitstream for multi-level modulation. 
         FIG. 9  shows an apparatus for demultiplexing an LDPC coded bitstream for multi-level modulation. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Multi-level modulation is used in transmission standards, such as DVB-C2, DVB-S2, and DVB-T2. Typically random bit interleavers are used in such applications but are costly in terms of memory and circuitry. The LDPC encoded bits should be mapped to a modulator as optimally as possible, however. In order to reduce the amount of memory and circuitry typically needed for a random interleaver in a multi-level modulation environment, this description pertains to the design of demultiplexers for LDPC coded bitstreams that are used between an LDPC encoder and a constellation mapper. Specifically, this description investigates the design of demultiplexers for a given S-IRA code over non-uniform parallel channels, with a focus on multi-level modulation. Such demultiplexers systematically group the coded bits into parallel groups to feed a constellation mapper. Due to the structural constraint for both codes and demultiplexers, we can apply the multi-edge type (MET) setting proposed by prior methods to incorporate the differences in both received distributions (channel qualities) and edge types. 
     The principles described herein describe modelling the non-uniform parallel channels of a constellation map by a set of surrogate binary erasure channels (BEG), where the approximation is based on the equivalence of bit level capacities. It is also an object of the present invention to propose constructing a bit demultiplexer and implementing it between the channel encoder and the modulator. The demultiplexer partitions the coded bits uniformly and then maps them to different levels of the constellation mapper. 
     This description is organized as follows. Section 2 introduces the system model for bit-multiplexed multi-level modulation. Using BEC as a surrogate channel for density evolution, section 3 studies the design of bit demultiplexers under the framework of MET code ensemble. Section 5 presents the numerical results. Finally, Section 6 concludes this description. 
     The system model for the proposed bit-demultiplexed coded modulation is shown in  FIG. 1 . We assume there is no iteration between the demodulator and the decoder. Without loss of generality, we assume the multi-level modulation takes the form of order 2 Q  QAM. Suppose the LDPC code has block length N (N is dividable by Q), and the coded bits are sequentially indexed by 0, 1, . . . N−1. The bit demultiplexer D can be defined by an offset χ and a size-Q set G={g q } q=1   Q , as shown in  FIG. 2 , where 
               χ   ∈     {     0   ,   1   ,   2   ,       …   ⁢           ⁢     N   Q       -   1       }       ,         
and the elements in G are a permutation of {0, 1, . . . Q−1}. Given D={χ,G}, the bits indices are uniformly partitioned into Q subgroups {G q } q=1   Q , where G q ={χ+g q N Q , . . . , χ+(g q +1)N Q −1} mod N  and N Q =N/Q. To obtain the l-th QAM symbol s l , the l-th bit in each subgroup are collected together into an array {χ+g 1 N Q +l, χ+g 2 N Q +l . . . χ+g Q N Q +l} and are fed in parallel to the Q levels of the constellation mapper, where the bits subgroup indexed by g q  is mapped to the constellation level g q . At the output of the AWGN channel, the l-th received symbol is given by
 
 y   l   =s   l +  ω   l   (1)
 
     where  ω   l , denotes a sample of circularly-symmetric, complex Gaussian noise with double-sided spectral density N 0 /2, the average symbol energy for s l  is E s . 
     To extend the application of the concentration theorem to the parallel sub-channels induced by multi-level modulations, an augmented channel model has been used in prior methods, such as J. Hou, P. H. Siegel, L. B. Milstein, and D. Pfister, “Capacity approaching bandwidth-efficient coded modulation schemes based on low-density parity-check codes,”  IEEE Trans. Inf. Theory , pp. 1016-1020, 2003, in which an I.I.D bit generator is imposed on the generic BICM system model to enforce channel symmetry. Consequently, it is used to track the density evolution of an all-zero codeword by predicting the performance of the entire codebook. As a result, when the random input to the demultiplexer has uniform distribution over {0,1}, the augmented channel between the demultiplexer input (C) and the multiplexer output (Z) satisfies the symmetry condition of
 
 P ( Z=z|C= 0)= P ( Z=−z|C= 1)  (2)
 
     As seen from the construction of an S-IRA code, its parity check matrix H (size Lθ×Jθ) can always be re-organized into an array B=└b l,j ┘ after applying tailing biting to the ending parity bit. For example,  FIG. 3  shows the patterns of the parity check matrix before and after the re-organization for DVB-S2 code of length 16200 and rate 3/4. 
     Let us assume I θ  is a size θ identity matrix, then each entry of this L×J array is a θ×θ matrix, which can be expressed in the form of linear superposition of I θ  and its cyclic permutations as 
     
       
         
           
             
               
                 
                   
                     
                       b 
                       
                         l 
                         , 
                         j 
                       
                     
                     = 
                     
                       
                         ∑ 
                         
                           τ 
                           = 
                           0 
                         
                         
                           θ 
                           - 
                           1 
                         
                       
                       ⁢ 
                       
                         
                           
                             α 
                             τ 
                           
                           ⁡ 
                           
                             ( 
                             
                               l 
                               , 
                               j 
                             
                             ) 
                           
                         
                         ⁢ 
                         
                           
                             ( 
                             
                               ∏ 
                               θ 
                             
                             ) 
                           
                           τ 
                         
                       
                     
                   
                   , 
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
           
         
       
     
     where α τ (l,j)ε{0,1}, II θ  is obtained by cyclically shifting all the entries of I θ  to the left once, the size-τ (1&lt;τ&lt;θ) cyclic shift for I θ  can be represented via (II θ ) τ , a τ-fold self multiplication of I θ  and (II θ ) 0 =I θ . As a result, the distribution of column weights and the row weights of B can be described by two vectors W v =[w v (1) . . . w v (J)] and W c =[w c (1) . . . w c (L)], respectively, where 
     
       
         
           
             
               
                 
                   
                     
                       w 
                       v 
                     
                     ⁡ 
                     
                       ( 
                       j 
                       ) 
                     
                   
                   = 
                   
                     
                       ∑ 
                       
                         τ 
                         = 
                         0 
                       
                       
                         θ 
                         - 
                         1 
                       
                     
                     ⁢ 
                     
                       
                         ∑ 
                         
                           l 
                           = 
                           1 
                         
                         L 
                       
                       ⁢ 
                       
                         
                           α 
                           τ 
                         
                         ⁡ 
                         
                           ( 
                           
                             l 
                             , 
                             j 
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       w 
                       c 
                     
                     ⁡ 
                     
                       ( 
                       l 
                       ) 
                     
                   
                   = 
                   
                     
                       ∑ 
                       
                         τ 
                         = 
                         0 
                       
                       
                         θ 
                         - 
                         1 
                       
                     
                     ⁢ 
                     
                       
                         ∑ 
                         
                           j 
                           = 
                           1 
                         
                         J 
                       
                       ⁢ 
                       
                         
                           
                             α 
                             τ 
                           
                           ⁡ 
                           
                             ( 
                             
                               l 
                               , 
                               j 
                             
                             ) 
                           
                         
                         . 
                       
                     
                   
                 
               
               
                 
                   ( 
                   5 
                   ) 
                 
               
             
           
         
       
     
     The multi-edge type generalization for irregular LDPC codes unifies coding and modulation by an efficient and compact language. By adding a term associated with “received distribution” to the multinomial expression for a variable node (VND), the channel effects can be incorporated seamlessly into the framework for code and demultiplexer structure optimization. In this description, we focus on investigating the latter aspect. 
     According to the definition of “edge degree” in prior work done by T. Richardson and R. Urbanke, “Multi-edge type ldpc codes,” Pre-prints, Revised April 2006, Accepted to  IEEE Trans. Inform. Theory ., for a uniform channel distribution, there are two distinct edge types for an IRA ensemble, namely: the edges connecting information bit nodes to parity check nodes (CND) and the edges connecting parity bit nodes to parity check nodes. When multi-level modulation is employed, the classification of edge types becomes more involved on the VND side. However, we can exploit the structural features of S-IRA code to simplify the generic degree description for MET codes, yielding 
     
       
         
           
             
               
                 
                   
                     v 
                     ⁡ 
                     
                       ( 
                       
                         R 
                         , 
                         X 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       
                         ∑ 
                         
                           q 
                           = 
                           1 
                         
                         Q 
                       
                       ⁢ 
                       
                         
                           r 
                           q 
                         
                         ⁢ 
                         
                           
                             ∑ 
                             
                               j 
                               = 
                               1 
                             
                             
                               J 
                               - 
                               L 
                             
                           
                           ⁢ 
                           
                             
                               
                                 v 
                                 D 
                               
                               ⁡ 
                               
                                 ( 
                                 
                                   q 
                                   , 
                                   j 
                                 
                                 ) 
                               
                             
                             ⁢ 
                             
                               x 
                               1 
                               
                                 
                                   W 
                                   v 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   j 
                                   ) 
                                 
                               
                             
                           
                         
                       
                     
                     + 
                   
                 
               
               
                 
                   ( 
                   6 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       ∑ 
                       
                         q 
                         = 
                         1 
                       
                       Q 
                     
                     ⁢ 
                     
                       
                         r 
                         q 
                       
                       ⁢ 
                       
                         
                           ∑ 
                           
                             j 
                             = 
                             
                               J 
                               - 
                               L 
                               + 
                               1 
                             
                           
                           J 
                         
                         ⁢ 
                         
                           
                             
                               v 
                               D 
                             
                             ⁡ 
                             
                               ( 
                               
                                 q 
                                 , 
                                 j 
                               
                               ) 
                             
                           
                           ⁢ 
                           
                             x 
                             2 
                             2 
                           
                         
                       
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   and 
                 
               
               
                 
                   ( 
                   7 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       μ 
                       ⁡ 
                       
                         ( 
                         X 
                         ) 
                       
                     
                     = 
                     
                       
                         ∑ 
                         
                           l 
                           = 
                           1 
                         
                         L 
                       
                       ⁢ 
                       
                         
                           u 
                           ⁡ 
                           
                             ( 
                             l 
                             ) 
                           
                         
                         ⁢ 
                         
                           x 
                           
                             2 
                             ⁢ 
                             
                                 
                             
                           
                           2 
                         
                         ⁢ 
                         
                           x 
                           1 
                           
                             
                               
                                 W 
                                 c 
                               
                               ⁡ 
                               
                                 ( 
                                 l 
                                 ) 
                               
                             
                             - 
                             2 
                           
                         
                       
                     
                   
                   , 
                 
               
               
                 
                   ( 
                   8 
                   ) 
                 
               
             
           
         
       
     
     where X=[x 1  x 2 ], R=[r 1 , r 2  . . . r q ], x 1  and x 2  denote the two edge types that emanate from information bit nodes and parity bit nodes, respectively, r q  is the q-th modulation level, {v D (q,j)} and {u(l)} are two series of non-negative coefficients that represent the proportion of VND socket type (q, j) and CND socket type l, respectively, and the subscript D designates the dependence on demultiplexer, which leads to the allocation of VNDs to different modulation levels. In particular, we have 
     
       
         
           
             
               
                 
                   
                     
                       
                         ∑ 
                         
                           q 
                           = 
                           1 
                         
                         Q 
                       
                       ⁢ 
                       
                         
                           ∑ 
                           
                             j 
                             = 
                             1 
                           
                           J 
                         
                         ⁢ 
                         
                           
                             v 
                             D 
                           
                           ⁡ 
                           
                             ( 
                             
                               q 
                               , 
                               j 
                             
                             ) 
                           
                         
                       
                     
                     = 
                     1 
                   
                   , 
                 
               
               
                 
                   ( 
                   9 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       ∑ 
                       
                         l 
                         = 
                         1 
                       
                       L 
                     
                     ⁢ 
                     
                       u 
                       ⁡ 
                       
                         ( 
                         l 
                         ) 
                       
                     
                   
                   = 
                   
                     
                       L 
                       J 
                     
                     . 
                   
                 
               
               
                 
                   ( 
                   10 
                   ) 
                 
               
             
           
         
       
     
     To illustrate,  FIG. 4  shows the edge degree distribution for the module of S-IRA coded modulation across three layers, namely, channel, VND and CND. All the edges incident to VND can be classified into 2Q categories, depending on both the code and the demultiplexer structure. However, the edges incident to CND have two types only, which are predetermined by the code structure and is independent of the demultiplexer design. 
     To simplify the ensuing statements, we define the partial derivatives of (7) and (8) as follows: 
     
       
         
           
             
               
                 
                   
                     
                       
                         
                           v 
                           . 
                         
                         
                           r 
                           l 
                         
                       
                       ⁡ 
                       
                         ( 
                         
                           R 
                           , 
                           X 
                         
                         ) 
                       
                     
                     = 
                     
                       
                         ∂ 
                         
                           v 
                           ⁡ 
                           
                             ( 
                             
                               R 
                               , 
                               X 
                             
                             ) 
                           
                         
                       
                       
                         ∂ 
                         
                           r 
                           l 
                         
                       
                     
                   
                   , 
                   
                     l 
                     = 
                     1 
                   
                   , 
                   … 
                   ⁢ 
                   
                       
                   
                   , 
                   Q 
                 
               
               
                 
                   ( 
                   11 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       
                         
                           v 
                           . 
                         
                         
                           x 
                           i 
                         
                       
                       ⁡ 
                       
                         ( 
                         
                           R 
                           , 
                           X 
                         
                         ) 
                       
                     
                     = 
                     
                       
                         ∂ 
                         
                           v 
                           ⁡ 
                           
                             ( 
                             
                               R 
                               , 
                               X 
                             
                             ) 
                           
                         
                       
                       
                         ∂ 
                         
                           x 
                           i 
                         
                       
                     
                   
                   , 
                   
                     i 
                     = 
                     1 
                   
                   , 
                   2 
                 
               
               
                 
                   ( 
                   12 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       
                         
                           μ 
                           . 
                         
                         
                           x 
                           i 
                         
                       
                       ⁡ 
                       
                         ( 
                         X 
                         ) 
                       
                     
                     = 
                     
                       
                         ∂ 
                         
                           μ 
                           ⁡ 
                           
                             ( 
                             X 
                             ) 
                           
                         
                       
                       
                         ∂ 
                         
                           x 
                           i 
                         
                       
                     
                   
                   , 
                   
                     i 
                     = 
                     1 
                   
                   , 
                   2 
                 
               
               
                 
                   ( 
                   13 
                   ) 
                 
               
             
           
         
       
     
     Considering the conservation law for “typed” sockets in prior approaches, the coefficients of (7) and (8) should satisfy the constraints: 
     
       
         
           
             
               
                 
                   
                     
                       
                         
                           v 
                           . 
                         
                         
                           x 
                           i 
                         
                       
                       ⁡ 
                       
                         ( 
                         
                           
                             1 
                             _ 
                           
                           , 
                           
                             1 
                             _ 
                           
                         
                         ) 
                       
                     
                     = 
                     
                       
                         
                           μ 
                           . 
                         
                         
                           x 
                           i 
                         
                       
                       ⁡ 
                       
                         ( 
                         
                           1 
                           _ 
                         
                         ) 
                       
                     
                   
                   , 
                   
                     i 
                     = 
                     1 
                   
                   , 
                   2 
                 
               
               
                 
                   ( 
                   14 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       
                         
                           v 
                           . 
                         
                         
                           r 
                           l 
                         
                       
                       ⁡ 
                       
                         ( 
                         
                           
                             1 
                             _ 
                           
                           , 
                           
                             1 
                             _ 
                           
                         
                         ) 
                       
                     
                     = 
                     
                       1 
                       Q 
                     
                   
                   , 
                   
                     l 
                     = 
                     1 
                   
                   , 
                   … 
                   ⁢ 
                   
                       
                   
                   , 
                   
                     Q 
                     . 
                   
                 
               
               
                 
                   ( 
                   15 
                   ) 
                 
               
             
           
         
       
     
     where  1 =[1, . . . , 1]. 
     To make the design of the demultiplexer easily controllable, we can substitute the Q-level constellation mapper by Q parallel binary erasure channels (BEC) with erasure probabilities {ε q   0 } q=1   Q , and the substitution is based on the equivalence of channel capacity, i.e.
 
 I ( Z   q   ;C   q )=1−ε q   0   , q= 1,2 , . . . Q   (16)
 
     where ε 1   0 &lt;ε 2   0  . . . &lt;ε Q   0 , the term on the left-hand-side denotes the bitwise capacity of modulation level q, and the right-hand-side is the capacity of the BEC subchannel q. To illustrate, FIG.  5 -( a ) depicts an AWGN channel with binary input C and continuous output Z; FIG.  5 -( b ) shows the BEC surrogate channel for (a) with erasure probability 1−I(Z;C). 
     This substitution is based on some empirical evidence, as well as the observations made by prior methods (C. Jones, A. Matache, T. Tian, J. Cillasenor, and R. Wesel, “The universality of ldpc codes on wireless channels,”  IEEE Milcom Conf.,  2003. and M. Franceschini, G. Ferrari, and R. Raheli, “Does the performance of LDPC codes depend on the channel?”  IEEE Trans. on Commun ., pp. 2129-2132, 2006.), as the decoding threshold of a given LDPC code ensemble mainly depends on the mutual information between the encoder output and the decoder input of the effective channel, rather than the channel details. Based on the use of surrogate BEC, the investigation of the decoding behavior can be greatly simplified, since the task of tracking the decoding trajectory reduces to observing the evolution of erasure probability on each subchannel, and the prohibiting complexity incurred by“infinite dimensional algebra” of a generic density evolution algorithm is circumvented. In fact, the substitution in (16) is not limited to a constellation mapper, and it can be generalized to a number of memoryless parallel channels. 
     During the course of message passing decoding for LDPC codes, the set of VNDs and CNDs exchange information along the edges that connect them. In one iteration, the sets of VNDs and CNDs are activated alternatively. Each active node, either a VND or a CND, accepts from its incident edges the input messages, computes its outputs, which are updates of the inputs, and then restitutes them to the edges. In our case, depending on the type of edges, all the circulating messages can be classified into two categories. To obtain the distribution for different types of messages, we normalize (12) and (13) by (14), yielding
 
Λ( R,X )=[λ 1 ( R,X )λ 2 ( R,X )]  (17)
 
(Φ)( X )=[ρ 1 ( X )ρ 2 ( X )]  (18)
 
where
 
     
       
         
           
             
               
                 
                   λ 
                   n 
                 
                 ⁡ 
                 
                   ( 
                   
                     R 
                     , 
                     X 
                   
                   ) 
                 
               
               = 
               
                 
                   
                     
                       
                         
                           v 
                           . 
                         
                         
                           x 
                           n 
                         
                       
                       ⁡ 
                       
                         ( 
                         
                           R 
                           , 
                           X 
                         
                         ) 
                       
                     
                     
                       
                         
                           v 
                           . 
                         
                         
                           x 
                           n 
                         
                       
                       ⁡ 
                       
                         ( 
                         
                           1 
                           , 
                           1 
                         
                         ) 
                       
                     
                   
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   and 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   
                     
                       ρ 
                       n 
                     
                     ( 
                     
                         
                     
                     ⁢ 
                     X 
                     ) 
                   
                 
                 = 
                 
                   
                     
                       
                         μ 
                         . 
                       
                       
                         x 
                         n 
                       
                     
                     ⁡ 
                     
                       ( 
                       X 
                       ) 
                     
                   
                   
                     
                       
                         μ 
                         . 
                       
                       
                         x 
                         n 
                       
                     
                     ⁡ 
                     
                       ( 
                       1 
                       ) 
                     
                   
                 
               
             
             , 
             
               n 
               = 
               1 
             
             , 
             2. 
           
         
       
     
     At the beginning of message passing decoding, we initialize the received distribution R by the Q erasure probabilities of BEC channel, yielding:
 
 R   ε =└ε l   0 , . . . , ε Q   0 ┘  (19)
 
     Substituting (19) into (18), we have the erasure probabilities at the VND output for the first iteration
 
Ω l =Λ( R   ε ,1)  (20)
 
     To obtain the erasure probabilities at the CND output, we can replace X by 1−Ω l , yielding
 
Δ l =1−Φ(1−Ω l )  (21)
 
     As a consequence, the evolution of erasure probabilities can be represented recursively as
 
Ω k =Λ( R   ε ,Δ k-l )=Λ( R   ε ,1−Φ(1−Ω k-l )),  k&gt; 1  (22)
 
     For the system modeled by  FIG. 4 , the VND degree distributions in (7), (12) and (17) are determined by the configuration of the demultiplexer when the channel code and the constellation mapper are fixed. To emphasize the dependence on D, we rewrite (22) as
 
Ω k ( D )=Λ D ( R   ε ,1−Φ(1−Ω k-l )),  k&gt; 1  (23)
 
     which emphasizes the decoding behavior is a function of the demultiplexer D. 
     Assuming the number of decoding iterations is upper bounded by T and the target error probability is ε, then the optimization for D can be obtained by solving the following problem: 
     
       
         
           
             
               
                 
                   
                     min 
                     D 
                   
                   ⁢ 
                   
                     γ 
                     ⁡ 
                     
                       ( 
                       D 
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   24 
                   ) 
                 
               
             
             
               
                 
                   
                     subject 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     to 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     max 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       ( 
                       
                         
                           Ω 
                           T 
                         
                         ⁡ 
                         
                           ( 
                           D 
                           ) 
                         
                       
                       ) 
                     
                   
                   ≤ 
                   ɛ 
                 
               
               
                 
                   ( 
                   25 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       ∑ 
                       
                         q 
                         = 
                         1 
                       
                       Q 
                     
                     ⁢ 
                     
                       
                         ∑ 
                         
                           j 
                           = 
                           1 
                         
                         J 
                       
                       ⁢ 
                       
                         
                           v 
                           D 
                         
                         ⁡ 
                         
                           ( 
                           
                             q 
                             , 
                             j 
                           
                           ) 
                         
                       
                     
                   
                   = 
                   1 
                 
               
               
                 
                   ( 
                   26 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       ∑ 
                       
                         l 
                         = 
                         1 
                       
                       L 
                     
                     ⁢ 
                     
                       u 
                       ⁡ 
                       
                         ( 
                         l 
                         ) 
                       
                     
                   
                   = 
                   
                     L 
                     J 
                   
                 
               
               
                 
                   ( 
                   27 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       
                         
                           v 
                           . 
                         
                         
                           x 
                           i 
                         
                       
                       ⁡ 
                       
                         ( 
                         
                           
                             1 
                             _ 
                           
                           , 
                           
                             1 
                             _ 
                           
                         
                         ) 
                       
                     
                     = 
                     
                       
                         
                           μ 
                           . 
                         
                         
                           x 
                           i 
                         
                       
                       ⁡ 
                       
                         ( 
                         
                           1 
                           _ 
                         
                         ) 
                       
                     
                   
                   , 
                   
                     i 
                     = 
                     1 
                   
                   , 
                   2 
                 
               
               
                 
                   ( 
                   28 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       
                         
                           v 
                           . 
                         
                         
                           r 
                           l 
                         
                       
                       ⁡ 
                       
                         ( 
                         
                           
                             1 
                             _ 
                           
                           , 
                           
                             1 
                             _ 
                           
                         
                         ) 
                       
                     
                     = 
                     
                       1 
                       Q 
                     
                   
                   , 
                   
                     l 
                     = 
                     1 
                   
                   , 
                   … 
                   ⁢ 
                   
                       
                   
                   , 
                   Q 
                 
               
               
                 
                   ( 
                   29 
                   ) 
                 
               
             
           
         
       
     
     where γ=E s /N 0  is the average SNR of the transmitted signal. 
     For binary modulations, the error floor performance of a given S-IRA code under message passing decoding is determined by the edge permutations between the CND layer and the VND layer, as shown by  FIG. 4 . Nevertheless, for multi-level modulations, the edge interleaving between the channel layer and the VND layer also contributes to the error floor since the initial message input to the decoding algorithm is calculated by symbol-wise marginalization. In high SNR cases, it is the bit levels with least error protection in the constellation mapper that will suffer most from a corrupted symbol. For instance, if more than one of the edges connected to a CND are erased and the messages being carried on these edges are obtained via demapping of the same constellation symbol, the decoder will get trapped and the symbol error will never be corrected regardless of the number of decoding iterations. We call such a phenomenon as “CND collision” for simplicity, which is a major contributing factor to the error floor, especially in the presence of deep channel fading. Actually, given the number of modulation levels Q, we can prove the following Lemma. Due to the space limitation, the details of the proof are not included in this description. 
     Lemma: For a given code, the amount of CND collisions incurred by any choice of demultiplexer D={χ,G} among all modulation levels is independent of the cyclic shift χ and the permutation G when the modulation level Q is fixed a priori. 
     Actually, it is not necessary to consider the CND collision among bit levels with smallest erasure probability ε q   0 , since they are unlikely to have an error. The goal of improving the error floor can be accomplished by lessening the effect of CND collisions among the most error prone bit levels. Without violating the structural constraint of D, we can choose to offset the de-multiplexed bits within G q , q=1, . . . Q such that mapping of those error prone bits to the same CND is avoided. Theoretically, we can add “reducing CND collision” as an extra constraint to (24), but the solution may compromise the performance in the waterfall region. On the other hand, most practical systems employ a concatenated channel coding scheme, in which an outer code (e.g. BCH, RS) with mild error correction capabilities is placed in front of a more powerful inner code. Thereby, we can solve (24)-(29) first to find D*={χ*,G*}. Then, we can seek to minimize the number of CND collisions among the w weakest bit levels corresponding to demultiplexer indices {g q *} q=1   w , which satisfies ε g*     q     0 &gt;ε g*     p     0 , 1≦q≦w, w&lt;p≦Q. For convenience, we still consider the re-organized parity check matrix B. Assume the w demultiplexed bit stream are indexed sequentially by Ψ q =[χ*+g q *N Q  . . . χ*+(g q *+1)N Q −1] mod N , 1≦q≦w, then we can find the set of offsets Ξ*={O q } q=1   w-1  by solving 
     
       
         
           
             
               
                 
                   
                     
                       Ξ 
                       * 
                     
                     = 
                     
                       
                         min 
                         Ξ 
                       
                       ⁢ 
                       
                         ( 
                         
                           
                             B 
                             
                               Ψ 
                               w 
                             
                           
                           + 
                           
                             
                               ∑ 
                               
                                 q 
                                 = 
                                 1 
                               
                               
                                 w 
                                 - 
                                 1 
                               
                             
                             ⁢ 
                             
                               B 
                               
                                 
                                   ( 
                                   
                                     
                                       Ψ 
                                       q 
                                     
                                     + 
                                     
                                       O 
                                       q 
                                     
                                   
                                   ) 
                                 
                                 
                                   mo 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   d 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   N 
                                 
                               
                             
                           
                         
                         ) 
                       
                     
                   
                   , 
                 
               
               
                 
                   ( 
                   30 
                   ) 
                 
               
             
           
         
       
     
     where the sum inside the bracket denotes the number of CND collisions among the w weakest bit levels for the N Q  constellation symbols corresponding to an entire code block. Finally, the full demultiplexer configuration can be obtained by combining the solutions for both (24)-(29) and (30), yielding D f *={D*,Ξ*}. 
     To test the efficacy of the proposed design methodology, we employ the short block length (N=16200) LDPC code specified in the DVB-S2/T2 standards as the channel code and consider the square 1024-QAM and 4096-QAM modulations, which are proposed to be deployed in the next generation of DVB cable channels. By making use of the structural regularity of the DVB-S2 codes, prior methods have proposed a bit interleaving strategy that can avoid the occurrence of CND collisions among all modulation levels. However, we recognize that the occurrence of CND collision is not necessarily bad, especially when a high-degree VND is connected to a low-degree VND via a common CND. Heuristically, this is because the high-degree VND usually carries Log-Likelihood Ratio (LLR) messages of higher reliability, which can help the low-degree VND to achieve a fast decoding convergence. Therefore, in our design and simulations, we first optimize the demultiplexer configuration by solving (24)-(29), and then consider CND collision avoidance among the weakest bit levels by optimizing (30). 
     Throughout this section, we consider Monte-Carlo simulation results and use the case of “no-interleaving” (continuous bits grouping and mapping to constellation mapper) as a common benchmark. For each SNR tested for decoding convergence, the simulation trial is terminated when 50 frame errors have been detected. A comparison of decoded BER for information bits are given in  FIG. 6  and  FIG. 7  for code rate 7/9 and two modulation formats (4096- and 1024-QAM). The configuration of the DVB-T2 style bit interleaving of prior methods can be described by χ=0, G={7,5,9,6,1,3,2,4,10,8}, Ξ={0,1,2,2,3,3,4,4,5,7}. In contrast, the demultiplexer designed used in the proposed method under the principles described herein is given by χ=3240, G={2,4,8,3,9,7,6,1,10,5}, Ξ={0,0,0,0,0,0,0,0,0,0}. 
     It can be observed from these curves that the bit demultiplexer designed using the proposed approach can achieve significant power savings (gain≧0.4 dB) relative to the DVB-T2 style interleavers. Both methods outperform the scenario of no interleaving, which demonstrates that a dedicated bit interleaver/demultiplexer is necessary to tradeoff between the spectral efficiency and power efficiency when an irregular LDPC code is used for forward error correction over a non-uniform channel. 
       FIG. 8  shows a method  800  for designing a demultiplexer of an LDPC encoded bitstream for multi-level modulation. The Q levels of a constellation mapper for a particular modulation method are substituted by the Q levels of parallel binary erasure channels in step  810 . Next, the density evolution of the erasure probabilities for a plurality of demultiplexer configurations is optimized in step  820 . Then, in step  830 , the demultiplexer configuration with the minimum number of CND collisions is found among those demultiplexer configurations found in step  820 . 
       FIG. 9  shows an apparatus for designing a demultiplexer of an LDPC encoded bitstream for multi-level modulation. The Q-level constellation of a particular modulation method is substituted by the Q levels of parallel binary erasure channels by circuitry  910 . A processor  920  optimizes the density evolution of the binary erasure channels over a plurality of demultiplexer configurations. Circuitry  930  for determining the configuration with the minimum number of CND collisions is then used to generate a demultiplexer configuration. 
     The configuration can also be used for the multiplexer used at the receiver. 
     In this description, we have discussed the design of a bit demultiplexer for multilevel modulations, assuming the channel code is given and belongs to the class of S-IRA code. Based on the framework of multiedge type LDPC codes introduced by Richardson and Urbanke, and using the BEC as a surrogate channel, we formulated the design of the bit demultiplexer as a solution to a constrained optimization problem. The decoding performance in both the waterfall region and the error floor region have been addressed. Using the LDPC codes standardized in the DVB-S2/T2 specification as our prototype, this description shows that the proposed bit demultiplexer achieves a good tradeoff between power and spectral efficiency, and outperforms the interleaving strategy adopted by the DVB-T2 standard. 
     We thus provide one or more implementations having particular features and aspects. However, features and aspects of described implementations may also be adapted for other implementations. Although implementations described herein may be described in a particular context, such descriptions should in no way be taken as limiting the features and concepts to such implementations or contexts. 
     It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the present principles and are included within its spirit and scope. The present principles are equally applicable to header information of different lengths with appropriate modification of the methods and apparatus of the present invention. 
     The implementations described herein may be implemented in, for example, a method or process, an apparatus, or a software program. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method), the implementation or features discussed may also be implemented in other forms (for example, an apparatus or program). An apparatus may be implemented in, for example, appropriate hardware, software, and firmware. The methods may be implemented in, for example, an apparatus such as, for example, a computer or other processing device. Additionally, the methods may be implemented by instructions being performed by a processing device or other apparatus, and such instructions may be stored on a computer readable medium such as, for example, a CD, or other computer readable storage device, or an integrated circuit. Further, a computer readable medium may store the data values produced by an implementation. 
     As should be evident to one of skill in the art, implementations may also produce a signal formatted to carry information that may be, for example, stored or transmitted. The information may include, for example, instructions for performing a method, or data produced by one of the described implementations. 
     Additionally, many implementations may be implemented in one or more of an encoder, a pre-processor to an encoder, a decoder, or a post-processor to a decoder. The implementations described or contemplated may be used in a variety of different applications and products. Some examples of applications or products include set-top boxes, cell phones, personal digital assistants (PDAs), televisions, personal recording devices (for example, PVRs, computers running recording software, VHS recording devices), camcorders, streaming of data over the Internet or other communication links, and video-on-demand. 
     Further, other implementations are contemplated by this specification. For example, additional implementations may be created by combining, deleting, modifying, or supplementing various features of the disclosed implementations. 
     All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the present principles and the concepts contributed by the inventor(s) to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions.
 
Other hardware, conventional and/or custom, may also be included. Similarly, any switches shown in the figures are conceptual only. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the implementer as more specifically understood from the context.
 
     Reference in the specification to “one embodiment” or “an embodiment” of the present principles, as well as other variations thereof, means that a particular feature, structure, characteristic, and so forth described in connection with the embodiment is included in at least one embodiment of the present principles. Thus, the appearances of the phrase “in one embodiment” or “in an embodiment”, as well any other variations, appearing in various places throughout the specification are not necessarily all referring to the same embodiment.