GB2411326A - Viterbi decoder with single wrong turn correction using path discriminant values - Google Patents

Viterbi decoder with single wrong turn correction using path discriminant values Download PDF

Info

Publication number
GB2411326A
GB2411326A GB0403734A GB0403734A GB2411326A GB 2411326 A GB2411326 A GB 2411326A GB 0403734 A GB0403734 A GB 0403734A GB 0403734 A GB0403734 A GB 0403734A GB 2411326 A GB2411326 A GB 2411326A
Authority
GB
United Kingdom
Prior art keywords
path
node
discriminant
decoder
sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB0403734A
Other versions
GB0403734D0 (en
GB2411326B (en
Inventor
Laolu Lijofi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to GB0403734A priority Critical patent/GB2411326B/en
Publication of GB0403734D0 publication Critical patent/GB0403734D0/en
Publication of GB2411326A publication Critical patent/GB2411326A/en
Application granted granted Critical
Publication of GB2411326B publication Critical patent/GB2411326B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4115Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors list output Viterbi decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0054Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

A Viterbi decoder computes and stores path discriminant values relating to the trellis nodes to enable application of single wrong turn corrections following detection of errors in a block or data resulting from the identification of the initial maximum likelihood path. Specifically: a sequence of symbols received at the decoder are decoded to produce a most likely path through the decoder; the decoded sequence produced from the most likely path is checked to see if it passes a quality check (e.g. using a cyclic redundancy check (CRC)); if the sequence fails the quality check, the best direct descendant of the most likely path is obtained by deviating from the maximum likelihood path at the node having the minimum path discriminant (the discriminant being indicative of the reliability of the path choice made at that node). The decoded sequence produced from the best direct descendant of the most likely path is then checked to see if it passes the quality check, and the process is repeated using the next L best direct descendant paths in turn until either a decoder sequence passes the quality check or all of the L descendant paths fail to produce a sequence passing the quality check.

Description

2411 326 Viterbi decoder with single wrong turn correction This invention
relates to digital communication systems and in particular it relates to maximum likelihood sequence or Viterbi decoders.
The Viterbi algorithm has general application in communication systems for equalization and convolutional decoding. Block coding such as cyclic redundancy code (CRC) may be used to detect the incidence of an error within a block (frame) of data at the receiver.
A frame of data output from a Viterbi decoder is checked for errors by means of the CRC and if no errors are detected then the frame of data is accepted. When errors are detected by the CRC check then various methods may be employed in attempting to reclaim the correct symbol sequence from the parameters stored in relation to the nodes of the Viterbi trellis. The parameters normally stored are path metric and branch metric.
One method is to supplement the most likely path (or maximum likelihood path) traced along the trellis of the Viterbi with a secondary path, a tertiary path et seq., all to be checked via CRC to find an error free sequence.
These so-called list Viterbi decoders provide improved performance but require a significant increase in processing.
The patent application EP 1 056 212 proposes a method for obtaining the performance of a list Viterbi decoder without incurring the usual processing penalty. The method proposed in EP 1 056 212 uses single wrong turn correction when a frame error is detected in respect of the decoding of the maximum likelihood path. In a further traceback, a time instance in the trellis, along the maximum likelihood path, is chosen arbitrarily at which the losing state is taken rather than the winning state (as was chosen for the maximum likelihood path). If this second decoding does not give rise to any errors then it is accepted as correct otherwise a wrong turn is assumed at a different time instance of the trellis in a further traceback, a losing state is again taken rather than the winning state at this time instance and subsequent error check of the frame is carried out. This process continues until a traceback yields a path for which no errors are detected.
This invention provides a Viterbi decoder in which additional data relating to the trellis nodes are computed and stored to enable application of single wrong turn corrections following detection of errors in a block of data resulting from the identification of the initial maximum likelihood path.
The additional data relating to the trellis nodes are the path discriminant (see below). This data can be computed and stored either: for every node at the time the initial data of the trellis is computed to determine the maximum likelihood path (see example 1 below); or for selected nodes/states identified after the maximum likelihood path has been determined (see
example 2 below).
A f rst application of single wrong turn correction in the preferred sequence is to correct the maximum likelihood path at the node for which the minimum path discriminant value is stored.
Subsequent applications of single wrong turn corrections in the preferred sequence are sequentially to correct the maximum likelihood path at the node associated with the lowest value of path discriminant not previously considered.
Some examples of the invention will now be described.
The wrong turn correction Viterbi decoder (WTC Viterbi) in these examples is for use in an adaptive multi rate GSM speech channel in the receiver of a portable wireless communications terminal.
In this first embodiment, Example 1, the WTC Viterbi decoder of this invention operates in a fashion similar to the standard Viterbi decoder. In addition to computing branch and path metrics of the standard maximum likelihood decoder, however, it computes the difference between metrics of the different paths arriving at a node. This difference which we shall term the 'path discriminant" ( PD) is a measure of the Euclidean distance in signal space between the paths. As a general rule, the greater the absolute value of the path discriminant at any node, the greater the distinction between the paths (arriving at that node) and thus the higher the probability that the path decisions leading to that node are correct.
The parameters normally stored in relation to each node are path metric and branch metric. In accordance with this invention the following parameters are stored in addition at the same time the path metric and branch metric are calculated and stored; the path discriminant between the paths leading to the node at every node (for each time instance and for each state).
Received frames of data are at first decoded in accordance with standard techniques whereby computation of branch and path metrics establish a maximum likelihood path across a trellis. The sequence of decoded bits is then checked for errors by means of a cyclic redundancy check (CRC) or some other error criterion such as estimated number of bit errors per frame.
If no errors are detected then the decoding is assumed to have been successful and the sequence of decoded bits is accepted.
When the error check indicates an error then the decoding is assumed to have been unsuccessful and triggers an iteration of the decoding process.
In the first iteration, traceback starts from the specified terminating node in accordance with standard Viterbi operation. However, at the node on the traceback path with the minimum path discriminant the (symbol/bit) decision made for the most likely path of the first decode is toggled (reversed). For example if a '1' was decoded previously then the decision is changed to a 'O'. This toggling leads to a change in the subsequent traceback path.
The sequence of decoded bits obtained from this first iteration is subjected to an error check and if no errors are detected then the decoding from the first iteration is assumed successful.
If the error check after the first iteration indicates errors then a second iteration is needed. In the second iteration, toggling the symbol/bit decision along the traceback path does not occur where PD is minimum but occurs where the PD is smallest compared to all PDs on the traceback path for the first iteration except the minimum PD. (i.e. smallest but one PD value).
If the error check after the second iteration indicates errors then a further attempt at decoding by means of a third iteration may proceed, which if unsuccessful, is followed by a fourth iteration et seq. The WTC is applied, for a third iteration at the node associated with the PD value smallest but two, for the fourth iteration the node associated with the PD value smallest but three et seq.
It has been found that a satisfactory balance of performance and processing is obtained for this embodiment by limiting the number of WTC's to two.
Therefore when two iterations fail to deliver an error free output the original traceback of the maximum likelihood path is accepted and the data block passed to the next stage of the receiver.
The overall increase in processing load associated with implementation of the WTC Viterbi decoder of this invention is not significant since most of the additional processing required is in the traceback functionality. There is, however, a small additional memory storage requirement because the path discriminant at every state (or node) and every time instance of the trellis must be stored for this example.
Alternatively, for Example 2, the path discriminant at each time instance is stored but only for the state (node) on the maximum likelihood traceback path. This requires the calculation of the path discriminant for each node on the maximum likelihood traceback path after this path has been determined.
This leads to a slight reduction in the required memory for a small increase in the required processing.
A further reduction in the memory requirements for implementing the WTC Viterbi decoder at the expense of a small increase in processing can be realised by the following implementation applied in conjunction with either of the above examples. In this implementation a memory is used to record the minimum PD so far encountered along the path leading to each state.
This memory is updated at every time instance but only the minimum PD need be retained, not the value at each time instance.
At each node when the minimum PD is calculated, the minimum PD along the path leading to the node is stored. This is a process involving comparison of the PD at the current node with the stored minimum PD for the paths leading to this node and updating of this minimum PD accordingly. The time instance in the trellis where the minimum PD is updated is also stored when the stored value is updated. In other words, there is updated at each time instance, for every node of interest, the minimum PD and associated time instance of occurrence in the trellis along the path leading to that node.
If this implementation is applied to the second example above, the additional storage requirement is then limited in a TCH/AFS7.95 channel for example to 128 words of memory for one iteration of this algorithm.
Increasing the number of iterations increases the memory needed by a linear factor (for example two iterations need 256 words, since at every node we maintain the two smallest PD values along the path leading to the node).
The time instance associated with the stored minimum PD at the terminating node indicates where the wrong-turn correction (or toggling) is to be performed. Toggling is then performed as described previously.
Viterbi decoding with single-wrong-turn correction is illustrated for the two examples with the reduced-memory operation implemented below.
Example 1, let
k= code constraint length B= the number of bits in a frame R=2(k-l) xprev = "R x 1" array containing minimum path difference values.
Yprev = "R x 1" array containing time instance (or stage) in the trellis where the minimum path difference values in xprev are obtained.
xcurr = "R x 1" array containing current minimum path difference values.
Ycrr = "R x 1" array containing time instance (or stage) in the trellis where the minimum path difference values in xcurr are obtained.
The operation ofthis method (in the simplest form) is described as follows: 1. Initialise all elements of xprev, Yprev, xcurr and Yc.,rr to infinity.
2. Let i = 0 be the 1 st stage of the trellis 3. Compute the Euclidean distance between the paths arriving at every node in the ith stage of the trellis.
. Let node 'j' be the direct ancestor of node 'k' (i.e. the node of the (i-1)th stage that lies on the maximum-likelihood path to node 'k' ofthe ith stage).
Compare Euclidean distance at node 'k' of the ith stage (Ek) with the jth element of Xprev i e Xprevi) If E k < Xprev(j)' Xcurr (k) = E k; Ycurr(k) = i; . Else Xcurr (k)= xprevll) Ycurr(k) = YprevO) 4. Repeat (3) for all nodes in the ith stage.
5. Replace xprev with xcurr Replace Ypre, with Ycurr 6. Increment i(i.e. i= i+1) 7. Return to (3) until whole trellis is built S. Perform traceback to decode frame.
9. Check (via CRC or their frame quality metrics) if there are any errors. If no error, go to (11). If errors exist, do the following lO.Let p be the terminating node where traceback starts and h=Yc,rrO.
Perform traceback as usual but when the hth stage is reached jump to the losing state (or toggle the bit decision in the original traceback) and continue traceback to get decoded frame.
1 l.The decoded frame is obtained.
(This illustrations only considers one iteration.)
Example 2
A simpler method (and equivalent) is described below: 1. lnitialise variables xcurr and Ycurr to infinity.
2. Build the trellis and perform traceback as usual. Let D bits be the array of decoded bits.
3. Check (via CRC or their frame quality metrics) if there are any errors. If no error, go to (9). If errors exist, do the following 4. Rebuild the trellis. Let i = 0 be the 1 st stage of the trellis 5. Compute the Euclidean distance between the paths arriving at the node on the maximum likelihood traceback path in the ith stage of the trellis. (i.e. compute Euclidean distance at only one node per time instance) . Let node 'j' be the direct ancestor of node 'k' (i.e. the node of the (i-1)th stage that lies on the maximum-likelihood path to node 'k' ofthe ith stage).
Compare Euclidean distance at node 'k' of the ith stage (Ek) with
X CIIIT
. If Ek < xcurr X CUrT E k; Y curr = i; 6. Increment i(i.e. i= i+l) 7. Return to (5) until whole trellis is built 8. Let h=ycurr. Perform traceback as usual but when the hth stage is reached jump to the losing state (or toggle the bit decision in the original traceback) and continue traceback to get decoded frame.
9. The decoded frame is obtained.
The method defined above only specifies one-iteration of the algorithm.
Suppose for example that NT iterations are needed, the algorithm is specified as follows: Let XNT = "NT X 1" array containing minimum path difference values for each iteration-stage.
YNT = "NT X 1" array containing time instance (or stage) in the trellis where the minimum path difference values in xNT are obtained.
1. Initialise variables xNT and ye to infinity.
2. Build the trellis and perform traceback as usual. Let Db,s be the array of decoded bits.
3. Check (via CRC or their frame quality metrics) if there are any errors. if no error, go to (9). Tf errors exist, do the following 4. Rebuild the trellis. Let i = 0 be the 1St stage of the trellis 5. Compute the Euclidean distance between the paths arriving at the node on the traceback path in the ith stage of the trellis. (i.e. compute Euclidean distance at only one node per stage) Let node 'j' be the direct ancestor of node 'k' (i.e. the node of the (i-1)th stage that lies on the maximum-likelihood path to node 'k' ofthe iti. stage).
Compare Euclidean distance at node 'k' of the iti. stage (Ek) with X Err . Tf Ek < XNT (N) for w = NT: N+1 X T (W) X (W- 1); yNT (w) = yNT (W 1); end X r (N) = E k; y T (N) i; 6. Increment i (i.e. i = i + 1) 7. Return to (5) until whole trellis is built 8. Let h=ycurr. Perform traceback as usual but when the hth stage is reached jump to the losing state (or toggle the bit decision in the original traceback) and continue traceback to get decoded frame.
9. The decoded frame is obtained.

Claims (9)

  1. Claims 1. A method of decoding a received sequence of symbols using a
    decoder comprising: a) decoding the received sequence of symbols to produce a most likely path through the decoder, b) checking whether the decoded sequence produced from the most likely path passes a quality check, c) if the sequence fails the quality check, obtaining the best direct descendant of the most likely path by deviating from the maximum likelihood path at the node having the minimum path discriminant, the discriminant being indicative of the reliability of the path choice made at that node, d) checking whether the decoded sequence produced from the best direct descendant of the most likely path passes the quality check, e) repeating step (d) using the next L best direct descendant paths in turn until either a decoder sequence passes the quality check or all of the L descendant paths fail to produce a sequence passing the quality check.
  2. 2. A method according to claim 1 in which each direct descendant of the most likely path is derived from a single wrong turn deviation from the most likely path.
  3. 3. A method according to claim 1 in which each next best direct descendant of the maximum path is derived by correcting the maximum likelihood path at the node associated with the lowest value of path discriminant not previously considered. 1&
  4. 4. A method as claimed in any of claims 1 to 3 including storing at least the minimum path discriminant so far encountered along the path leading to each state.
  5. S. A method as claimed in any preceding claim including storing in relation to each path node of the most likely path the path discriminant between the paths leading to the node.
  6. 6. A method as claimed in any proceeding claim including storing in relation to all nodes of the decoder the path discriminant between paths leading to the node.
  7. 7. A method as claimed in any preceding claim in which the decoder is a Viterbi decoder.
  8. 8. A method as claimed in any preceding claim in which the path discriminant is a measure of the Euclidean distance in signal space between the different paths arriving at a node.
  9. 9. A decoder capable of decoding a received sequence of symbols using the method claimed in any preceding claim.
