Correct Misalignment of Concatenated Codewords
Concatenating codewords involves using two layers of encoding to enhance data protection. The synchronization of word boundaries is crucial for optimal error correction and data integrity. In a concatenated coding system, the delay introduced by the decoding process of the first code can cause misalignment with subsequent codes that expect immediate data processing at predefined frame boundaries. This misalignment compromises the efficacy of the concatenated decoding process. This example shows how to manipulate the inherent delay by adding a delay to maintain the efficacy of the concatenated decoding process and the integrity of the data.
Open the Model
The model includes the following blocks:
The Random Integer Generator block generates random integers in a specified range.
The Integer-Input RS Encoder and Integer-Output RS Decoder blocks use Reed-Solomon codes to encode and decode integer vector data.
The Convolutional Encoder block encodes binary data using a convolutional encoding scheme.
The Viterbi Decoder block decodes convolutionally encoded data using Viterbi algorithm.
The AWGN Channel block is for channel modeling.
The Error Rate Calculation blocks compute the bit error rate.
Adjust Delays
This system converts integers to bits and then back to integers. The Viterbi decoding introduces a delay of 136 output samples. The input to the Bit to Integer Converter block is a frame of size 1632. Consequently, the signal that exits the Viterbi Decoder block is a frame whose first entry does not represent the beginning of a new word. This misalignment between words and the frames that contain them hinders the converter block.
To mitigate the disruption, you need to move the word boundary from the 137th sample of the 1632-sample frame to the first sample of the next frame. Moving the word boundary delays the signal by 1496 samples. The Delay block between the Viterbi decoder block and the Bit to Integer Converter block introduces a delay of 1496 samples. Now their combined delay is a full data frame of 1632 samples.
For the two Error Rate Calculation blocks which reflect the delay block's Tx and Rx signals:
Set the Inner Error Rate block to a receive delay of 136 samples. This block output displays the number and rate of errors due to channel noise and decoding process.
Set the Outer Error Rate block to a receive delay of one frame with 188 samples (188*8). This delay value is a combination of the delay from the Viterbi Decoder block and the Delay block. The output displays the number and rate of error of the entire system.
Run the Model
When you run the model, you can see:
Check Alignment
The output from the Outer Error Rate block, showing the error rate and number of errors, closely matches that of the Inner Error Rate block. This similarity indicates a low overall system error rate. For better clarity, you can remove the AWGN Channel block in the model to remove noise and see zero errors in the system.
Observe Effects of Misalignment
In the model, remove the delay block between the Viterbi Decoder block and the Bit-to-Integer Convertor block. Removing the delay block causes the misalignment between the words and the frames that contain them. Consequently, this misalignment leads to a significant increase in the error rate and the number of errors reported by the Outer Error Rate block.
Conclusion
Inserting known delays to align codewords to frame boundaries allow you to evaluate error performance. Precise delay adjustments help in achieving optimal system performance and reliability in the received data.