WO1997013327A1 - Viterbi co-processor and method of operation therefor - Google Patents
Viterbi co-processor and method of operation therefor Download PDFInfo
- Publication number
- WO1997013327A1 WO1997013327A1 PCT/EP1996/004160 EP9604160W WO9713327A1 WO 1997013327 A1 WO1997013327 A1 WO 1997013327A1 EP 9604160 W EP9604160 W EP 9604160W WO 9713327 A1 WO9713327 A1 WO 9713327A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- path
- metric
- viterbi
- state
- survivor path
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0054—Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4115—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors list output Viterbi decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4138—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions
- H03M13/4146—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions soft-output Viterbi decoding according to Battail and Hagenauer in which the soft-output is determined using path metric differences along the maximum-likelihood path, i.e. "SOVA" decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4138—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions
- H03M13/4146—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions soft-output Viterbi decoding according to Battail and Hagenauer in which the soft-output is determined using path metric differences along the maximum-likelihood path, i.e. "SOVA" decoding
- H03M13/4153—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions soft-output Viterbi decoding according to Battail and Hagenauer in which the soft-output is determined using path metric differences along the maximum-likelihood path, i.e. "SOVA" decoding two-step SOVA decoding, i.e. the soft-output is determined by a second traceback operation after the determination of the hard decision like in the Berrou decoder
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4161—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
- H03M13/4169—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
- H03M13/6505—Memory efficient implementations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0052—Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
- H04L1/0053—Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables specially adapted for power saving
Definitions
- This invention relates, in general, to a Viterbi co-processor, and is particularly, but not exclusively, applicable to Viterbi co-processor operation, such as the implementation of calculations for minimum metric-distance likelihood searches required for Window Error Detection (WED).
- WED Window Error Detection
- FEC forward error correction
- Viterbi co-processors already exist that can calculate required L-values for the purposes of soft-decision decoding, although some are limited in this respect to a "soft-output" mode (usually associated with Maximum Likelihood Sequence Estimation (MSLE)) and are therefore not enabled for convolutional decoding, as required in multi-mode machines.
- MSLE Maximum Likelihood Sequence Estimation
- an output sequence is determined based upon the most likely path through a logical trellis of states consisting of logical "0"s and logical "l"s that are distributed over time.
- a measurement ofthe most likely bit sequence for the signal is made by making distance measurements ("branch metric calculations") between received data bits and hypothesised data bits.
- the L-values provide a measurement of an absolute distance between two alternative branch metrics that converge to a decision point in the Viterbi state trellis along the survivor path.
- these convergence points present an opportunity to discard, at these junctures, all paths except the most likely.
- the path offering the smallest distance i.e. the largest branch metric
- the lowest L-value (LMIN) for the survivor path is used as an index to an array of threshold values, with a received speech (or data) frame marked bad and rejected if LMIN is lower than a corresponding threshold.
- the likelihood values can be used to provide "soft" output decisions for each bit input into the Viterbi algorithm.
- an apphcation for the Likelihood values is the so-called Soft Output Viterbi Algorithm
- SOVA that uses the L-values to iterate the survivor path decisions until convergence occurs on a final optimum path.
- the L-values may be used to facilitate a reduced complexity (non-iterative) SOVA to provide a confidence measure of a whole (or portion) of the speech frame.
- An example of this form of reduced complexity SOVA arises in the Window Error Detection algorithm used in GSM half-rate coding.
- the WED algorithm associated with the Viterbi decoding algorithm used in decoding convolutional code applied to half-rate speech channels
- the quality assessment is used to determine subsequent acceptance or rejection (erasure) of the decoded speech (or data) frame.
- bits 73 to 97 are bits 73 to 97 (in combination, the so-called class la bits and the three (3) parity bits). These bits are important in the sense that they convey the most essential information about the speech samples contained in the transmitted information frame.
- the WED function need only be apphed to the most important bits to determine the reliability ofthe transmission of these bits. Indeed, the WED algorithm utilises L-values (produced as a by ⁇ product of the Viterbi branch metric calculation).
- Viterbi decoders are unable to provide LMIN values directly, and instead provide L-values that require further processing intervention (and hence greater data processing power and electrical power consumption) to calculate LMIN- Additionally, the WED algorithm actually requires a moving average of LMIN values to be stored in order to generate quality threshold information.
- present (Viterbi) co-processor design is unable to cope with this additional requirement, so yet more post- Viterbi- stage processing (which clearly effects efficiency in implementing the WED function) must be performed off-line by a central processor.
- the present methodology not only results in the performance of many unnecessary L-value calculations (for all bits output from the trellis) and increases the complexity ofthe Viterbi decoding (and WED function) process, but also requires significant control circuitry and substantial memory storage facilities in the Viterbi decoder (typically implemented as a DSP on a semiconductor chip).
- prior art methods are less efficient in terms of throughput (i.e. operations performed per second) and power consumption, and incur greater cost as a result of requiring the use ofhigh frequency devices.
- a method of calculating a metric-difference value of a survivor path for an encoded frame provided to a Viterbi decoder arranged to perform a decoding process on the encoded frame comprising: processor means for controlling the decoding process; a Viterbi state trellis responsive to the encoded frame and having a plurality of branches each having a plurahty of logic states; and a memory, responsive to the processor means, for storing data generated during the decoding process and for storing an indication of a particular branch in the Viterbi trellis from which the metric-difference value is to be calculated; the method comprising the steps of: a) during a first pass ofthe decoding process, calculating path metrics for the encoded frame for a plurality of paths through the Viterbi state trellis, such that each of the plurality of paths comprises a logic state in each of said pluraht
- the minimum metric-difference value is stored in the memory and subsequently compared against newly calculated minimum metric-difference values for the survivor path in subsequent branches, such that only a numerically smallest value is retained in memory.
- this reduces the number of memory locations required to store calculated metric-difference values.
- the step of determining is achieved by performing a trace-back of the survivor path using at least some of the associations stored in memory during the first pass, wherein a comparison of relative sizes between possible alternative associations for the survivor path in a branch determines the survivor path.
- the association indicates a relative directional displacement from a preceding logic state ofthe survivor path in a preceding branch of the Viterbi state trellis, and the step of dete ⁇ nining is achieved by performing a trace-back of the survivor path using the relative directional displacement between logic states in at least some adjacent branches along the survivor path.
- a Viterbi co-processor arranged to perform a decoding process on an encoded frame
- the Viterbi co-processor comprising: processor means for controlling the decoding process; a Viterbi state trellis responsive to the encoded frame and having a plurality of branches each having a plurality of logic states; and a memory, responsive to the processor means, for storing data generated during the decoding process and for storing an indication of a particular branch in the Viterbi trellis from which the metric-difference value is to be calculated; the processor means further comprising: means for calculating path metrics for the encoded frame for a plurality of paths through the Viterbi state trellis during a first pass ofthe decoding process, wherein each of the plurality of paths comprises a logic state in each of said plurality of branches; means for generating and storing in the memory an association between the logic state and a corresponding path metric; means, response to the indication, for associating each
- FIG. 1 is a representation of a prior art convolutional coder.
- FIG. 2 shows a prior art Viterbi state trellis containing a multitude of possible paths.
- FIG. 3 illustrates an association of likelihood (L-) values with logic states on the Viterbi state trellis of FIG. 2.
- FIG. 4 is a prior art memory block used in association with the trellis of FIG. 2 and the mechanism of FIG. 3.
- FIG. 5 is a block diagram of a Viterbi decoder according to the present invention.
- FIG. 6 is a memory block used by the Viterbi decoder of FIG. 5 for storing L-values in accordance with a first preferred operating mechanism of present invention.
- FIG. 7 illustrates tapping and storage of state values from a Viterbi state trellis in accordance with an alternate operating mechanism ofthe present invention.
- FIG. 8 illustrates a memory block utilised by the Viterbi decoder of FIG. 5.
- FIG. 9 shows a memory location for storage of an absolute LMIN value for a Viterbi algorithm in accordance with the alternate operating mechanism of FIG. 7.
- FIG. 1 there is shown a representation of a prior art convolutional coder 10 that is used to encode (prior to transmission) information bits of an input signal 12. More particularly, input bits are shifted on a bit-by-bit basis into register (memory) elements 14 and 16, at which point the register elements 14 and 16 are selectively tapped and logically combined (usually with and input bit). In the case of convolutional coding, logical combination typically takes the form of an exclusive-OR (XOR) function. With particular regard to FIG. 1, register element 16 is tapped and XORed in logic gate 18 with input bit 20. Also, register elements 16 is tapped and XORed in logic gate 22 with input bit 20 and the contents of register element 14.
- XOR exclusive-OR
- Logic gates 18 and 22 provide (at outputs 24 and 26, respectively) convolutionally encoded output data bits 28 and 30.
- the convolutional coder 10 of FIG. 1 is therefore said to have a constraint length of three (3), indicating the total number of bits ofthe input signal 12 used in the encoding operation, and a rate of 1/2, i.e. that every input bit produces two (2) output bits.
- FIG. 2 shows a prior art Viterbi state trellis 50 (containing a multitude of possible paths 52-56) that is arranged to decode a received convolutionally encoded signal 58.
- Each path 52-56 represents a possible logic transition between states with respect to time. Therefore, most trellis points 59-66 in the Viterbi trellis 50 potentially provide a point of convergence.
- the thickened line 57 represents a survivor path having an output ultimately selected at trellis point 64.
- the illustrated Viterbi state trellis 50 shows a four-state code by way of example, although the numbers of states may be varied according to requirements, e.g.
- Points 64 and 66 represent possible survivor paths through the trellis and can therefore be loosely considered as outputs. Again, as will be understood, only a relatively few states and paths have been specifically identified for the sake of clarity, although many states and paths exist within the Viterbi trellis 50.
- FIG. 3 A mechanism for calculating hkeUhood (L-) values on the Viterbi state trellis of FIG. 2, is shown in FIG. 3. More particularly, logic states M and M+2 V 1 (hereinafter referred to by reference numerals 70 and 72, respectively) have calculated path (or survivor) metrics PA and P ⁇ associated respectively therewith and stored, respectively, in memory elements 76 and 78. In the particular instance of FIG. 3, logic states 70 and 72 converge to logic state 2M (hereinafter referred to by reference numeral 74) via branch (B) metrics 80 and 82 (or BA and B ⁇ ), respectively. Therefore, logic state 74 also has a calculated path metric PN associated therewith that is stored in memory element 84.
- logic state 74 also has a calculated path metric PN associated therewith that is stored in memory element 84.
- logic state 74 has a L-value (LN) associated therewith and stored in memory element 86.
- LN L-value
- the memory elements used to store the path metrics will be located in a memory block of the Viterbi decoder.
- the values of the path (survivor) metric and the L-value are calculated by the following equations:
- FIG. 4 is a prior art memory block 90 used in association with the Viterbi state trellis of FIG. 2, and the mechanism for calculating path metrics and likelihood values of FIG. 3. Specifically, movement through the Viterbi trellis of FIG. 2 can also be considered as a transition between columns (or
- branches containing a plurality of logic states, with each logic state in each branch being located on a possible path through the Viterbi trellis.
- each L-value for each state in the trellis must also be stored (in addition to the retention in memory ofthe path metrics associated with each path).
- the memory block 90 contains a vast array of storage elements 91-93 (typically indexed in some identifying manner, such as by way of state 95 and column/branch position 97).
- the Viterbi decoder 100 has signal processing capabilities and comprises a Viterbi trelhs/microcontroller portion 101 and a memory portion 102 that is responsive to the Viterbi trellis/microcontroller portion 101 and which is used for data storage.
- the Viterbi trelhs/microcontroller portion 101 (as typified by FIG. 2) is responsible for the operational control of the decoding process and data manipulation.
- an encoded input signal 104 received by the Viterbi decoder is decoded by the Viterbi trelhs/microcontroller portion 101 to produce a decoded output 106 indicative of survivor paths through the trellis.
- the memory portion 102 contains registers for storing information generated by the microcontroller portion 101 during the decoding process. More particularly, the memory portion 102 contains a data register 110 for storing and indexing data, e.g. recording path metrics, L-values and related information generated upon traversing the trellis.
- the memory portion 102 additionally includes a window register 108 used to define a window of N branches identified by a start-column (and optionally a finish-column).
- the window register 108 identifies a branch in the trellis at which to start metric- difference (L-) value calculations (e.g. start at "column x") and potentially a branch in the trellis at which to suspend/terminate such calculations (e.g. stop at "column x+5"). Furthermore, the N branches of the window represent the portion of the speech/data frame ofthe Viterbi state trellis that is subject to the WED function. In the absence of a finish-column, the metric-difference value calculations will commence at the start-column and continue throughout the subsequent branches (or columns) ofthe trellis.
- the data register 110 may also comprise a path memory 111 for storing mapping bits (the function of which is specific to an alternate embodiment of the present invention to be described subsequently).
- the data register 110 stores only a minimum L-value (e.g. LMIN ) f° r eacn indexed path route 112 (e.g. path "A"). More particularly, the minimum L-value is the numerically smallest L-value for each of the survivor paths at the current branch in the trellis.
- LMIN minimum L-value
- L-values are stored in the LMIN register 110 by the Viterbi trellis microcontroller portion 101 through a "minimum wave method".
- Metric-difference (L-value) calculations commence (as defined by the start-column) at the start of the window, which start point may be at the beginning ofthe frame or at some later point. Then, for every branch in the window, the L-values are calculated for each decision point (and hence each possible path), and then compared against a L-value stored previously for each path. Only the lowest numeric L-value for each particular path (e.g.
- LMIN ⁇ is stored in the LMIN register 110, which process may therefore involve the over- writing (substitution) of older but higher numeric L-values.
- a convergence point such as logic state 74
- two path metrics and hence two L-values
- a programmable register arrangement of the first preferred operating mechanism provides greater flexibility in decoding and allows adaptation of Viterbi decoders for future changes in coding algorithm, e.g. the so-called enhanced full-rate coding algorithms. Furthermore, as will be appreciated, by defining a window of interest in the Viterbi trellis, fewer calculation are required and a resultant power saving in a DSP therefore achieved.
- the survivor path through a Viterbi trellis can be identified independently of calculated L-values for the survivor path.
- WED in a Viterbi decoder is operated through a "two-pass method".
- the Viterbi algorithm is first executed (pass #1) with the calculation and storage of L-values suppressed/suspended.
- FIG. 7 illustrates tapping and storage of state values from a Viterbi state trellis in accordance with the alternate operating mechanism of the present invention.
- a portion 120 ofthe Viterbi state trellis has been illustrated, which portion 120 comprises a plurality of logic states 122-134 distributed amongst a plurality of branches (col x, col x+1, col x+2,...col x+5).
- a particular branch (in this case col x+2) has been identified as the start-column, with the particular logic states 128-134 contained therein tapped to provide respective trellis data words 138-144, comprising the path metrics for each state in branch x+2, directly associated with the start ofthe window.
- tapping of the logic states 128-134 in the Viterbi state trellis in general, may be implemented by hard- wire taps or through a "state download" of logic state values from the branches, for example.
- a state download offers greater flexibility with respect to window definition and is the preferred method.
- the data trelhs words 138-144 (and their respective associations with the logic states in the branch of the start of the window) are stored in the data register 110.
- the path metrics calculated during pass #1 of a frame through the Viterbi state trelhs need not be stored, since some will be discarded or over-written and others may prove superfluous to the decoding algorithm.
- the data register need only store a most recently calculated path metric for each path through the trellis together with an indication (stored in path memory 111) of which particular one of the two possible logic states in the preceding branch provided the route of the path.
- the nature of the path memory 111 will now be described in relation to FIG. 8.
- Paths 112 through the Viterbi state trellis are indexed against branches 150 (such as those identified as col x, col x+1, col x+2 and survivor path) o the trellis.
- Logical values 152-156 i.e. logical "0"s or logical "l”s (referred to as "pointers"), are associated with each path and branch in the path memory 111.
- a logical "0" or a logical "1” is attributed against a particular path and branch dependent upon a perceived direction from which the path emanates.
- attribution of a logical "0” could indicate the movement from logic state "00" ofthe Viterbi state trellis 50 to logic state "01”, rather than from logic state "10” to "01”, whereas attribution of a logical "1" in the path memory would indicate the opposite.
- attribution of pointers in the path memory 111 can also be considered as indicating the relative movement (directional displacement) of the path based on absolute values of the preceding logic states as compared against a present logic state for a state in a branch.
- any appropriate form of logical attribution (pointer) indicating the relative nature ofthe higher or lower logic state in the preceding branch can be utilised in the path memory 111.
- the path that terminates at a given logical state e.g. the logical "0" state in the Viterbi state trellis (as is the case for GSM channel decoding).
- the desired survivor path is "traced - back" to its corresponding state in the start-column (i.e. the first branch) of the identified window.
- Trace-back to the corresponding state in the first branch may be achieved through the realisation that the state having the smallest distance (largest path metric) of the two possible path metrics in an immediately preceding branch of the trellis represents the actual route of the desired survivor path (although this requires storage, during pass #1, of all path metrics for the trellis).
- trace-back may be achieved using the pointers stored in path memory 111 and the path metric of the survivor path (bearing in mind that the path metric ofthe survivor path is mathematically derived from previously calculated path metrics), i.e. trace- back is achieved by simply moving to (selecting) the appropriate logic state (of the two possible logical states) in the preceding branch in response to the direction indicated by the logical value ofthe pointer.
- the trellis data words 138-144 recorded and associated with the first branch ofthe window during pass #1 are nominally re-loaded into the first branch ofthe window, and a portion ofthe Viterbi algorithm is executed a second time (pass #2) for the same frame (concentrating on the desired survivor path).
- pass #2 metric-difference (L-value) calculations are performed for the desired survivor path only, and only a single absolute lowest LMINABS va l ue f° r the subsequent branches of the trellis is recorded and stored (which potentially results in a previous LMINABS va e being discarded and therefore over-written).
- L-value metric-difference
- path metrics for the desired survivor path because these have already been calculated during pass #1 and have been previously stored in memory, although a numeric comparison between the two possible path metric values would need to be made to determine the actual path. As such, the values of the path metrics subsequently encountered on the desired survivor path are retrieved directly. However, if the path memory 111 is utilised to store pointers and only the survivor path metric recorded, then path metric calculations will be required, which path metric calculations will necessarily commence at the first branch ofthe window identified by window register 108.
- FIG. 9 shows a memory location (or element) 170 for storage of an absolute LMINABS v£u ⁇ ue f° r a Viterbi algorithm in accordance with the alternate operating mechanism of FIG. 7, which memory location 170 may be located in the data register 110.
- Implementation of the alternate embodiment provides substantial benefits and advantages with respect to window error detection and Viterbi decoding. Particularly, substantial memory storage space is saved in terms of both storage of path metric values and particularly L-values, since only one relatively small register is required to store the single LME ⁇ ABS- Additionally, the alternate operating method substantially reduces the number of calculations performed by the DSP (Viterbi decoder), and hence a substantial reduction in power consumption ofthe DSP results. Indeed, when employing the two-pass method for the WED function, there is an order of magnitude reduction in the number of calculation required, and an estimated power saving of ⁇ 70% for a GSM-type Viterbi half-rate code.
- the rate (and efficiency) ofthe Viterbi decoding process is increased substantially which therefore allows Viterbi decoders to be implemented on substantially lower frequency sihcon devices (or the like). Furthermore, having alleviated the requirement for high frequency devices, a substantial cost saving and higher manufacturing productivity results.
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
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP96933367A EP0855107A1 (en) | 1995-09-30 | 1996-09-24 | Viterbi co-processor and method of operation therefor |
JP9513937A JPH11513544A (en) | 1995-09-30 | 1996-09-24 | Viterbi coprocessor and method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9519995A GB2305827B (en) | 1995-09-30 | 1995-09-30 | Viterbi co-processor and method of operation therefor |
GB9519995.6 | 1995-09-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1997013327A1 true WO1997013327A1 (en) | 1997-04-10 |
Family
ID=10781562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP1996/004160 WO1997013327A1 (en) | 1995-09-30 | 1996-09-24 | Viterbi co-processor and method of operation therefor |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP0855107A1 (en) |
JP (1) | JPH11513544A (en) |
CN (1) | CN1200849A (en) |
GB (1) | GB2305827B (en) |
WO (1) | WO1997013327A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999049634A2 (en) * | 1998-03-23 | 1999-09-30 | Nokia Networks Oy | Modulation detection method and apparatus |
US6507927B1 (en) | 1999-02-09 | 2003-01-14 | Nokia Mobile Phones Ltd. | Method and device for estimating the reliability of a decoded symbol sequence |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100190291B1 (en) * | 1996-07-30 | 1999-06-01 | 윤종용 | Trellis back control device of viterbi decoder |
JP2002504289A (en) * | 1997-06-13 | 2002-02-05 | シーメンス アクチエンゲゼルシヤフト | Source Controlled Channel Decoding Using Intraframe Correlation |
JP3374908B2 (en) | 1999-05-06 | 2003-02-10 | 日本電気株式会社 | Method of updating reference value in high-speed closed-loop transmission power control |
CN1529945A (en) | 2000-10-24 | 2004-09-15 | 因芬尼昂技术股份公司 | Method and device for decoding sequence of physical signals, reliability detection unit and viterbl decoding unit |
US20100278287A1 (en) * | 2003-03-27 | 2010-11-04 | Nokia Corporation | List Output Viterbi Deconder with Blockwise ACS and Traceback |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0229246A2 (en) * | 1986-01-15 | 1987-07-22 | ANT Nachrichtentechnik GmbH | Method for decoding digital signals, as well as a Viterbi decoder and applications |
EP0302330A2 (en) * | 1987-08-03 | 1989-02-08 | ANT Nachrichtentechnik GmbH | Method and arrangement for evaluating branch and path metrics |
EP0512641A1 (en) * | 1991-05-08 | 1992-11-11 | ALCATEL BELL Naamloze Vennootschap | Decoder device |
US5408502A (en) * | 1992-07-13 | 1995-04-18 | General Instrument Corporation | Apparatus and method for communicating digital data using trellis coded QAM with punctured convolutional codes |
US5430768A (en) * | 1994-09-21 | 1995-07-04 | Seagate Technology, Inc. | Maximum likelihood detector for a disc drive PRML read channel |
-
1995
- 1995-09-30 GB GB9519995A patent/GB2305827B/en not_active Expired - Fee Related
-
1996
- 1996-09-24 CN CN96197832A patent/CN1200849A/en active Pending
- 1996-09-24 WO PCT/EP1996/004160 patent/WO1997013327A1/en not_active Application Discontinuation
- 1996-09-24 EP EP96933367A patent/EP0855107A1/en not_active Withdrawn
- 1996-09-24 JP JP9513937A patent/JPH11513544A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0229246A2 (en) * | 1986-01-15 | 1987-07-22 | ANT Nachrichtentechnik GmbH | Method for decoding digital signals, as well as a Viterbi decoder and applications |
EP0302330A2 (en) * | 1987-08-03 | 1989-02-08 | ANT Nachrichtentechnik GmbH | Method and arrangement for evaluating branch and path metrics |
EP0512641A1 (en) * | 1991-05-08 | 1992-11-11 | ALCATEL BELL Naamloze Vennootschap | Decoder device |
US5408502A (en) * | 1992-07-13 | 1995-04-18 | General Instrument Corporation | Apparatus and method for communicating digital data using trellis coded QAM with punctured convolutional codes |
US5430768A (en) * | 1994-09-21 | 1995-07-04 | Seagate Technology, Inc. | Maximum likelihood detector for a disc drive PRML read channel |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999049634A2 (en) * | 1998-03-23 | 1999-09-30 | Nokia Networks Oy | Modulation detection method and apparatus |
WO1999049634A3 (en) * | 1998-03-23 | 1999-11-11 | Nokia Networks Oy | Modulation detection method and apparatus |
US6353913B2 (en) | 1998-03-23 | 2002-03-05 | Nokia Networks Oy | Modulation detection method and apparatus |
US6507927B1 (en) | 1999-02-09 | 2003-01-14 | Nokia Mobile Phones Ltd. | Method and device for estimating the reliability of a decoded symbol sequence |
Also Published As
Publication number | Publication date |
---|---|
EP0855107A1 (en) | 1998-07-29 |
GB2305827B (en) | 2000-01-19 |
GB2305827A (en) | 1997-04-16 |
CN1200849A (en) | 1998-12-02 |
JPH11513544A (en) | 1999-11-16 |
GB9519995D0 (en) | 1995-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5432803A (en) | Maximum likelihood convolutional decoder | |
US8122327B2 (en) | Symbol-level soft output viterbi algorithm (SOVA) and a simplification on SOVA | |
US5802116A (en) | Soft decision Viterbi decoding with large constraint lengths | |
KR19990028216A (en) | Optimal Soft-Output Decoder for Tail-Biting Trellis Codes | |
US6452985B1 (en) | Viterbi decoding apparatus and Viterbi decoding method | |
JPH11355152A (en) | Addition/comparison/selection circuit, liklihood sequence detector, and addition/comarison/selection function execution method | |
KR20090071455A (en) | Decoding apparatus and decoding method | |
KR100675389B1 (en) | Viterbi decoder for executing trace-back work in parallel, and, method thereof | |
JPH0316046B2 (en) | ||
WO1997013327A1 (en) | Viterbi co-processor and method of operation therefor | |
CN100499379C (en) | A coding method of convolution code | |
KR20070073648A (en) | Transport format detecting apparatus and method | |
US7404139B2 (en) | Decoder with M-AT-A-Time Traceback | |
JPH09232971A (en) | Viterbi decoding method and viterbi decoding circuit | |
JP3512176B2 (en) | Turbo decoding device and method of controlling number of decoding repetitions in turbo decoding | |
US20070201586A1 (en) | Multi-rate viterbi decoder | |
CN105356893A (en) | Tail code configurable Viterbi decoding method and decoder | |
JPH06284018A (en) | Viterbi decoding method and error correcting and decoding device | |
US7263653B2 (en) | Algorithm for a memory-based Viterbi decoder | |
US6904105B1 (en) | Method and implemention of a traceback-free parallel viterbi decoder | |
Chandel et al. | Viterbi decoder plain sailing design for TCM decoders | |
JPH05335973A (en) | Viterbi decoder and decoder for convolution code | |
KR100491016B1 (en) | Trace-Back Viterbi Decoder with Consecutive Control of Backward State Transition and Method thereof | |
JP2000324047A (en) | Method for updating reference value in high-speed closed loop transmission power control | |
KR20050055556A (en) | Low power viterbi decoder and trace-back method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 96197832.5 Country of ref document: CN |
|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): CN JP US |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 1996933367 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 1997 513937 Country of ref document: JP Kind code of ref document: A |
|
WWP | Wipo information: published in national office |
Ref document number: 1996933367 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1996933367 Country of ref document: EP |