This document describes the use of the executable program to compute the Distance Spectrum (DS) of punctured and un-punctured Turbo Codes. This program allows you to compute the DS for the following two cases:
A. Dual-terminated
Turbo Codes
If you want to find the DS of dual-terminated Turbo Codes, where the first Encoder starts and ends in the state Sx and the second Encoder starts and ends in the state Sy, the syntax for the command is:
Dspectrum 0 Sx Sy SettingFile.txt InterleaverFile.txt PuncturingFile.txt OutputFile.txt
B. Tail-biting Turbo
Codes
If you want to find the DS of Tail-bitten Turbo Codes, the syntax for the command is:
Dspectrum 1 SettingFile.txt InterleaverFile.txt PuncturingFile.txt OutputFile.txt
The files “SettingFile.txt”, “InterleaverFile.txt” and “PuncturingFile.txt” give a full description of the punctured Turbo Codes. The main settings of the considered Turbo Code and the Distance Spectrum will be written in the File “OutputFile.txt”.
The setting file “SettingFile.txt” gives a full description of the Encoder 1 and 2. It also allows you to control the Start and End Index for the simulation. This is useful especially for the following case:
· The computational complexity of DS for a good Interleaver (large free distance) can be very high. In this case, you can split the simulation over many workstations by mapping each computer with unique Start and End Index. The overall DS is the combination of all DS computed by all workstations.
Example: If you want to find the 5 lowest Distance Spectrum weights for the Turbo Codes. Assume both Encoders have the same structure and the Interleaver length is 1000 bits. Let assume that the upper bound for the needed DS is 30 and the upper bound for Input weight is 20. The Setting file for this turbo codes is described in the Fig. 1.
Fig.1. Convolutional Encoder with two parity-outputs
Interleaver_Length 1000 Upper_Bound_For_Dmin 30 Upper_Bound_For_Input_Weight 20 How_Many_Distances_Should_Be_Saved_(Distance_Spectrum) 5 Constraint_Length_Encoder1-1 2 Feedback_Coefficients_Encoder1 110 Number_Of_Feedforward_Plynomials_Encoder1 2 List_Of_Feedforward_Coefficients_Encoder1 011 111 Constraint_Length_Encoder2-1 2 Feedback_Coefficients_Encoder2 110 Number_Of_Feedforward_Plynomials_Encoder2 2 List_Of_Feedforward_Coefficients_Encoder2 011 111 Start_Index_The_Maximum_Allowed_Value_Is_(Interleaver_Length-1) 999 End_Index_The_Minimum_Allowed_Value_Is_(1) 1 |
Note: Please do not erase the highlighted text in the setting file.
The Interleaver File is very easy to use. All you need to do is write the indices of the Interleaver after the comment.
Example: Assume the Interleaver length is 1000:
Please_Insert_The_Exact_Numbert_Of_Indices 987 4 04 202 900 504 807 314 687 011 198 … |
Note: Please do not erase the highlighted text in the Interleaver file.
The Puncturing File allows you to puncture the Systematic and all parities of Encoders 1 and 2. All you need to do is specify the periodicity and puncturing pattern of Systematic and all parities of Encoders 1 and 2.
Example: Say you want to puncture:
· Every 9th bit of Systematic
· Every 5th bit of Parity 1 of Encoder 1
Every 7th and 11th bit of Parity 2 of Encoder 1
· Every 3rd and 10th bit of Parity 1 of Encoder 2
Every 13th bit of Parity 2 of Encoder 2
!!!PLESE_READ_THIS_COMMENT!!!
Abreviations:S_is_Systematic,P_is_Parity,Ff_is_FeedForward,E_is_Encoder
The_Puncturing_Sequence_Is_As_Follows: S[0].........................S[i] P11[0].......................P11[j1] P12[0].......................P12[j2] .... P1Max-Ff-E1[0]...............P1Max-Ff-E1[jMax-Ff-E1] P21[0].......................P21[k1] P22[0].......................P22[k2] .... P2Max-Ff-E2[0]...............P2Max-Ff-E1[kMax-Ff-E2] NOTE1:
If_you_don't_give_all_puncturing_patterns._The_missing_pattern_will_be_extracted_from_the_given_pattern.
NOTE2:
Usually_the_Systematic_is_not_Punctured!_In_this_version_the_user_is_given_the_ability_to_test The_effect_of_puncturing_the_systematic. PUNCTURING_LENGTHS 9 5 11 10 13 PUNCTURING_PATTERNS 111111110 11110 11111101110 1101111110 1111111111110 |
Note: Please do not erase the highlighted text in the puncturing file.
At the beginning and end of the Output File you can see the start and end times of the simulation. The information in Setting File will also be written in this File. This allows you to have a quick overview of the main setting of the Turbo Code you are testing. The list of DS will be written in increasing order in this file.