Abstract:
An apparatus for and a method of signal demodulation which reduces a number of calculations required for demodulating an M-bit codeword which has been modulated from an N-bit codeword. Probability data for each bit of the M-bit codeword is tested to determine if the probability data indicates a high reliability of being either a one or a zero. Bits having the high reliability are compared with corresponding bits in each of a plurality of reference codewords and the codewords having bits which match the corresponding bits having the high reliability are used along with the probability data to calculate a probability of each bit of the N-bit codeword. As a number of bits having the high reliability increases, a number of calculations required to calculate the probability of each bit of the N-bit codeword decreases.

Description:
BACKGROUND OF THE INVENTION 
   This application claims the priority of Korean Patent Application No. 2002-31065, filed Jun. 3, 2002, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein by reference. 
   1. Field of the Invention 
   The present invention relates to an apparatus for and a method of signal demodulation, and more particularly, to an apparatus for and a method of signal demodulation of a run length limit (RLL) code. 
   2. Description of the Related Art 
   Generally, in an environment where there is inter symbol interference (ISI) of data, for example, in a high density optical recording medium, considering problems caused by the ISI phenomena, the RLL code is used to modulate data. 
     FIGS. 3A and 3B  show RLL encoding tables of a (1, 7) code.  FIG. 3A  shows a basic encoding table when a code having a code rate of ⅔ is used, and  FIG. 3B  shows a replacement table for a violation occurring when the basic encoding table of  FIG. 3A  is used. 
   The (1, 7) code is a code in which a minimum number of contiguous 0&#39;s between a 1 and a next 1 in a modulated signal is one and a maximum number of contiguous 0&#39;s is seven. The code rate of ⅔ indicates modulation of a 2-bit data word into a 3-bit codeword. 
   However, when the basic encoding table of  FIG. 3A  is used, a violation of the rule described above occurs. For example, when input data bits are 0000 according to the basic encoding table of  FIG. 3A , the encoded channel bits are 101101, and thus, 1 occurs continuously. In order to solve the above problem, the replacement table shown in  FIG. 3B  is used so that the encoding rule can be observed considering relations of input data with previous input data and next input data. Accordingly, in order to obtain a 2-bit data word through decoding, a 9-bit codeword is decoded. 
   In a conventional method for decoding an RLL code, a channel detector, for example a Viterbi decoder, receives a channel signal, detects codewords and outputs the detected codewords. An RLL decoding unit decodes the codewords into data words using an RLL decoding table. 
   Recently, however, concepts of a soft channel detector and a soft modulator have been introduced. The output of the Viterbi decoder described above is a codeword itself, and has a value of 1 or −1. The above method is referred to as a hard demodulation and another method is referred to as soft demodulation. In the soft demodulation, a soft channel detector receives a channel signal, and outputs data indicating a probability value of a codeword. That is, the data output by the soft demodulation method has an analog value, such as 0.8 or −0.8 instead of 1 or −1, and the analog value indicates a probability that the code value is 1 or −1. A soft demodulator receives data indicating the probability value of the codeword, and outputs data indicating the probability of a data word. Then, a decoder such as a turbo decoder finally decodes the data word. 
   A detailed description of soft modulation may be found in an article entitled “Near-optimum Decoding of Product Codes” (R.Pyndiah, IEEE Transactions on Communications, vol. 46, No. 8, pp1003-1010). Explanations of a soft channel detector are detailed in articles entitled “A Comparison of Optimal and Sub-optimal MAP Decoding Algorithms Operating in the Log Domain” (P. Robertson, E. Villebrun, and P. Hoeher, Communications, 1995, ICC &#39;95 Seattle, ‘Gateway to Globalization’, 1995 IEEE International Conference on, vol. 2, 1995 pp1009-1013 vol. 2) and “A Viterbi Algorithm with Soft Decision Outputs and Its Applications,” (J. Hagenauer and P. Hoeher, Proc. GLOBECOM, &#39;89, pp1680-1786, November 1989). An explanation of turbo decoding requiring soft modulation is detailed in an article entitled “Turbo Decoding with RLL Code for Optical Storage” (E. Yamade, ISOMO1). 
   Referring to  FIG. 4 , a process in which the soft demodulator described above receives R(n), which is data indicating the probability value of a codeword, and obtains a likelihood ratio (LR), which is a value indicating the probability of each bit forming a data word, will now be explained. 
   Here, an example in which the code rate is ⅔ and the RLL(1, 7) code is used will be explained.  FIG. 4  shows a decoding table of the RLL(1, 7) code. The first line shows data words with a 2-bit length, which are the results of decoding. The remaining lines show codewords represented in an octal notation, each codeword corresponding to a data word. For example, codeword 040 corresponds to a binary number 000 100 000. 
   First, in order to obtain an LR, APP(d=1) and APP(d=0) are obtained. APP(d=1) is a value indicating a probability that demodulated data is 1, and APP(d=0) is a value indicating a probability that demodulated data is 0. 
   APP(d=1) and APP(d=0) are obtained by equation 1: 
   
     
       
         
           
             
               
                 
                   APP 
                   ⁡ 
                   
                     ( 
                     
                       d 
                       = 
                       1 
                     
                     ) 
                   
                 
                 = 
                 
                   
                     ∑ 
                     
                       i 
                       = 
                       1 
                     
                     
                       s 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       1 
                     
                   
                   ⁢ 
                   
                     exp 
                     ⁡ 
                     
                       [ 
                       
                         
                           ∑ 
                           
                             l 
                             = 
                             1 
                           
                           L 
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           
                             ( 
                             
                               
                                 C 
                                 l 
                                 i 
                               
                               - 
                               
                                 R 
                                 l 
                               
                             
                             ) 
                           
                           2 
                         
                       
                       ] 
                     
                   
                 
               
             
             
               
                 ( 
                 1 
                 ) 
               
             
           
         
       
     
   
   In equation 1, since the code rate is ⅔, L is 9. R l  is a value indicating the probability value of a bit which is the l-th bit of 9 data bits respectively indicating probability values of 9 code bits forming one codeword that is input to the soft demodulator. C l   i  is a probability value of a bit which is the l-th bit of 9 code bits that form an i-th codeword among s1 codewords corresponding to a data word having 1 as the first bit. Referring to  FIG. 4 , since the number of codewords corresponding to a data word having 1 as the first bit is 40, s1 is 40. 
   
     
       
         
           
             
               
                 
                   APP 
                   ⁡ 
                   
                     ( 
                     
                       d 
                       = 
                       0 
                     
                     ) 
                   
                 
                 = 
                 
                   
                     ∑ 
                     
                       h 
                       = 
                       1 
                     
                     s2 
                   
                   ⁢ 
                   
                     exp 
                     ⁡ 
                     
                       [ 
                       
                         
                           ∑ 
                           
                             l 
                             = 
                             1 
                           
                           L 
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           
                             ( 
                             
                               
                                 C 
                                 l 
                                 h 
                               
                               - 
                               
                                 R 
                                 l 
                               
                             
                             ) 
                           
                           2 
                         
                       
                       ] 
                     
                   
                 
               
             
             
               
                 ( 
                 2 
                 ) 
               
             
           
         
       
     
   
   In equation 2, L is 9 and R l  is the same as in equation 1. C l   h  is a probability value of a bit which is the l-th bit of 9 code bits that form an h-th codeword among s2 codewords corresponding to a data word having 0 as the first bit. Referring to  FIG. 4 , since the number of codewords corresponding to a data word having 0 as the first bit is 40, s2 is 40. 
   After obtaining APP(d=1) and APP(d=0) according to equations 1 and 2, an LR is obtained by equation 3:
 
 LR=APP ( d =1)÷ APP ( d =0)  (3)
 
   Meanwhile, if computation of the exponent term is complicated in equations 1 and 2, the computation of the exponent part is not carried out and instead, APP(d=1) and APP(d=0) are obtained by equations 4 and 5 and an LR is obtained by equation 6: 
   
     
       
         
           
             
               
                 
                   APP 
                   ⁡ 
                   
                     ( 
                     
                       d 
                       = 
                       1 
                     
                     ) 
                   
                 
                 = 
                 
                   Max 
                   ⁡ 
                   
                     [ 
                     
                       
                         ( 
                         
                           
                             ∑ 
                             
                               l 
                               = 
                               1 
                             
                             L 
                           
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             
                               ( 
                               
                                 
                                   C 
                                   l 
                                   i 
                                 
                                 - 
                                 
                                   R 
                                   l 
                                 
                               
                               ) 
                             
                             2 
                           
                         
                         ) 
                       
                       , 
                       
                           
                       
                       ⁢ 
                       … 
                       ⁢ 
                       
                           
                       
                       , 
                       
                         ( 
                         
                           
                             ∑ 
                             
                               l 
                               = 
                               1 
                             
                             L 
                           
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             
                               ( 
                               
                                 
                                   C 
                                   l 
                                   
                                     s 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     1 
                                   
                                 
                                 - 
                                 
                                   R 
                                   l 
                                 
                               
                               ) 
                             
                             2 
                           
                         
                         ) 
                       
                     
                     ] 
                   
                 
               
             
             
               
                 ( 
                 4 
                 ) 
               
             
           
         
       
     
   
   In equation 4, R l  and C l   i  are the same as in equation 1, and L and s1 are 9 and 40, respectively, as in equation 1. That is, in equation 4, a maximum value among 40 values satisfying 
             ∑     l   =   1     9     ⁢           ⁢       (       c   l   i     -     R   l       )     2           
is determined as APP(d=1).
 
   
     
       
         
           
             
               
                 
                   APP 
                   ⁡ 
                   
                     ( 
                     
                       d 
                       = 
                       0 
                     
                     ) 
                   
                 
                 = 
                 
                   Max 
                   ⁡ 
                   
                     [ 
                     
                       
                         ( 
                         
                           
                             ∑ 
                             
                               l 
                               = 
                               1 
                             
                             L 
                           
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             
                               ( 
                               
                                 
                                   C 
                                   l 
                                   1 
                                 
                                 - 
                                 
                                   R 
                                   l 
                                 
                               
                               ) 
                             
                             2 
                           
                         
                         ) 
                       
                       , 
                       
                           
                       
                       ⁢ 
                       … 
                       ⁢ 
                       
                           
                       
                       , 
                       
                         ( 
                         
                           
                             ∑ 
                             
                               l 
                               = 
                               1 
                             
                             L 
                           
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             
                               ( 
                               
                                 
                                   C 
                                   l 
                                   
                                     s 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     2 
                                   
                                 
                                 - 
                                 
                                   R 
                                   l 
                                 
                               
                               ) 
                             
                             2 
                           
                         
                         ) 
                       
                     
                     ] 
                   
                 
               
             
             
               
                 ( 
                 5 
                 ) 
               
             
           
         
       
     
   
   In equation 5, R l  and C l   h  are the same as in equation 2, and L and s2 are 9 and 40, respectively, as in equation 2. That is, in equation 5, a maximum value among 40 values satisfying 
             ∑     l   =   1     9     ⁢           ⁢       (       C   l   h     -     R   l       )     2           
is determined as APP(d=0).
 
   After APP(d=1) and APP(d=0) are obtained according to equations 4 and 5, an LR is obtained by equation 6:
 
 LR=APP ( d =1)− APP ( d =0)  (6)
 
   However, where an LR is obtained by the method described above, LR should be calculated using all codewords corresponding to a 1-bit data word. Accordingly, the more complicated a code is, the longer the computation time and the greater the complexity. 
   SUMMARY OF THE INVENTION 
   The present invention provides a signal demodulation apparatus which, by using data having high reliability among data indicating probability values of a codeword, decreases a number of codewords used in calculating a value indicating the probability of a data word such that computation speed increases and complexity decreases. 
   The present invention also provides a method of signal demodulation by which, by using data having a high reliability among data indicating probability values of a codeword, a number of codewords used in calculation of a value indicating a probability of a data word is reduced such that computation speed increases and complexity decreases. 
   According to an aspect of the present invention, there is provided a signal demodulation apparatus which demodulates a code that is modulated from an N-bit data word into an M-bit codeword. The signal demodulation apparatus comprises a reliability detection unit which receives data comprising a plurality of probability data values indicating a probability value of the code, and after forming data of a predetermined length L as one unit, compares an absolute value of each of the probability data values forming the one unit with a predetermined reference value, and outputs location information and sign information of each probability data value having an absolute value greater than the predetermined reference value; a sign comparison unit which receives the location information and sign information of the probability data values greater than the predetermined reference value, and using a plurality of codewords stored in advance, compares a sign of a code of a codeword corresponding to the location of the data with the sign information, and outputs a plurality of codewords in which the signs are the same as the signs of the probability data values having an absolute value greater than the predetermined reference value; and a data word probability value calculation unit which receives the plurality of codewords output from the sign comparison unit, and data indicating the probability value of the code and calculates a value indicating a probability of a bit for each bit forming the data word. 
   The reliability detection unit comprises a reference value storage unit which stores the predetermined reference value; an input data storage unit which receives the data indicating the probability value of a code, and stores the data in the units of data of the predetermined length L; and a determining unit which receives each of the probability data values from the input data storage unit, receives the predetermined reference value from the reference value storage unit, performs the comparison, and outputs the location and sign information of the probability data values having an absolute value greater than the predetermined reference value. 
   The sign comparison unit comprises a code table storage unit which stores a codeword table in which a plurality of codewords corresponding to a data word are written; and a comparison unit which reads codewords from the code table storage unit, performs the sign comparison on each read codeword, and outputs the plurality of codewords in which the signs are the same as the signs of the probability data values having an absolute value greater than the predetermined reference value. 
   According to another aspect of the present invention, there is provided a method of demodulating a code that is modulated from an N-bit data word into an M-bit codeword. The method comprises forming data indicating probability values of the code into a unit having a predetermined length L; comparing each probability value in the unit with a predetermined reference value; obtaining location information and sign information of each probability value having an absolute value greater than the predetermined reference value; comparing the obtained location information and sign information with corresponding location and sign information of each of a plurality of predetermined codewords corresponding to a data word; outputting the codewords having location and sign information which matches the obtained location and sign information; and calculating a value indicating a probability of a bit for each bit forming the data word based on the output codewords and the probability values forming the unit of predetermined length L. 
   In an aspect of the invention, the method of demodulating the code further comprises storing the predetermined reference value; and storing the data indicating the probability values of the code in units of data of a predetermined length L. 
   In an aspect of the invention, the method of demodulating the code further comprises storing a codeword table including the plurality of codewords corresponding to the data word. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The above and/or other features and advantages of the present invention will become more apparent by describing in detail preferred embodiments thereof with reference to the attached drawings in which: 
       FIG. 1  is a block diagram of an embodiment of a signal demodulation apparatus according to the present invention; 
       FIG. 2  is a flowchart for explaining an embodiment of a signal demodulation method according to the present invention; 
       FIGS. 3A and 3B  are embodiments of RLL encoding tables; 
       FIG. 4  is an embodiment of a decoding table of an RLL (1, 7) code; and 
       FIG. 5  is a schematic diagram for explaining an example in which codewords having a same sign as input data having high reliability are determined in the signal demodulation apparatus and the method of signal demodulation according to the present invention. 
   

   DESCRIPTION OF THE PREFERRED EMBODIMENTS 
   The present invention will be explained with reference to an example in which a code rate is ⅔ and an RLL(1, 7) code is used. 
   Referring to  FIGS. 1 ,  4 , and  5 , a structure and operation of a signal demodulation apparatus according to the present invention will now be explained.  FIG. 1  is a block diagram of an embodiment of a signal demodulation apparatus according to the present invention. The signal demodulation apparatus comprises a reliability detection unit  110 , a sign comparison unit  120 , and a data word probability value calculation unit  130 . The reliability detection unit  110  comprises an input data storage unit  111 , a reference value storage unit  113 , and a determining unit  115 . The sign comparison unit  120  comprises a code table storage unit  121  and a comparison unit  123 . 
   The input data storage unit  111  receives data values R(n), which are an output of a soft channel detector, for example, a soft Viterbi decoder or a maximum a posteriori probability (MAP) decoder, each of the data values indicating a probability value of a code bit. Then, the input data storage unit  111  stores every 9 data values as one unit, e.g., R( 1 ), R( 2 ), . . . R( 9 ) are stored as one unit. In order to decode a 2-bit data word, a 9-bit codeword is needed, and in order to apply 9 data values to equations 1, 2, 4, and 5, the 9 data values are stored as one unit and are output to the determining unit  115 . 
   The reference value storage unit  113  stores a predetermined reference value and outputs the value to the determining unit  115 . The reference value may change according to an external input to the reference value storage unit  113 . 
   The determining unit  115  receives data R k  (k=1, 2, . . . , 9), which is formed by 9 probability value data values R 1 , R 2 , . . . , R g  as one unit, from the input data storage unit  111 , and receives a predetermined reference value S from the reference value storage unit  113 . Then, the determining unit  115  compares each ABS(R k ), that is, an absolute value of each data value in a data unit, with the predetermined reference value S, and outputs information on the location and sign of R k  values that are greater than the predetermined reference value, to the comparison unit  123 . Although 0.8 is used as the predetermined reference value in explaining the invention, the predetermined reference value may change. Accordingly, if the value of R k  is equal to or greater than 0.8, the probability that the data value is 1 is very high and therefore the data value has high reliability. If the value of R k  is equal to or less than −0.8, the probability that the data value is −1 is also very high and the data value also has high reliability. 
   The code table storage unit  121  stores a codeword table in which a plurality of codewords are written as shown in  FIG. 4 . 
   The comparison unit  123  receives information on the locations and signs of the plurality of R k  values that are greater than the predetermined reference value from the determining unit  115 . The comparison unit  123  first reads a plurality of codewords corresponding to a data word having 1 as the first bit, from the code table storage unit  121 . Referring to  FIG. 4 , the codewords corresponding to a data word having 1 as the first bit are codewords in the third and fourth columns, and the number of codewords in the third and fourth columns is 40. The comparison unit  123  compares the signs of bits of each codeword in the third and fourth columns with the received information on the signs of the plurality of R k  values that are greater than the predetermined reference value, and by selecting codewords where the respective signs are the same as the respective signs of the received R k  values, determines S 1 , which is a set of thus selected codewords. For purposes of determining whether the signs are the same, a bit of a codeword having a binary value of 1 is assumed to have an associated plus (+) sign and a bit of a codeword having a binary value of 0 is assumed to have a value of −1 and thus an associated minus (−) sign. For example, an octal value of 425, written in binary as 100 010 101 may be expressed as codeword bits having values of (1, −1, −1, −1, 1, −1, 1, −1, 1). 
   The comparison unit  123  reads a plurality of codewords corresponding to a data word having −1 as the first bit. Referring to  FIG. 4 , the codewords corresponding to a data word having −1 as the first bit are codewords in the first and second columns, and a number of codewords in the first and second columns is 40. Then, through sign comparison as described above, the comparison unit  123  determines S 2 , which is a set of a plurality of codewords selected when the signs are the same. 
     FIG. 5  is a diagram showing an example process for determining S 2 . Assuming that R k  is (−0.8, 0, 0, 0.8, 0, 0.7, 0, 0, −0.9) and the reference value is 0.8, the determining unit  115  outputs to the comparison unit  123  information on locations, that is, k is 1, 4 and 9, and information on signs, that is, −1, +1, and −1, respectively. The comparison unit  123  reads 40 codewords in the first and second columns of the table of  FIG. 4 , and performs sign comparison as shown in  FIG. 5 . For R k  values whose location is 1 having the sign of −1, the comparison unit  123  compares the signs of codewords corresponding to location 1 and removes codewords having a sign of +1. Since a code bit of a codeword that is 0 actually corresponds to −1, the code bit 0 is selected. For the locations k of 4 and 9, a corresponding sign comparison is performed and matching codewords, (for example, the first, second and fourth codewords, corresponding to octal 040, 050 and 052, indicated in  FIG. 5 ), are selected and output to the data word probability value calculation unit  130 . If all the codewords shown in  FIG. 4  are expanded to binary form, codewords  240 ,  250 ,  252 ,  042 ,  044 ,  242  and  244  of the Table of  FIG. 4  are also indicated as a match to the sample data set (−0.8, 0, 0, 0.8, 0, 0.7, 0, 0, −0.9). 
   The data word probability value calculation unit  130  receives S 1  from the comparison unit  123 , e.g., receives R( 1 ), R( 2 ), . . . , R( 9 ), which are the same data as the data input to and stored in the input data storage unit  111 , and then calculates APP(d=1) according to equation 1 or 4. The data word probability value calculation unit  130  receives S 2  from the comparison unit  123  and calculates APP(d=0) according to equation 2 or 5. Meanwhile, a value of s1 in equations 1 and 4 is, for example, 40, in the related art described above, but the number of elements of the set S 1  is less than 40 in the embodiment of the present invention. Also, the value of s2 in equations 2 and 5 is 40 in the related art described above, but a number of elements of the set S 2  is also less than 40 in the embodiment of the present invention. Accordingly, a number of computations needed to calculate equations 1 through 6 is reduced. The data word probability calculation unit  130  calculates APP(d=1) and APP(d=0) and then, using equation 3 or 6, calculates and outputs an LR. The LR, which is the output of the data word probability value calculation unit  130 , is input to a decoder such as a turbo decoder and a data word is finally decoded. 
   Referring to  FIGS. 1 and 2 , an embodiment of a method of signal demodulation according to the present invention will now be explained.  FIG. 2  is a flowchart for explaining an embodiment of a signal demodulation method according to the present invention. The method of signal demodulation may, for example, be implemented by the signal demodulation apparatus shown in  FIG. 1 . 
   Data R(n) that indicates a probability value of a code bit is input in operation  210 . After receiving R(n), L data bits R 1 , R 2 , . . . , R L , are stored as one unit in operation  220 . 
   An absolute value of each probability value, ABS(R k ), of data R k  (k=1, 2, . . . , L) that is formed by L probability values R 1 , R 2 , . . . , R L  as one unit is compared with the predetermined reference value S in operation  230 . 
   Location information j of R k  values that are greater than the predetermined reference value S and sign information r j  indicating a sign of R k , are determined in operation  240 . 
   Codewords corresponding to a data word having 1 as a first bit and codewords corresponding to a data word having −1 as the first bit are selected and read from a code storage table in in operation  250 . 
   Among codewords corresponding to a data word having 1 as the first bit and a data word having −1 as the first bit, the signs of bits of a codeword corresponding to the location information j of a plurality of R k  values that are greater than the predetermined reference value S are compared with sign information r j . By selecting a codeword when the signs are the same, S 1 , which is formed by codewords selected among a plurality of codewords corresponding to the data word having 1 as the first bit, and S 2 , which is formed by codewords selected among a plurality of codewords corresponding to the data word having −1 as the first bit are determined in operation  260 . 
   APP(d=1) is calculated according to equation 1 or 4, and APP(d=0) is calculated according to equation 2 or 5. The value of s1 in equations 1 and 4 becomes the number of elements of the set S 1 , and the value of s2 in equations 2 and 5 becomes the number of elements of the set S 2  in operation  270 . 
   An LR is calculated using equation 3 or 6 in operation  280 . 
   The present invention may be embodied in a computer readable code which may be embodied in a computer readable recording medium. The computer readable recording medium may include any kind of recording apparatus on which computer readable data may be stored. 
   The computer readable recording media includes storage media such as magnetic storage media (e.g., ROM&#39;s, floppy disks, hard disks, etc.), optically readable media (e.g., CD-ROMs, DVDs, etc.) and carrier waves (e.g., transmissions over the Internet). Also, the computer readable recording media may be allocated on computer systems which are connected through a network and which store and execute a computer readable code in a distributed mode. 
   As described above, by using data having high reliability among data indicating probability values of a codeword, the signal demodulation apparatus and method according to the present invention decrease a number of codewords used in calculation of a value indicating the probability of a data word such that a computation speed increases and complexity of the system decreases.