Viterbi Tail-Biting Double-Pass Decoding (P = 2*TB)
This design example shows how to implement a communication system with Altera® DSP Builder blocks. The system consists of a convolutional encoder and Viterbi decoder. The convolutional encoder adopts the trellis termination scheme called tail-biting by initializing the starting state of each packet with the tail bits. The encoded packet size (P) is equal to twice the traceback length (TB) of 16 in the Viterbi decoder parameter setting.
On the decoder side, double-pass buffer and output buffer are implemented along with the Altera Viterbi intellectual property (IP) core to decode the received code words properly. In this example, packet size of 64 in the decoder is equal to twice the encoded packet size (P) of 32. You can also compare the performance of bit-error rate (BER) versus Eb/No curves with other design examples.
Download the files used in this example:
Files in the zip download include:
- viterbi_system_doublepass.mdl — DSP Builder design file implementing the Viterbi system.
- viterbi.vhd — wrapper file to generate Altera Viterbi IP core.
- init.m — MATLAB script to initialize the sampling time.
Figure 1 shows the top-level diagram of the Viterbi tail-biting system design example in DSP Builder.
Figure 1. Viterbi System Top-Level Diagram

View Full Size
Figure 2 compares the performance of BER versus Eb/No curves.
Figure 2. BER vs. Eb/No Performance Curves

View Full Size
Table 1 lists the ports and gives a description for each.
| Table 1. Viterbi System Port Listing |
| Port Name |
Type |
Description |
datain |
Input |
data input to encoder |
enain |
Input |
enable input to encoder |
rst |
Input |
reset signal |
decout |
Output |
data output from decoder |
enaout |
Output |
enable output from decoder |
Related Links
For more information on related features used in this design example that you can use in your project, go to:
|