Introduction to Viterbi Decoding Algorithms

Source: Internet
Author: User
Introduction to Viterbi Decoding Algorithms

Viterbi decoding algorithm is a convolution code decoding algorithm. The advantage is not mentioned. The disadvantage is that the complexity of the algorithm increases rapidly as the length of the constraint increases. When the constraint length N is 7, there are 64 paths to be compared. When the constraint length is 8, the path becomes 128. (2 <(N-1 )). Therefore, Viterbi decoding is generally used in scenarios with a constraint length of less than 10.
Encoding (for example, the length is 7): The Status () of the 7 delimiters of the encoder Forms 64 States of the entire encoder. Each State jumps to another State when the encoder inputs 0 or 1. For example, when 110100 is entered as 1, it becomes 101001 (actually a shift register ). And the output also changes accordingly.
In this way, the decoding process is the inverse process. The algorithm requires that the data received at t time be compared 64 times, that is, 64 States each line has two branches (because the input is 0 or 1). At the same time, jump to two different States, compare the two outputs with the actually received outputs, and discard the large measured values (that is, the result is quite different ), the left is called the surviving path. The surviving path is added with the measurement of the surviving path at the previous time and saved. This adds a step for 64 surviving paths. At the end of decoding, the minimum measurement is selected from 64 surviving paths. This surviving path (called backtracking) is reversed to obtain the corresponding decoding output.
Not very clear. It is possible to draw a picture clearly. I have done the corresponding DSP program and found that this algorithm can run on m on the DSP of 54x, which cannot meet our data transmission speed requirements, the main time consumption requires two comparisons for each route. During the two comparisons, a total of three numbers must be obtained from the memory (the measurement of the survival path at the previous time, the two statuses jump to the corresponding output value). After the comparison, you also need to write two numbers to the memory (the new total amount of the surviving path, the next hop Status). In this way, the number of times that each clock cycle needs to be compared is 64*2 times, and the number of accesses each time is 5 times. A data packet is 256 bytes, so that you can know the approximate time required to decode a packet. With other overhead added, the result of the experiment is about 0.06 m, but we can transmit the data at 64 K rate as long as M.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.