GB0403734A 2004-02-19 2004-02-19 Viterbi decoder with single wrong turn correction Expired - Fee Related GB2411326B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB0403734A GB2411326B (en) 2004-02-19 2004-02-19 Viterbi decoder with single wrong turn correction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0403734A GB2411326B (en) 2004-02-19 2004-02-19 Viterbi decoder with single wrong turn correction

Publications (3)

Publication Number Publication Date
GB0403734D0 GB0403734D0 (en) 2004-03-24
GB2411326A true GB2411326A (en) 2005-08-24
GB2411326B GB2411326B (en) 2006-05-17

Family

ID=32040042

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0403734A Expired - Fee Related GB2411326B (en) 2004-02-19 2004-02-19 Viterbi decoder with single wrong turn correction

Country Status (1)

Country Link
GB (1) GB2411326B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5784392A (en) * 1995-06-26 1998-07-21 Nokia Mobile Phones Ltd. Viterbi decoder with l=2 best decoding paths
EP1056212A2 (en) * 1999-05-28 2000-11-29 Lucent Technologies Inc. Viterbi decoding using single-wrong-turn correction
GB2361855A (en) * 1999-07-21 2001-10-31 Mitsubishi Electric Corp Turbo-code decoding using a Soft Output Viterbi Algorithm (SOVA)

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5784392A (en) * 1995-06-26 1998-07-21 Nokia Mobile Phones Ltd. Viterbi decoder with l=2 best decoding paths
EP1056212A2 (en) * 1999-05-28 2000-11-29 Lucent Technologies Inc. Viterbi decoding using single-wrong-turn correction
GB2361855A (en) * 1999-07-21 2001-10-31 Mitsubishi Electric Corp Turbo-code decoding using a Soft Output Viterbi Algorithm (SOVA)

