Patent Publication Number: US-8539301-B2

Title: Message-wise unequal error protection

Description:
This application claims the benefit of U.S. Provisional Application No. 61/253,680, filed on Oct. 21, 2009, which is incorporated herein by reference. 
    
    
     FIELD OF THE INVENTION 
     The present invention is generally directed to coding and decoding using unequal error protection, and more particularly to the use of codeword flipping and signal inversion to distinguish message and codeword types in an message-wise unequal error protection scheme. 
     BACKGROUND 
     Unequal error protection (UEP) can be used to provide better error protection for certain messages relative to other messages. Current message-wise UEP schemes are based on optimal coding schemes, which are information theory-oriented and are not practically implemented or deployed. 
     SUMMARY OF THE INVENTION 
     In accordance with an embodiment, a message is encoded as a codeword using a first and second encoding. Specifically, in response to determining the message is a first message-type, a first-encoding is applied that results in the codeword having a weight less than or equal to a first threshold. In response to determining the message is not a first message-type, a second-encoding is applied that results in the codeword having a weight greater than the first threshold. 
     In accordance with one aspect of the present invention, if the message is a first message-type, the first-encoding represents the message as an all-zero binary sequence. 
     In accordance with a further aspect, the second-encoding applies a parity-check encoding to the message, and if the weight of the codeword is less than the threshold, each bit of the codeword is flipped. In yet a further aspect, the first-encoding applies a parity-check encoding to the message, and if the weight of the codeword is greater than the threshold, each bit of the codeword is flipped. 
     In accordance with a further embodiment, a received signal is determined to be a first message-type or a second message-type. If the received message is a first message-type, the special message is output. If the received message is a second message-type, decoding inverts the codeword in the received signal, in response to determining bits of the codeword have been flipped, and applies a parity-check decoding to the codeword. 
     In yet a further aspect of an embodiment, if the received signal is of a first message-type a first-decoder can invert the codeword in response to determining bits of the codeword have been flipped, and applying a parity-check decoding to the codeword. If the codeword cannot be identified as encoding a message of the first message-type or a message of the second message-type, the first-decoding and second decoding are applied separately to the received codeword. If a metric of the first-decoder falls below a first threshold, the first result is output. If a metric of the second-decoder falls below the first threshold, the second result is output. 
     These and other advantages of the invention will be apparent to those of ordinary skill in the art by reference to the following detailed description and the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a flow chart of a process for encoding a message in accordance with an embodiment that assumes only one special message exists; 
         FIG. 2  is a flow chart of a process for encoding a message in accordance with an embodiment having multiple special messages; 
         FIG. 3  is a is a flow chart of a process for decoding a codeword in accordance with an embodiment that assumes only one special message exists; 
         FIG. 4  is a flow chart of a process for decoding a codeword in accordance with an embodiment having multiple special messages; and 
         FIG. 5  is a high-level diagram of a computer that can be configured to perform a process in accordance with the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     In accordance with an embodiment of the present invention, practical coding and decoding schemes for message-wise unequal error protection (UEP) is provided in combination with low-density parity-check (LDPC) coding schemes. 
     As discussed herein, UEP generally utilizes codeword flipping (i.e., flipping all the bits in a codeword {0→1, 1→0}) to distinguish between two message types, such as special messages and ordinary messages. 
     Some systems, one or some messages that should be more protected than others and can be referred to as special messages (e.g., the message of emergency or some control messages). Other messages (e.g., ordinary messages) require a lesser level of protection. For example, ordinary messages can be encoded using a first capacity-approaching code (e.g. LDPC codes). The weight of the codeword is then determined, and for any codeword having a weight not satisfying predetermined criteria, the bits of the codeword are flipped. The weight of the codeword is the number of bits set to “1.” In one embodiment the predetermined criteria is having a weight smaller than half the codeword length. Special messages can be encoded using a second capacity-approaching code. For each special message codeword having a weight greater than half the codeword length, the codeword bits are flipped. Further details are discussed below with respect to the figures. 
     The performance of the processes and systems described herein provides capacity-approaching performance (i.e., the coding schemes can approach the performance limit for UEP dictated by the information theory) with low complexity (i.e., the coding adds little complexity to existing LDPC coding and is easily implemented in systems where the LDPC coding schemes have been implemented). 
       FIG. 1  illustrates a flow chart of a process  100  for encoding a message in accordance with an embodiment that assumes only one special message exists. That is, while there are many ordinary messages, only one special message exists. The message to be coded is input at  110 . At decision  120  it is determined whether the message is special or ordinary. If the message is special, at step  130 , the message is encoded to an all zero codeword. The all zero codeword is then output at step  170 . 
     If the message is “ordinary,” at step  140 , the message is encoded using one capacity-approaching code. At decision  150  it is determined whether the codeword has a weight (W) less than a certain threshold (e.g., the half the length (N) of the codeword (W&lt;N/2)). If the weight is less than the threshold, the bits of the codeword are flipped at step  160 . The resulting coded ordinary message is then output at step  170 . 
       FIG. 2  illustrates a flow chart of a process  200  for encoding a message in accordance with an embodiment having multiple special messages. As similarly discussed above with respect to process  100 , the message to be coded is input at  210 . At decision  220  it is determined whether the message is special or ordinary. 
     If the message is special, at step  230 , the message is encoded using a first capacity approaching code (e.g., one LDPC code). At decision  240 , it is determined whether the weight of the codeword is greater than a threshold. If it is, the codeword bits are flipped at step  270 . The codeword is then output at step  280 . 
     If the message is “ordinary,” at step  250 , the message is encoded using a second capacity-approaching code. The second capacity-approaching code can be different from the first capacity approaching code to provide different levels of error protection. At decision  260  it is determined whether the codeword has a weight (W) less than the threshold. If the weight is less than the threshold (e.g., N/2), the bits of the codeword are flipped at step  270 . The resulting coded ordinary message is then output at step  280 . 
     In accordance with a further aspect, the LDPC codes used have all odd degree check nodes. For a binary code, binary summation of two codewords will result in another codeword of this code. Thus, codeword flipping can be viewed as binary summation of the codeword (to be flipped) and an all-one sequence. If the all-one sequence is a codeword of this code, then the decoder cannot detect if the codeword is the original codeword sequence or the one got flipped since both are valid codeword. With at least one odd degree check node in an LDPC code, the all-one sequence will not be a valid codeword for this LDPC code (the constraints of the odd check nodes are not satisfied with all one inputs.) The decoder at the receiver may differentiate the original codeword or flipped codeword. With all odd check nodes, the decoder can differentiate these two types (original or flipped) with the highest reliability. On the other hand, with such restrictions (having all odd check nodes), the LDPC codes have almost no performance degradation than that without such constraint. Process  200  ensures that all special codewords have a weight less than a threshold and all ordinary messages (coded) have a weight greater than a threshold. Thus, based on this knowledge, received codewords can be differentiated as special or ordinary based on the weight of the codeword, and the appropriate decoder can be applied based on the determination of special or ordinary. 
       FIG. 3  illustrates a process  300  for decoding received signals encoded using unequal error protection that assumes only a single special message. A signal is received at step  310 . The received signal is modeled as the modulated coded sequence transmitted through (or corrupted by) a certain channel, e.g., Binary Symmetric Channel (BSC) or Additive White Gaussian Noise Channel (AWGNC). At step  320  the average codeword weight is determined, for example using the average signal received from BSC or AWGNC. 
     If a special codeword is detected, at step  330 , the single special message is output. However, if an ordinary codeword is detected at decision  320 , at decision  340 , it is determined whether the codeword has been flipped (i.e., whether during encoding, the bits of the codeword were flipped). If the codeword was flipped, at step  350 , the codeword is inverted. At step  360 , the codeword is then decoded into a message using the corresponding decoder (e.g., an iterative LDPC decoder), and the message is output at step  370 . 
     Codeword inversion at step  350  changes the sign (i.e., + or −) of the received signal. For example, for AWGNC, the binary phase shift keying (BPSK) modulation maps as follows: {0→+1, 1→−1}. Thus, an all zero codeword is mapped to an all-one BPSK signal. Inverting an all-one BPSK signal would change the signs of the detected signals to an all-negative-one signal. 
     The determination of a special or ordinary codeword at step  320  is based on the type of signal encoding. For example, with respect to BSC, assuming the received sequence to be c i  for 1≦i≦N, if the average code weight, which can express as 
                 c   _     =       1   N     ⁢       ∑     i   =   1     N     ⁢           ⁢     c   i           ,         
