Abstract:
A system for detecting one or more localized burst errors in a receiving message comprised of a plurality of codewords. The system comprises a trellis code decoder for decoding a receiving message with a plurality of codewords and calculating one or more cumulative metrics of a maximum likelihood path and one or more alternative paths from the receiving message, an error detection code (EDC) decoder for detecting existence of one or more errors in the decoded receiving message received from the trellis decoder, and a localized burst error detector activated by the EDC decoder upon detecting the existence of one or more errors in the decoded receiving message to identify at least one corrupted codeword among the plurality of codewords using the one or more cumulative metrics of a maximum likelihood path and the one or more alternative paths, wherein the system requests the re-transmission of the corrupted codeword.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a continuation of U.S. application Ser. No. 11/743,629, filed May 2, 2007 (the entirety of which is incorporated herein by reference), which in turn claims priority to U.S. Provisional Patent Application No. 60/850,991, filed on Oct. 11, 2006. 
     
    
     BACKGROUND 
       [0002]    Trellis codes, such as convolutional codes, trellis coded modulation, and bit-interleaved coded modulations, have been widely used to improve the performance of a wireless communications system. A trellis code encoder inserts redundant bits to an original message, whereas a trellis code decoder utilizes the redundant bits to recover the original message that may be corrupted by channel noise. However, it is still possible that the trellis code decoder fails to recover the original message as a result of severe channel noise. In other words, whether the original message will be retrieved correctly is related to the severity of channel noise and the quantity of the redundant bits. 
         [0003]    Most wireless communications systems rely on the error detection code (EDC), such as the cyclic redundancy check (CRC), to ensure that a message decoded by a trellis code decoder is correct. The CRC coding method pads an original message with parity bits. After a trellis code decoder decodes the receiving message, an EDC decoder further examines whether there is a CRC error in the receiving message. The detection of a CRC error indicates that one or more bit errors exist in the decoded message. In a wireless communications system employing automatic repeat-request (ARQ), the receiver can request the sender to re-transmit the message. 
         [0004]    A message is divided into segments in some wireless communications systems. Each segment is encoded by a convolutional code and subsequently, a codeword is formed for each segment. The EDC is used to protect the original message before it is divided into segments. When an EDC decoder detects a CRC error in the receiving message, the receiver cannot distinguish the one or more codewords with an error from those without one. Therefore, the receiver requests the transmitter to re-transmit all the codewords of the message. 
         [0005]    In reality, the probability that there is an error in each of the codewords of a message is very small. It is inefficient for a wireless communications system to re-transmit all the codewords when only one or a few of them have errors. The efficiency of the system can be greatly improved by detecting and re-transmitting only the codeword or codewords that have an error. 
         [0006]    As such, what is desired is a method and system for identifying codewords with localized burst errors, re-transmitting only the corrupted codewords, rather than all the codewords comprising the whole message, and thereby improving the efficiency of a wireless communications network. 
       SUMMARY 
       [0007]    The present invention discloses a system for detecting one or more localized burst errors in a receiving message comprised of a plurality of codewords. The system comprises a trellis code decoder for decoding a receiving message with a plurality of codewords and calculating one or more cumulative metrics of a maximum likelihood path and one or more alternative paths from the receiving message, an error detection code (EDC) decoder for detecting existence of one or more errors in the decoded receiving message received from the trellis decoder, and a localized burst error detector activated by the EDC decoder upon detecting the existence of one or more errors in the decoded receiving message to identify at least one corrupted codeword among the plurality of the codewords using the one or more cumulative metrics of a maximum likelihood path and the one or more alternative paths, wherein the system requests the re-transmission of the corrupted codeword. 
         [0008]    The construction and method of operation of the invention, however, together with additional objects and advantages thereof, will be best understood from the following description of specific embodiments when read in connection with the accompanying drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWING 
         [0009]    The drawings accompanying and forming part of this specification are included to depict certain aspects of the invention. The invention may be better understood by reference to one or more of these drawings in combination with the description presented herein. It should be noted that the features illustrated in the drawings are not necessarily drawn to scale. 
           [0010]      FIG. 1  shows a decoding process of a trellis code decoder that employs the Viterbi Algorithm. 
           [0011]      FIG. 2  is a block diagram illustrating a system in accordance with an embodiment of the present invention. 
           [0012]      FIG. 3  shows an example that further illustrates determinations of localized burst errors in accordance with an embodiment of the present invention. 
       
    
    
     DESCRIPTION 
       [0013]    The following detailed description of the invention refers to the accompanying drawings. The description includes exemplary embodiments, not excluding other embodiments, and changes may be made to the embodiments described without departing from the spirit and scope of the invention. The following detailed description does not limit the invention. Instead, the scope of the invention is defined by the appended claims. 
         [0014]    One embodiment of the present invention determines localized burst errors in a message based on the cumulative metrics of a maximum likelihood (ML) path and all alternative paths, generated by the ML trellis code decoder employing the Viterbi algorithm. If a decoded message contains a cyclic redundancy check (CRC) error, the codewords that have burst errors are identified and re-transmitted. Since the retransmission only involves the codewords with burst errors, the efficiency of the network is not jeopardized. 
         [0015]    Assume that an original message is padded with J parity bits based on the error detection code (EDC). The EDC coded message is then divided into N segments. After a trellis code encoder encodes each of the segments, a codeword of a length L is formed. 
         [0016]    A trellis code decoder applies the Viterbi algorithm, which is based on the maximum likelihood (ML) algorithm, to a codeword after it is received. It can also apply the Viterbi algorithm to all N codewords after they are received. The Viterbi algorithm finds an ML path, i.e. the one with the smallest metric or Euclidian distance, in order to recover the original message. Subsequently the EDC decoder decodes the receiving message decoded by the trellis code decoder. The EDC decoder determines the accuracy of the receiving message by checking if a CRC error exists in the receiving message. In other words, the decoded message is deemed inaccurate if a CRC error is present. 
         [0017]      FIG. 1  shows a decoding process of a trellis code decoder that employs the Viterbi algorithm. A circle  110  represents one of the possible states of a trellis code decoder at time instance t i . There are eight states in the present example. After the decoding process is complete, the Viterbi algorithm finds an ML path  120  from time instance t 1  to time instance t 12 , shown by a solid line. Moreover, segments  130  and  132  of alternative paths are identified and shown by dash lines. 
         [0018]    An alternative path is a path that follows the ML path of the decoded message for a period of time, diverges from it at time instance i, and merges with it at time instance j, where i&lt;j. In  FIG. 1 , the segment  130  of an alternative path from t 1  to t 2  joins the ML path  120  at t 2 . In addition, the segment  132  of another alternative path from t 2  to t 3 , joins the ML path  120  at t 3 . The trellis code decoder computes the cumulative metrics of the ML path  120  and all the alternative paths. 
         [0019]    A symbol Δ k  represents the absolute difference between cumulative metrics of the ML path and an alternative path at time instance k. All the Δ k , each of which corresponds one alternative path, are stored in a list L. The elements in the list L are sorted in an ascending order, and a predetermined number of elements, namely Δ i , are selected from the beginning of the list to form an ordered list {tilde over (L)}, where Δ {tilde over (1)} &lt;Δ {tilde over (2)} &lt; . . . &lt;Δ {tilde over (M)} . 
         [0020]    After the receiving message is decoded by the trellis code decoder, it is decoded by the EDC decoder. If there is a CRC error in the decoded receiving message, the localized burst error detector identifies one or more codewords with the localized burst errors based on the ordered list {tilde over (L)}. 
         [0021]    The concentration of errors in a receiving message is determined by the detection function of a localized burst error detector. The detection function identifies the localized burst errors based on the absolute differences between cumulative metrics of the ML path and alternative paths. 
         [0022]    A symbol Δ j  denotes the absolute difference between cumulative metrics of the ML path of the message and an alternative path of the message at time instance j. The cumulative metric of an alternative path of the message is denoted as M ML +Δ j , where M ML  is the cumulative metric of the ML path of the message. 
         [0023]    Let min( . . . ) be a function that identifies the smallest Δ j  from the list L and Δ min =min k (Δ k ). The alternative path with the smallest cumulative metric, denoted as M ML +Δ min , is identified as the alternative path that has localized burst errors at one or more time instances adjacent to time instance k. 
         [0024]      FIG. 2  is a block diagram illustrating a system  200  in accordance with an embodiment of the present invention. The system  200  is a component in the receiver chain of a wireless receiver. An input receiving bit stream  202  is sent to a trellis code decoder  210  employing the Viterbi algorithm. The trellis code decoder  210  calculates the metrics of an ML path and alternative paths of a receiving message, and the metrics are stored in a memory module  220 . A decoded message  204  is sent to an EDC decoder  230 . If the EDC decoder  230  does not detect any CRC error, the message  206  is sent to the remaining processing unit of the receiver chain. 
         [0025]    If the EDC decoder  230  detects a CRC error, a signal  208  is sent to a localized burst error detector  240 , which has a detection function that finds the localized burst errors and identifies codewords with the highest concentration of localized burst errors. The localized burst error detector  240  performs a series of operations. First, it retrieves the metrics of an ML path and alternative paths of the receiving message from the memory module and generates an ordered list {tilde over (L)}. Second, it uses the information in the ordered list {tilde over (L)} to identify one or more codewords with localized burst errors. Last, it sends the information about the one or more codewords with localized burst errors to the Automatic Repeat and Request module to request the retransmission of the one or more codewords that are corrupted in the previous transmission. 
         [0026]    One embodiment of the localized burst error detector  240  in  FIG. 2  employs a majority vote algorithm. This algorithm is most suitable for a network that is less tolerant of retransmission delay but permits a large number of retransmissions. The embodiment is based on hard decision to detect one or more codewords with localized burst errors. 
         [0027]    The localized burst error detector  240  employing the majority vote algorithm computes a total number of elements in the list {tilde over (L)} corresponding to a codeword for all codewords. The codeword that has the most elements in the ordered list {tilde over (L)} is identified as one with localized burst errors. If multiple codewords have the same number of elements in the ordered list {tilde over (L)}, they all are considered as codewords with localized burst errors. 
         [0028]      FIG. 3  is an example that further illustrates determinations of localized burst errors in accordance with one embodiment of the present invention. The number of elements in an ordered list {tilde over (L)} is denoted as M.  FIG. 3  shows a decoding process of a message comprising codewords  310 ,  320  and  330 . In addition to an ML path  302 , there are 4 alternative paths in the example. The codeword  310  has three alternative paths  312 ,  314 , and  316  in the ordered list {tilde over (L)} while the codeword  320  has one alternative path  318  in the ordered list {tilde over (L)}. There is no alternative path for the codeword  330 . If the receiving message contains a CRC error, it is most likely that localized burst errors occur in the codeword  310  and it is almost impossible that errors occur in the codeword  330 . 
         [0029]    One embodiment of the localized burst error detector  240  employs an algorithm using soft information to assign a weight to each element in the ordered list {tilde over (L)} and summing the weighted values of the elements in the ordered list {tilde over (L)} corresponding to all the codewords. The codeword with the largest value is identified as one with localized burst errors. 
         [0030]    A weight assigned to each element in the ordered list {tilde over (L)} can be obtained by the following exemplary probability algorithm. The localized burst error detector  240  calculates a value Q (Q=SNR −Δ     j   ) for each element in the list {tilde over (L)}, where SNR is the signal to noise ratio of a wireless communication channel and Δ j  is the absolute difference between cumulative metrics of the ML path of the message and an alternative path of the message at time instance j. The value of Q is proportional to the probability of errors. 
         [0031]    The localized burst error detector  240  employing a probability algorithm described above estimates the probability of errors for each codeword by taking into consideration all the information pertaining to the codeword. For instance, the Qs of all the codewords are summed and the codeword with the highest Q is regarded as the one with localized burst errors. 
         [0032]    The method disclosed in the present invention is applicable to trellis code termination using a zero-padding method or a tail-biting method. If a trellis code decoder decodes a codeword with tail-biting termination, the ML path is not identified in its original order. Instead, the front portion of the ML path is identified only after the rest of the ML path is constructed. All the paths, including the ML path and alternative paths, converge at the same state, which is the termination point. This observation does not affect the method disclosed in the present invention because the construction of an ordered list {tilde over (L)} does not depend on how the ML path is constructed. 
         [0033]    The method disclosed in the present invention is also applicable to decoders that perform sliding-window decoding or non-sliding window decoding. An ordered list {tilde over (L)} can be constructed as long as the ML path of a message is identified. The ML path is determined either by a single trace-back method or a multiple partial trace-back method. 
         [0034]    The above illustration provides many different embodiments or embodiments for implementing different features of the invention. Specific embodiments of components and processes are described to help clarify the invention. These are, of course, merely embodiments and are not intended to limit the invention from that described in the claims. 
         [0035]    Although the invention is illustrated and described herein as embodied in one or more specific examples, it is nevertheless not intended to be limited to the details shown, since various modifications and structural changes may be made therein without departing from the spirit of the invention and within the scope and range of equivalents of the claims. Accordingly, it is appropriate that the appended claims be construed broadly and in a manner consistent with the scope of the invention, as set forth in the following claims.