From what we mentioned above, we have known that we can reduce the decoding com-plexity of the high rate code by puncturing the low rate code output bits to achieve the rate we need with a simpler trellis structure. Furthermore, rational rate punctured convolutional codes are purposed due to the need of more flexible choices while choosing the code rate.
Rational rate punctured convolutional codes provide us a different viewpoint to describe the behavior of the punctured convolutional codes. No matter conventional punctured con-volutional codes or rational punctured concon-volutional codes, they are only concern about a system with a particular code rate error correcting code.
As we know, the design of an error correction coding system usually consists of select-ing a fixed code with a certain rate and correction capability matched to the protection requirement of all the data to be transmitted. However, in many cases, one would like to be more flexible because the data to be transmitted have different error protection needs, for example, speech or video transmission. To achieve this goal, we wish to change the code rate and hence the correction power of the code during transmission of an information frame according to source and channel needs. The simplest way is that we prepare several error control codes with different code rates according to the different needs of protection.
However, it will lead us into a situation that the user must prepare many sets of encoder and decoder at the transmitter and receiver and the system complexity raises as the number
Figure 2.3: Example of a punctured convolutional code with two rate compatible puncturing tables
of sets of encoder and decoder increasing. For practical purpose, we would like to have not just switching between a set of encoders and decoders, but one encoder and one decoder which can be modified without changing their basic structure. This can be achieved by not transmitting certain code bits by puncturing the code.
The conventional punctured convolutional code which we mentioned above is to obtain a certain high rate code by deleting some transmitted code bits of a low rate code. In applications where it is necessary to support two or more different code rates, it is sometimes convenient to make use of rate-compatible punctured convolutional (RCPC) codes [7]. The word rate-compatible means that the high rate coded streams are embedded in the low rate coded streams. Therefore, a RCPC code is a set of two or more convolutional codes punctured from the same mother code in such a way that the codewords of a lower rate code can be obtained from the codewords of a higher rate code simply by adding additional bits. In other words, the set of puncturing tables must be such that the puncturing table of a lower rate code is obtained from the puncturing table of a higher rate code by simply changing some of 0’s to 1’s.
For example, if a puncturing table which result in a rate R = 4/5 for the mother code is
A(1) =
⎡
⎣ 1 1 1 0 1 0 0 1
⎤
⎦
Suppose the code rate with 4/5 and puncturing table A(1) is not powerful enough to correct
the channel errors. A more redundant and therefore more powerful code with lower rate 4/6, 4/7, or 4/8 would be necessary. Instead of transmitting all the code bits of a completely different low rate code, the lower rate code should utilize the bits already transmitted. Then only additional incremental redundancy bits have to be transmitted. Additional “1” ’s in the puncturing tables of the lower rate codes can therefore be placed only where zeros appeared in the puncturing table of the previous higher rate code, for example,
A(2) =
⎡
⎣ 1 1 1 0 1 1 0 1
⎤
⎦ , A(3) =
⎡
⎣ 1 1 1 1 1 1 0 1
⎤
⎦ , A(4) =
⎡
⎣ 1 1 1 1 1 1 1 1
⎤
⎦
Thus, for A(1) to A(4), we get a rate-compatible family of codes derived from the mother code 1/2 with rates 4/5, 4/6, 4/7, 4/8 which use only incremental redundancy. This prop-erty is particularly convenient in two-way communication systems involving retransmission requests, where the initial transmission uses a high rate punctured code and then, if the transmission is unsuccessful, punctured bits are sent during later transmissions, resulting in a more powerful lower rate code for decoding.
• General definition of RCPC codes
A family of RCPC codes is described by the mother code of rate R = 1/n where n is the number of the output bits and the puncturing period p determines the range of code rate
R = p/(p + u) u = 1 . . . (n − 1)p
between p/(p + 1) and 1/n. The RCPC codes are punctured codes of the low rate mother code with the puncturing tables
A(u) =
⎛
⎜⎜
⎝ aij(u)
⎞
⎟⎟
⎠ : n × p matrix
with pij(a) ∈ (0, 1) where 0 implies puncturing.
Here, we summarize the rate-compatible rule for each element in the puncturing tables
⎧⎪
⎪⎨
⎪⎪
⎩
if aij(u0) = 1 then pij(u) = 1 for all u ≥ u0 ≥ 1
if aij(u0) = 0 then pij(u) = 0 for all u ≤ u0 ≤ (n − 1)p − 1
Following the rule above, we can guarantee that the high rate coded streams must be embedded in the low rate coded streams.
Figure 2.4: Example of UEP with RCPC codes according to the error protection require-ments
The most popular application of RCPC codes is unequal error protection (UEP) which means an information sequence or block need different levels of error protection ability.
To achieve the goal of UEP, we first divide the information sequences into several groups according to the need of protection requirements and arrange these groups in the order of the protection levels. Next, we choose the proper RCPC family with different puncturing tables A(u) to fit the requirements of each group and transmit the data of groups which needs the less protection level first and the most one last as in Figure 2.4. Due to the property of the punctured codes, we only have to prepare the same encoder and decoder structure in the transmitter and the receiver respectively.
While transmitting UEP requested information sequences with RCPC codes, there is still one criterion that should be considered with the rate-compatible rule, soft-switching criterion. As we see in Figure 2.4, the UEP information bits are ordered from higher rate codes to lower rate codes and soft-switching criterion take effect at the boundary of the adjacent groups. When we transmit the UEP information data, we will find that not all groups has a data length which equals the period or an integer multiple of the period of the corresponding puncturing table. If we allow the corresponding tables of the adjacent data groups switch directly,i.e. hard-switching, it may result in a unpredictable loss of codeword distance which violates the spirit of UEP that provides enough protection ability each group needs.
Instead of hard-switching, soft-switching means that even when the adjacent data group switch, we will keep transmitting data according to higher rate puncturing table and not switch to lower rate puncturing table immediately until we reach the end of higher rate puncturing table. If two punctured codes without the restriction of rate-compatible rule and soft-switching criterion are used at the boundary of the two adjacent UEP groups, it can happen that a transitional path has a distance which is even lower than the distance of the same path within the higher rate code. This would lead to a bad behavior in the transition region. As long as we obey rate-compatible rule and soft-switching criterion, we can guarantee that the path across the boundary of the adjacent groups has a distance which is at least the distance of the same path within the higher rate code and at most the distance of the same path within the lower rate code. In this way, it can be guaranteed that the request of UEP can be satisfied.
Chapter 3
Irregular Punctured Convolutional Codes and Hybird Puncturing
Techniques
In this chapter, we propose a new method to produce the punctured convolutional codes, named irregular punctured convolutional codes which is distinguished from the conventional method. First, we will introduce the concept of the irregular punctured convolutional codes and the process of producing the irregular punctured convolutional codes will be demon-strated. With the idea of the irregular punctured convolutional codes is introduced, we will discuss the difference between the irregular and the conventional method.
Furthermore, the cooperation of the irregular and the conventional punctured convo-lutional codes will be mentioned and the combining rule is also described. Following the rule which is designed for the cooperation of the irregular and the conventional punctur-ing method, we develop a more general view for not only the cooperation of the different puncturing methods but also the single puncturing method. The details of this chapter are discussed as follows.
3.1 Introduction of the Irregular Punctured Convolu-tional Codes
In the beginning, we want to make a definition of the regular punctured convolutional codes which contrast with the irregular punctured convolutional codes. From what we
Figure 3.1: Illustrated example of the regular punctured convolutional codes
mentioned in chapter 2, the example of the conventional punctured convolutional codes is shown in Figure 3.1 and the puncturing behavior can be described as a 2× 3 puncturing matrix A.
Thus, the puncturing table for Figure 3.1 is
A =
⎛
⎝ 1 0 1 1 1 0
⎞
⎠
As we explained in chapter 2, the puncturing table of the conventional punctured con-volutional codes is a n × p matrix, where n is the number of the output coded bits, often be 2 and p is the puncturing period. The first row of the matrix indicates the deleting bits corresponding to the first output bits and the second row indicates the deleting bits corresponding to the second output bits. When we observe the first and the second row of the puncturing table corresponding to the Figure 3.1, we can find that these two rows have the same puncturing period, 3. This observation shows us the basic definition of the regular punctured convolutional codes is that each row in the matrix has the same punc-turing period. So far, literatures on puncpunc-turing were based on the scheme with the same puncturing period for all output streams of convolutional encoders. Here, we propose a new puncturing scheme for convolutional codes which allows each output coded bit has different
puncturing period and there will exist rows with different lengths in the puncturing matrix.
For example, a puncturing table
A =
⎛
⎝ 1 0 1 0 1 1 1
⎞
⎠
can be used to describe the irregular punctured convolutional codes.