is smaller than
 
               1   2     -     ɛ   B           
for some small ε B , it is determined a special codeword is detected, otherwise an ordinary codeword is detected. In a further example, with respect to AWGNC signal coding with BPSK, assuming the received signals to be s i  for 1≦i≦N, if the average signal, which can be expressed as
 
                 s   _     =       1   N     ⁢       ∑     i   =   1     N     ⁢           ⁢     s   i           ,         
is larger than some ε G , then the special codeword is detected; otherwise the ordinary codeword is detected.
 
     The thresholds ε B  and ε G  for detecting the special message are typically chosen to meet a certain requirement on either the miss detection probability p md  or false alarm probability p fa . 
     For the BSC, when the all-zero sequence is transmitted, 
               N   ⁢     y   _       =       ∑     i   =   1     N     ⁢     y   i             
is the sum of N independent Bernoulli (i.e., Bern(p)) random variables and therefore has a binomial distribution. The mean and variance of {tilde over (y)} are p and √{square root over (p(1−p)/N)}, respectively. By the central limit theorem, for large N, the distribution of {tilde over (y)} is well approximated by Gaussian, i.e.,
 
                 y   _     ⁢     ~   .     ⁢     ??   ⁡     (     p   ,       p   ⁡     (     1   -   p     )       N       )         .         