Also Published As

Publication number Publication date
GB0403734D0 (en) 2004-03-24
GB2411326B (en) 2006-05-17

Similar Documents

Publication Publication Date Title
US8423873B2 (en) Decoding techniques for correcting errors using soft information
US6108811A (en) Error-correcting decoder continuously adding flag signals to locations preceding a first location at which a difference between path metrics is lower than the threshold
US8370730B2 (en) Soft output viterbi detector with error event output
US20070220409A1 (en) Symbol-level soft output viterbi algorithm (sova) and a simplification on sova
US7480852B2 (en) Method and system for improving decoding efficiency in wireless receivers
AU2020221993B2 (en) Multi-mode channel coding with mode specific coloration sequences
US6378106B1 (en) Viterbi decoding using single-wrong-turn correction
US5684811A (en) Method and apparatus for decoding convolutionally encoded information
US20070033478A1 (en) System and method for blind transport format detection with cyclic redundancy check
US6058501A (en) Error detecting device for viterbi decoder
US20070153693A1 (en) Transport format detecting apparatus and method
US20070011594A1 (en) Application of a Meta-Viterbi algorithm for communication systems without intersymbol interference
WO2020165260A1 (en) Multi-mode channel coding with mode specific coloration sequences
US20030066021A1 (en) Process for decoding signals and system and computer program product therefore
US8483327B2 (en) Reverse Viterbi and forward serial list Viterbi decoding for FER
WO2004042990A1 (en) Format detection
EP0920138A2 (en) Method and system for decoding tailbiting convolution codes
JPH06334697A (en) Error detection method
CN110943745A (en) Polarization code BP decoding method and system for early stopping iteration output result
US7043678B2 (en) Method for identifying bad frames
US20050050433A1 (en) Method of decoding a data word
WO1995001008A1 (en) Bit error counting method and counter
JPH06284018A (en) Viterbi decoding method and error correcting and decoding device
GB2411326A (en) Viterbi decoder with single wrong turn correction using path discriminant values
JP3979266B2 (en) Blind rate detection device, decoding device, communication device, blind rate detection method and decoding method

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 20090219