• 沒有找到結果。

B-IBP interleaver supports variable information length

B-IBP interleaver imposes a constraint on the input sequence length which is the multiple of block length. WiMAX [56] pads dummy bits to resolve this problem but

extra dummy bits decrease bandwidth efficiency. Information bit shortening [109] and interleaver pruning [32] are both applicable for turbo code to match various information sequence lengths. As for maintaining identical code rate, the shortening requires punc-turing extra code bits but it may pay at most 2 to the decrease of the minimum distance.

Interleaver pruning shortens interleaver by removing permutation positions but this may cause serious minimum distance decrease due to the change of permutation table. The following subsections will describe and compare both strategies.

4.4.1 Shortening and puncturing

The shortening and puncturing support various lengths of input data sequence with-out sacrificing code rate and the spaced shortening assigning algorithm reduces decoder control complexity without significant performance loss. The shortening is applicable to increase supportable length for input data sequence by removing the dummy bits to fit the desired interleaver length before transmission. The puncturing further removes the parity bits corresponding to the dummy bits and code rate maintains the same.

The shortening and puncturing strategy decreases the distance by at most 2 for each shortened position. The shortening strategy assigns a dummy bit before encoding. After encoding it removes the dummy bit and the associated parity bits. Because the parity bit is removed, the shortened codeword weight decreases by at most 2.

However, the shortening induces extra complexity in APP decoder design and the extra shortening cycle is necessary. In order to maintain multiple processors processing shortening cycle as possible at the same time, the shortening positions have to be spaced by an interval. The space also spreads the influence of shortening positions and keeps the performance without significant degradation induced by the puncturing.

Shortening position assigning algorithm is characterized by two stages. The first stage calculates the shortening width Wshorten. The second stage assigns the shortening positions. There are Nshorten = KB−IBP−K shortening positions to be shortened, where

K is input information length and KB−IBP is the length of B-IBP interleaver. The max-imum number of shortened positions for all blocks is NL,shotenNshorten

N

¨and there are NN,M AX = |Nshorten|N blocks shortening NL,shorten positions and the associated shorten-ing width is Wshorten = l

L NL,shorten

m. The second stage determines the shortening

posi-tions. The first NN,M AXblocks shorten symbols at {0 , Wshorten, 2Wshorten, . . . , (NL,shorten− 1)Wshorten}. The following N−NN,M AXblocks shorten symbols at {0 , Wshorten, 2Wshorten, . . . , (NL,shorten−2)Wshorten}. This assigning algorithm promises these APP decoders ma-nipulate the shortening cycles at the same time as much as possible when the number of APP decoders are the factor of N while the shortened positions are spread to the farthest.

4.4.2 Pruning

Interleaver pruning [32] removes the permutation entries to shorten the interleaver.

Assume there exists an interleaver with permutation function Π. We prune one position j and the resultant pruned interleaver Πprune has the function

πprune(i) =







π(i) , i < j and π(i) < π(j) π(i) − 1 , i < j and π(i) > π(j) π(i + 1) , i > j and π(i + 1) < π(j) π(i + 1) − 1 , i > j and π(i + 1) > π(j)

. (4.40)

We can apply this formula recursively to create an interleaver with any length shorter than the length of Π.

4.4.3 Comparison between shortening and pruning

Turbo code error events are highly correlated with the non-zero element coordi-nates of an input sequence. The component code of turbo code is a recursive convolu-tional code and low weight output sequences are usually corresponding to some special patterns. Fig. 4.11 shows two important error events, the weight-2 and weight-4 error events. A coordinate pair generates a finite weight codeword if coordinates difference is

i j

j' i'

mTc

nT c

i j k l

l' i' j' k'

mTc pTc

qTc nTc

(a) (b)

Pre-Permutation

Post-Permutation

Figure 4.11: Weight-2 and 4 error events for a turbo code.

multiple of Tc for both pre-permutation and post-permutation where Tc is the period of the component code. A good interleaver always promises large m and n in Fig. 4.11 (a) and m, n, p and q in Fig. 4.11 (b) and the corresponding codeword weights are large. A good interleaver generally has large distance and shortening strategy does not influence performance significantly if the shortening positions are not close as our algorithm.

The pruning strategy may significantly decrease the minimum distance of the turbo code with the pruned interleaver comparing to a mother interleaver. The strategy as-signs a dummy bit and skips the bit when encoding. Therefore a pruned interleaver is completely different to the mother interleaver. Fig. 4.12 (b) shows an example. The pruning shifts j′′ = j + 1 to j due one position is pruned before j′′ and after i. Because the difference between i and j′′ is Tc + 1, it does not generate low weight codeword.

However the difference between i and j′′ is Tc and a low weight codeword occurs for the turbo code applying the pruned interleaver because the difference between i and j is also Tc. Even if a mother interleaver has an outstanding distance property, the pruned interleaver has completely different nature to the mother interleaver. Furthermore the more bits pruned, the more kinds of interleavers generated.

Interleaver pruning [32] has been applied in 3GPP Rel’99 and Rel’6 [1, 2] turbo code

i j

j' i'

T

c

T

c

(b)

i j

j' i'

mT

c

nT

c

(a)

Shortened Position

j''=j+1 T

c

+1

Pruned Position

Figure 4.12: Influence of the weight-2 error events for both shortening and pruning strategy.

to create various interleaver lengths ranging from 40 to 5114 bits. This strategy provides various interleavers but it induces low weight codeword for turbo code with the pruned interleaver. The performance is not stable due to the pruning strategy. This explains the 3GPP Rel’99 and Rel’6 [1, 2] turbo coding possessing higher error floor for some interleaver lengths. Our simulation results evidence this.

The shortening and puncturing strategy requires less efforts in searching wide range of interleavers than the pruning strategy. The shortening only decreases the distance by at most 2 for each shortened bit. We can simply verify the case shortening most bits.

If the performance does not degrade obviously, we accept the interleaver. However, the pruning strategy generates different nature interleavers. If at most 30 positions have to be pruned, 31 kinds of interleavers include the mother interleaver have to be verified.

Therefore shortening and puncturing strategy simplifies our verification flow in searching interleavers within a wide range.

Table 4.3: Parallelism degree corresponding to various data lengths K and the supported number of interleavers.

K N Number of interleavers

40 ≤ K ≤ 200 1 69

201 ≤ K ≤ 320 2 26

321 ≤ K ≤ 960 8 34

961 ≤ K ≤ 2560 16 43

2561 ≤ K ≤ 6144 32 48