Then for the given threshold ε B , the miss detection probability can be approximated by
 
     
       
         
           
             
               
                 p 
                 md 
                 B 
               
               ≅ 
               
                 Q 
                 ( 
                 
                   
                     
                       0.5 
                       - 
                       
                         ε 
                         B 
                       
                       - 
                       p 
                     
                     
                       
                         p 
                         ⁡ 
                         
                           ( 
                           
                             1 
                             - 
                             p 
                           
                           ) 
                         
                       
                     
                   
                   ⁢ 
                   
                     N 
                   
                 
                 ) 
               
             
             , 
             
               
 
             
             ⁢ 
             where 
           
         
       
       
         
           
             
               Q 
               ⁡ 
               
                 ( 
                 x 
                 ) 
               
             
             = 
             
               
                 1 
                 
                   
                     2 
                     ⁢ 
                     π 
                   
                 
               
               ⁢ 
               
                 
                   ∫ 
                   x 
                   
                     + 
                     ∞ 
                   
                 
                 ⁢ 
                 
                   
                     ⅇ 
                     
                       
                         - 
                         
                           t 
                           2 
                         
                       
                       / 
                       2 
                     
                   
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   
                     
                       ⅆ 
                       t 
                     
                     . 
                   
                 
               
             
           
         
       
     
     On the other hand, for the BIAWGN channel, when the all-1 sequence is transmitted,  y ˜ (1, σ 2 /N). Hence the miss detection probability is given by 
     
       
         
           
             
               p 
               md 
               G 
             
             = 
             
               
                 Q 
                 ⁡ 
                 
                   ( 
                   
                     
                       
                         1 
                         - 
                         
                           ε 
                           G 
                         
                       
                       σ 
                     
                     ⁢ 
                     
                       N 
                     
                   
                   ) 
                 
               
               . 
             
           
         
       
     
     If the weight spectrum of the ordinary code Co, is denoted as {A i }, where Ai is the fraction of weight−i codeword. The false alarm probability is then given by 
                 p   fa     =       ∑   i     ⁢           ⁢       A   i     ⁢       p   fa     ⁡     (   i   )             ,         
where p fa (i) is the false alarm probability corresponding to the weight−i ordinary codeword.
 
     First considering the BSC, it is assumed μ {tilde over (y)} (i) and 
             σ     y   _     2         
denote the mean and variance of {tilde over (y)} respectively, given that the weight of the message codeword is i. Note that if i&lt;N=2, then the codeword is first flipped before being transmitted and hence the actual weight of the sequence is N−i. Thus,
 
                 μ     y   _       ⁡     (   i   )       =     {                 1   -   p   +       (       2   ⁢   p     -   1     )     ⁢     i   /   N         ,           i   &lt;     N   /   2                   p   +       (     1   -     2   ⁢   p       )     ⁢     i   /   N         ,             i   ≥     N   /   2       ,           ⁢     
     ⁢   and   ⁢     
     ⁢     σ     y   _     2       =         p   ⁡     (     1   -   p     )       N     .               
Again by invoking the Gaussian approximation,
 
                 p   fa   B     ⁡     (   i   )       ≅       Q   ⁡     (           μ     y   _       ⁡     (   i   )       -     1   /   2     +     ε   B         σ     y   _         )       .           
On the other hand, for the BIAWGN channel, by taking into account codeword flipping, it follows that  y ˜ (−|N−2i|/N, σ 2 /N), given that the message codeword has a weight i. Thus,
 
     
       
         
           
             
               
                 p 
                 fa 
                 G 
               
               ⁡ 
               
                 ( 
                 i 
                 ) 
               
             
             = 
             
               
                 Q 
                 ⁡ 
                 
                   ( 
                   
                     
                       
                         
                           N 
                         
                         ⁢ 
                         
                           ε 
                           G 
                         
                       
                       + 
                       
                         
                            
                           
                             N 
                             - 
                             
                               2 
                               ⁢ 
                               i 
                             
                           
                            
                         
                         / 
                         
                           N 
                         
                       
                     
                     σ 
                   
                   ) 
                 
               
               . 
             
           
         
       
     
     The approximation given above depends on the weight spectrum, which is difficult to compute for long LDPC codes. Fortunately, for long LDPC codes since almost all codewords are of the weight approximately equal to N=2, the false alarm probability can be further approximated as follows 
                 p   fa     ≅       p   fa     ⁡     (     N   /   2     )         ,         
where p fa (N/2) is derived from p fa   B (i) for the BSC and p fa   G (i) for the BIAWGN channel.
 
     The determination of whether a codeword has been flipped, at decision  340 , can be based on a prior soft log-likelihood ratio (LLR) messages (i.e., the LLR based on the received signal from channel before the decoding process, and a count of the number of unsatisfied check nodes based on the hard-decided (i.e., ‘0’ or ‘1’) bits. If M is assumed to be the number of check nodes, and M e  to be the number of unsatisfied check nodes, if M e /M&gt;½ then the codeword flipping is detected, and the signs of the input a prior soft LLR messages are changed; otherwise the input a prior soft LLR messages is not changed. 
       FIG. 4  illustrates a process  400  for decoding a codeword in accordance with an embodiment having multiple special messages. At step  405 , the signal is received and at decision  410  a rough detection is made as to whether the codeword transmitted in the signal is an ordinary or special message. 
     Rough detection is signal coding dependent. For example, rough detection is based on the average code weight (i.e., 
                 c   _     =       1   N     ⁢       ∑     i   =   1     N     ⁢     c   i           )         
for BSC and average signal (i.e.,
 
                 s   _     =       1   N     ⁢       ∑     i   =   1     N     ⁢     s   i           )         
for AWGNC. For BSC, given some small ε, if the average code weight  c  is smaller than
 
                 1   2     -   ɛ     ,         
a special message is detected, but if the average code weight  c  is larger than
 
                 1   2     +   ɛ     ,         
an ordinary message is detected. Otherwise, the further detection is made based on the sequential detection, which is discussed in further detail below. For AWGNC, if the average signal  s  is larger than ε, a special message is detected, but if the average signal  s  is less than −ε, an ordinary message is detected. Otherwise, the further detection is made based on the sequential detection.
 
     If an ordinary message is detected, at decision  420 , it is determined whether the codeword has been flipped. If the codeword was flipped, the codeword is inverted at step  424 . At step  428 , the special message is decoded using the appropriate decoder, and the decoded message is output at step  490 . 
     If a special message is detected, at decision  440 , it is determined whether the codeword has been flipped. If the codeword was flipped, the codeword is inverted at step  444 . At step  448 , the special message is decoded using the appropriate decoder, and the decoded message is output at step  490 . 
     However, if at decision  410 , it cannot be determined whether the codeword is a special message or an ordinary message, the codeword is processed as both an ordinary codeword and a special codeword. Thus, at decision  460 , processing of the message as a special message begins, and at decision  470 , processing of the message as an ordinary message begins. Processing as both an ordinary message and a special message can be performed in parallel or in an alternating iterative sequence. 
     With respect to processing the codeword as a special message, at decision  460 , it is determined whether the codeword has been flipped. If the codeword was flipped, the codeword is inverted at step  464 . At step  468 , the special message is decoded using the appropriate decoder. 
     With respect to processing the codeword as an ordinary message, at decision  470 , it is determined whether the codeword has been flipped. If the codeword was flipped, the codeword is inverted at step  474 . At step  478 , the ordinary message is decoded using the appropriate decoder. 
     At step  480 , the output from the special message decoder of step  468  and the output of the ordinary message decoder at step  478  is received by a tracker that tracks the number of unsatisfied check nodes for the output of each decoder to sequentially detect whether the codeword is an ordinary message or a special message. That is, the decoding at steps  468  and  478  can be performed iteratively. After each iteration, the output is processed at step  480  to determine the number of unsatisfied check nodes in the LDPC decoding. If the number of unsatisfied check nodes for a given decoder (i.e., the special message decoder or the ordinary message decoder) exceeds half of the number of check nodes, the codeword is inverted for the next decoding iteration at the corresponding decoder. However, if in some iteration the fraction of unsatisfied check nodes for either the special decoder or the ordinary decoder meets a specified metric (e.g., falls below some threshold η, such as ⅙), the codeword can be classified as a special or ordinary codeword, respectively. If the specified criteria are not satisfied after a given number of iterations, a decoding failure is declared. 
     It should be noted that in contrast to cavity encoding that mixes the special codewords and ordinary codewords together and discards the ordinary codewords near the special codewords, the above processes utilize codeword flipping to separate the special and ordinary codewords without discarding any codewords. 
     Message-wise UEP techniques can be extended to AWGN channels employing M-QAM with M=2 b1+b2 , for exampled by using the natural bit-to-symbol mapping, where the first b 1  and last b 2  labeling bits of each signal point indicate its column and row indices, respectively. Assume M 1 =2 b1  and M 2 =2 b2 . The reason for employing the natural mapping is that the signal point (x, y) is flipped to (−x, −y) when the codeword is flipped, which facilitates the separation of the signals for special and ordinary messages. In the following, it is assumed that the constellation signal points are (2i−M 1 +1, 2j−M 2 +1) for 0≦I≦M 1   i  1 and 0≦j≦M 2 −1. An LDPC code of length N(b 1 +b 2 ) and map the N(b 1 +b 2 ) bits to N signal points in the constellation is employed. 
     A single special message is encoded to the all-zero sequence, and the ordinary messages are encoded using a capacity-approaching LDPC code with all-odd degree check nodes. Let s(k) be the constellation signal points, 0≦k≦M−1, where s( 0 ) is the signal point for the all-zero labeling bits. Note that the encoded symbols for ordinary messages are uniformly distributed over all signal points in the constellation. Thus for the encoded symbol sequence x 1 , . . . , x N , define 
               L   u     ⁢     =   Δ     ⁢       1   MN     ⁢       ∑     i   =   1     N     ⁢       ∑     k   =   0       M   -   1       ⁢              x   i     -     s     (   k   )              2                 
as the average distance between the encoded sequence and the uniform constellation distribution.
 
     Further, for the special message, define 
               L   s     ⁢     =   Δ     ⁢       1   N     ⁢       ∑     i   =   1     N     ⁢              x   i     -     s     (   0   )              2               
as the average distance between the encoded sequence and the special message symbol sequence. Let x I   i  and x Q   i  be the in-phase (I) and quadratic (Q) components of the encoded symbols, respectively. Define
 
     
       
         
           
             
               
                 x 
                 _ 
               
               I 
             
             ⁢ 
             
               = 
               Δ 
             
             ⁢ 
             
               
                 
                   1 
                   / 
                   N 
                 
                 ⁢ 
                 
                   
                     ∑ 
                     
                       i 
                       = 
                       1 
                     
                     N 
                   
                   ⁢ 
                   
                     
                       x 
                       i 
                       I 
                     
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     and 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       
                         x 
                         _ 
                       
                       Q 
                     
                   
                 
               
               ⁢ 
               
                 = 
                 Δ 
               
               ⁢ 
               
                 
                   1 
                   / 
                   N 
                 
                 ⁢ 
                 
                   
                     ∑ 
                     
                       i 
                       = 
                       1 
                     
                     N 
                   
                   ⁢ 
                   
                     
                       x 
                       i 
                       Q 
                     
                     . 
                   
                 
               
             
           
         
       
     
     The codeword is flipped if L s &lt;L u  which is equivalent to  χ   I +  χ   Q &gt;K for some K determined from L s  and L u . The rational behind this is that, if one encoded sequence is closer to the encoded sequence for special message than the encoded sequences for ordinary messages, it should be flipped to be closer to those for ordinary messages. The above scheme is a natural generalization of that for the binary case. Note that when the signal constellation is {+1,−1}, the above flipping condition becomes 
     
       
         
           
             
               L 
               u 
             
             = 
             
               
                 
                   
                     1 
                     
                       2 
                       ⁢ 
                       N 
                     
                   
                   ⁢ 
                   
                     
                       ∑ 
                       
                         i 
                         = 
                         1 
                       
                       N 
                     
                     ⁢ 
                     
                       ( 
                       
                         
                           
                             ( 
                             
                               
                                 x 
                                 i 
                               
                               + 
                               1 
                             
                             ) 
                           
                           2 
                         
                         + 
                         
                           
                             ( 
                             
                               
                                 x 
                                 i 
                               
                               - 
                               1 
                             
                             ) 
                           
                           2 
                         
                       
                       ) 
                     
                   
                 
                 &lt; 
                 
                   
                     1 
                     N 
                   
                   ⁢ 
                   
                     
                       ∑ 
                       
                         i 
                         = 
                         1 
                       
                       N 
                     
                     ⁢ 
                     
                       
                         ( 
                         
                           
                             x 
                             i 
                           
                           - 
                           1 
                         
                         ) 
                       
                       2 
                     
                   
                 
               
               = 
               
                 L 
                 s 
               
             
           
         
       
     
     At the decoder, the special codeword is detected if 
                 1   N     ⁢       ∑     i   =   1     N     ⁢              y   i     -     s     (   0   )              2         &lt;         1   MN     ⁢       ∑     i   =   1     N     ⁢       ∑     k   =   0       M   -   1       ⁢              y   i     -     s     (   k   )              2           -   λ           
for some λ. Denote the I and Q components of the received signals as y I   1  and y Q   1 , 1≦i≦N, respectively. Define
 
     
       
         
           
             
               
                 y 
                 _ 
               
               I 
             
             ⁢ 
             
               = 
               Δ 
             
             ⁢ 
             
               
                 
                   1 
                   / 
                   N 
                 
                 ⁢ 
                 
                   
                     ∑ 
                     
                       i 
                       = 
                       1 
                     
                     N 
                   
                   ⁢ 
                   
                     
                       y 
                       i 
                       I 
                     
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     and 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       
                         y 
                         _ 
                       
                       Q 
                     
                   
                 
               
               ⁢ 
               
                 = 
                 Δ 
               
               ⁢ 
               
                 
                   1 
                   / 
                   N 
                 
                 ⁢ 
                 
                   
                     ∑ 
                     
                       i 
                       = 
                       1 
                     
                     N 
                   
                   ⁢ 
                   
                     
                       y 
                       i 
                       Q 
                     
                     . 
                   
                 
               
             
           
         
       
     
     Then the condition above is equivalent to the following
 
   y     I   +  y     Q &gt;ε QAM ,
 
for some threshold ε QAM . If the ordinary message is detected, the codeword flipping detection is performed in the same way as that for the binary case.
 
     The miss detection and false alarm probabilities can be evaluated as follows. Assume the signal point for special message be (s( 0 I), s( 0 Q)). If the special message is sent, the average of received signals  y   I  and  y   Q  satisfy the distribution  (s (0I) , σ/√{square root over (N)}) and  (s (0Q) , σ/√{square root over (N)}), and the sum  y   I  and  y   Q  satisfies the distribution  (s (0I) +s (0Q) , 2σ/√{square root over (N)}). Thus, the miss detection probability is given by 
     
       
         
           
             
               p 
               md 
             
             = 
             
               
                 Q 
                 ⁡ 
                 
                   ( 
                   
                     
                       
                         
                           s 
                           
                             ( 
                             
                               0 
                               ⁢ 
                               I 
                             
                             ) 
                           
                         
                         + 
                         
                           s 
                           
                             ( 
                             
                               0 
                               ⁢ 
                               Q 
                             
                             ) 
                           
                         
                         - 
                         
                           ε 
                           QAM 
                         
                       
                       
                         2 
                         ⁢ 
                         σ 
                       
                     
                     ⁢ 
                     
                       N 
                     
                   
                   ) 
                 
               
               . 
             
           
         
       
     
     The false alarm probability can be approximated by ignoring the weight distribution of the code employed and assume that the symbols in each encoded sequence are uniformly distributed over all constellation points. Then  χ   I =  χ   Q =0, and  y   I  and  y   Q  satisfy the distribution
 
 (0, 2σ/√{square root over (N)}).
 
Thus, the false alarm probability can be approximated by
 
     
       
         
           
             
               p 
               fa 
             
             ≅ 
             
               
                 Q 
                 ⁡ 
                 
                   ( 
                   
                     
                       
                         ε 
                         QAM 
                       
                       
                         2 
                         ⁢ 
                         σ 
                       
                     
                     ⁢ 
                     
                       N 
                     
                   
                   ) 
                 
               
               . 
             
           
         
       
     
     The encoding scheme for multiple special messages is a natural generalization of that for the binary case. For the binary case, for the coded sequence x i (1≦I≦N), the average of the coded symbols 
               x   _     =       1   /   N     ⁢       ∑     i   =   1     N     ⁢     x   i               
is larger than 0 for special messages and smaller than 0 for ordinary messages. The coded symbols for the ordinary and special messages dwell in the regions given by  χ   I +  χ   Q ≧0 and  χ   I +  χ   Q ≦0 respectively. Thus, the encoding scheme is as follows. For special messages, the codeword is flipped if  χ   I +  χ   Q &lt;0, and for ordinary messages, it is flipped if  χ   I +  χ   Q &gt;0.
 
     At the decoder, a first-stage detection of message type is made. A special message is detected if  y   I +  y   Q &gt;η QAM   s  and an ordinary message is detected if  y   I +  y   Q &lt;−η QAM   o  If the message type is not detected, then during the second stage detection the special and ordinary message decoders run in parallel, flip the codewords if necessary, and track the number of unsatisfied check nodes in iterative decoding. The message type detection scheme is similar to that for the case of binary input, i.e., if the fraction of unsatisfied check nodes for one code becomes very small then decoding of the other is terminated. 
     The above-described methods for coding and decoding using unequal error protection can be implemented on a computer using well-known computer processors, memory units, storage devices, computer software, and other components. A high-level block diagram of such a computer is illustrated in  FIG. 5 . Computer  500  contains a processor  510 , which controls the overall operation of the computer  500  by executing computer program instructions, which define such operations. The computer program instructions may be stored in a storage device  520 , or other computer readable medium (e.g., magnetic disk, CD ROM, etc.), and loaded into memory  530  when execution of the computer program instructions is desired. Thus, the method steps of  FIGS. 1 ,  2 ,  3 , and  4  can be defined by the computer program instructions stored in the memory  530  and/or storage  520  and controlled by the processor  510  executing the computer program instructions. For example, the computer program instructions can be implemented as computer executable code programmed by one skilled in the art to perform an algorithm defined by the method steps of  FIGS. 1 ,  2 ,  3 , and  4 . Accordingly, by executing the computer program instructions, the processor  510  executes an algorithm defined by the method steps of  FIGS. 1 ,  2 ,  3  and  4 . The computer  500  also includes one or more network interfaces  540  for communicating with other devices via a network. The computer  500  also includes input/output devices  550  that enable user interaction with the computer  500  (e.g., display, keyboard, mouse, speakers, buttons, etc.) One skilled in the art will recognize that an implementation of an actual computer could contain other components as well, and that  FIG. 5  is a high level representation of some of the components of such a computer for illustrative purposes. 
     The foregoing Detailed Description is to be understood as being in every respect illustrative and exemplary, but not restrictive, and the scope of the invention disclosed herein is not to be determined from the Detailed Description, but rather from the claims as interpreted according to the full breadth permitted by the patent laws. It is to be understood that the embodiments shown and described herein are only illustrative of the principles of the present invention and that various modifications may be implemented by those skilled in the art without departing from the scope and spirit of the invention. Those skilled in the art could implement various other feature combinations without departing from the scope and spirit of the invention. The various functional modules that are shown are for illustrative purposes only, and may be combined, rearranged and/or otherwise modified.