• 沒有找到結果。

Convolutional codes and encoders

在文檔中 通道解碼器之設計與實作 (頁 59-81)

Convolutional codes

3.1 Convolutional codes and encoders

An (n, k) convolution code over F = GF (q) can be defined as a k-dimensional subspace of n-dimensional vector space Fn((D)) [94, 95]. The set F ((D)) of Laurent series in D over F is the set of sequences a(D) =

X∞ i=r

aiDi in which ai ∈ F , and r is an arbitrary integer.

Furthermore, we can express the information stream as the sequence

u(D) =

X

i=r

uiDi (3.1)

where ui = (u(1)i , u(2)i , . . . , u(k)i ) is i-th k-tuple information frame, and therefore u(D) ∈ Fk((D)). The codeword stream is also the sequence v(D) in Fn((D)) and can be represented with the n-tuple codeword frame vi = (vi(1), vi(2), . . . , v(n)i ):

v(D) =

X

i=r

viDi (3.2)

The (n, k) convolutional encoder can then have the following definition [95, 96]:

Definition 3.1. An encoder is a k × n convolutional encoder over F if the mapping Fk((D)) 7→ Fn((D)) realized by the encoder can be represented by v(D) = u(D)G(D) where G(D) is a k × n matrix of rank k with entries in the subset F (D) of F ((D)).

We represent the set of finite degree polynomials in D over F by F [D]; moreover, F (D) denotes the set of rational functions a(D)/b(D) with both a(D) and b(D) in F [D]. Clearly,

F [D] and F (D) are subsets of F ((D)). The generator matrix G(D), also termed encoder, in the definition 3.1 results in the codewords of length n and coding rate R = k/n. Generally, G(D) is often expressed as a generator matrix:

G(D) = the memory order m is the maximum degree among all a(j)i (D) in G(D).

m = max

1≤i≤k,1≤j≤ndeg[a(j)i (D)] (3.4)

In the graphical representation, we can use the controller canonical form for the linear system with the input u(D) ∈ F ((D)):

As shown in Fig. 3.1, the delay elements denoted by D construct a single input shift register.

The m delay elements are memory units that store the previous m shift register inputs. We can find that a(D)/b(D) is a rational transfer function for the input u(D), and the output

a

0

a

1

a

2

a

3

a

m

b

2

b

3

b

m

D D D D

...

...

...

. . .

. . .

u

i

v

i

b

1

Figure 3.1: The controller canonical form of (3.5) v(D) is also in F ((D)). Alternatively, if (3.5) is rewritten as

v(D) = u(D)a(D) + v(D)(

m

X

i=1

biDi), (3.6)

the observer canonical form of the system is illustrated in Fig. 3.2, which is another real-ization of Fig. 3.1 for the same transfer function. The generator matrix in (3.3) with the

a

0

...

u

i

v

i

D D D D

a

m

a

m-1

a

m-2

b

m

b

m-1

b

m-2

b

1

...

...

Figure 3.2: The observer canonical form of (3.6)

entries in F (D) is referred to a rational transfer function matrix.

The above mentioned encoder (3.3) leads to the constraint length definitions [94] listed below:

1. The constraint length for i-th information sequence is the maximum degree within i-th row of G(D).

νi = max deg[a(j)i (D)] (3.7)

Note that a(j)i (D) is the numerator of the rational function g(j)i (D).

2. The overall constraint length is the summation of (3.7) for all information sequence.

ν =

k

X

i=1

νi (3.8)

3. The input constraint length is the number of information symbols that affect each codeword frame.

K = ν + k (3.9)

4. The output constraint length is the number of codeword symbols that related to a single information frame.

nm = n(m + 1) (3.10)

The required number of memory elements in the controller canonical form (see Fig. 3.1) is equal to the overall constraint length ν. Notice that many literatures define a single constraint length for an encoder with one of the above four statements. For example, in [97]

the overall constraint length ν in (3.8) is defined to be the constraint length of a convolutional encoder.

There are infinite number of generator matrices that produce the same set of codewords.

Thus we can define the equivalence of two encoders as:

Definition 3.2 (Forney [98] ). Two encoders G(D) and G(D) are equivalent if they generate the same code.

Furthermore, two equivalent encoders G(D) and G(D) can be related by G(D) = T (D)G(D) if and only if T (D) is a k × k nonsingular matrix over F (D) [96]. For two

codeword sets {v(D)} and {v(D)} corresponding to G(D) and G(D), or

v(D) = u(D)G(D) = u(D)T (D)G(D) = u(D)G(D) v(D) = u(D)G(D),

we can find that {u(D) = u(D)T (D)} and {u(D)} are identical sets because T (D) is invertible. It can also be verified that T (D) is nonsingular if G(D) and G(D) are equivalent.

The encoder in definition 3.1 is required to perform one-to-one mapping for correctly decoding. Therefore, these exists a G−1(D) such that

v(D)G−1(D) = u(D)G(D)G−1(D) = u(D)

for all u(D). We use the equation G(D)G−1(D) = Ik where Ik is the k × k identity matrix, and G(D)−1 is the right inverse of G(D). The basic encoder is defined as follows:

Definition 3.3 (Forney [98] ). A generator matrix G(D) is basic if it is polynomial and has a polynomial right inverse.

It follows that every rational encoder is equivalent to a basic convolutional encoder [96, 98]. Generally, basic encoders are not unique, and therefore, two basic encoders G(D) and G(D) are equivalent if and only if G(D) = T (D)G(D) where T (D) is a k × k polynomial matrix with determinant 1 [95, 96]. Because T (D) is nonsingular, G(D) = T (D)G(D) indicates the equivalence of G(D) and G(D). Conversely, if G(D) and G(D) are equivalent, there exist a k×k matrix T (D) over F (D) such that G(D) = T (D)G(D), and T (D)−1exists.

Furthermore, since G(D) is basic and thus has a polynomial right inverse G−1(D), we can find that T (D) = G(D)G−1(D) is also polynomial; besides, T (D)−1 should be polynomial.

As a result, G(D) = T (D)T−1(D)G(D) and T (D)T−1(D) = Ik. Since both T (D) and T−1(D) are polynomials, T (D) must have determinant 1, or det(T (D)) = 1.

Among all equivalent basic encoders, there is one that requires a minimal number of

memory elements. Accordingly, such encoder is defined by

Definition 3.4 (Johannesson [96]). A minimal basic encoding matrix is a basic genera-tor matrix whose overall constraint length ν is minimal over all equivalent basic encoding matrices.

Let G(D) be a basic encoder, and it can be decomposed into three parts:

G(D) = G0(D) +

 Dν1

Dν2 . ..

Dνk

· ¯Gh (3.11)

Notice that ¯Gh is a k × n matrix over F and has nonzero entries in the positions (i, j) where deg gij(D) = νi. As a result, G0(D) contains the enteritis in G(D) where the highest degree terms in each row are removed. For G(D) with the overall constraint length ν, we can obtain the following equivalent statements [96, 97]:

1. G(D) is a minimal basic encoder.

2. The maximum degree of all k × k sub-determinants of G(D) equals to ν.

3. ¯Gh is of full rank.

According to (3.11), the second and the third statements are equivalent. The proof about the equivalence of the first and the second statements can be found in [96] and [97]. The above three statements characterize the minimal basic encoder in definition 3.4 and provide the rules for constructing a minimal basic encoder. Moreover, a minimal basic encoder for a convolutional code is unnecessarily unique, and every encoding matrix is equivalent to a minimal basic encoding matrix [98].

The physical state of a rational encoder G(D) at some time instance is defined to be the contents of the memory elements in its realization, which can be either the controller or the

observer canonical form. On the other hand, the abstract state is the output sequence at time 0 and later if the input sequence u(D) occurs up to time −1 and becomes all zero thereafter.

Hence, the abstract state depends only on G(D) instead of its realization [96]. Different abstract states must correspond to different output sequences and different physical states.

However, different physical states may correspond to the same abstract state [95]. Let P be the projection operator that forces the sequences to all zero for non-negative time instants, and Q be the projection operator that truncates the sequences at negative time instants.

For example, assume r < 0,

u(D)P =

−1

X

i=r

uiDi (3.12)

u(D)Q =

X

i=0

uiDi. (3.13)

Therefore, the abstract state vS(D) can be formally written by

vS(D) = u(D)P G(D)Q. (3.14)

Accordingly, the minimal basic encoder in definition 3.4 will have the following properties [96, 97, 99]:

1. If G(D) is minimal basic and

u(D) =

n

X

i=−m

uiDi = (u(i)i , u(i)i , . . . , u(k)i )Di, (3.15)

u(D)G(D)Q = 0 will deduce that u(D) = 0.

2. The abstract state number of a minimal basic encoder equals the physical state number.

3. The abstract state number of an encoder is always larger than or equal to that of an equivalent minimal basic encoder.

The first property can be verified with (3.11), and

must have zero coefficients vi for i ≥ 0. Without loss of generality, we may assume that

m = ν1 = ν2 = · · · = νl > νl+1 ≥ · · · ≥ νk (3.17)

Consequently, the coefficient vm+n of Dm+n in v(D) will be

(u(0)n , u(1)n , . . . , u(l)n , 0, . . . , 0) ¯Gh = 0. (3.18)

The second property of a minimal basic encoder G(D) ensures the minimum realization of its controller canonical form. Because the basic encoder is polynomial, the following input sequence

will be the physical state in the controller canonical form at time instant 0. According

to (3.14), the abstract state of G(D) can be written as

vS(D) = u(D)G(D)Q. (3.21)

If there are two different physical states u1(D) and u2(D) in the form of (3.20) correspond to the the same abstract state, we will have

vS(D) = u1(D)G(D)Q = u2(D)G(D)Q, (3.22)

or

(u1(D) − u2(D))G(D)Q = 0. (3.23)

Directly from the first property, we can conclude that (u1(D)−u2(D)) must be zero, resulting in u1(D) = u2(D). Hence the abstract state number should equal to the physical state number for a minimal basic encoder.

The third property shows the minimum of a minimal basic encoder. We consider two equivalent encoders G(D) and G(D) whose abstract states are vS(D) and vS(D) respec-tively. From the abstract state definition, vS(D) can be obtained

vS(D) = u(D)P G(D)Q

= u(D)P T (D)G(D)Q

= u(D)P T (D)(P + Q)G(D)Q

= u(D)P T (D)P G(D)Q + u(D)P T (D)QG(D)Q. (3.24)

Note that

vS(D) = [u(D)P T (D)P ]G(D)Q (3.25)

is an abstract state of G(D); moreover,

v(D) = [u(D)P T (D)Q]G(D)Q = [u(D)P T (D)Q]G(D) (3.26)

is a codeword generated by G(D) and the input sequence u(D)P T (D)Q. Therefore, the abstract state of G(D) can be expressed by the sum of an abstract state and a codeword corresponding to G(D). That is

vS(D) = vS(D) + v(D) (3.27)

If G(D) is minimal basic, the relation in (3.27) is unique. This uniqueness can be verified by the contrary assumption:

vS(D) = vS1 (D) + v1(D) = vS2(D) + v2(D) (3.28)

where vS1(D) and vS1(D) are different abstract states of G(D); v1(D) and v2(D) are codewords by G(D). Rearranging (3.28), we have

v′′S(D) = vS1(D) − vS2(D) = v2(D) − v1(D) = v′′(D). (3.29)

Notice that vS′′(D) is also an abstract state, and v′′(D) is a codeword. Hence they should be

vS′′(D) = u′′S(D)P G(D)Q (3.30)

v′′(D) = u′′(D)G(D)Q. (3.31)

The input sequence u′′S(D) has the degree ≥ −m, which is sufficient to produce an abstract state. The operator Q in (3.31) comes from (3.26), where we can also find that u′′(D) must

be polynomial. Furthermore, the combination of (3.29), (3.30), and (3.31) leads to

u′′S(D)P G(D)Q − u′′(D)G(D)Q = [u′′S(D)P − u′′(D)]G(D)Q = 0. (3.32)

Based on the first property, we will obtain

u′′S(D)P − u′′(D) = 0, (3.33)

and therefore u′′S(D)P = u′′(D) = 0 since u′′(D) is polynomial. As a result, vS1(D) = vS2(D) and v2(D) = v1(D), resulting in the uniqueness of (3.27) if G(D) is minimal basic.

In other words, for any abstract state vS(D) of G(D), there exists an abstract state vS(D) of G(D) such that (3.27) holds; in addition, vS(D) can be a sum of an abstract state and a codeword of G(D). Therefore, the map vS(D) 7→ v(D) is surjective, and the abstract state number of G(D) must be larger than or equal to that of the equivalent minimal basic encoder G(D).

An encoder with the minimal abstract state number is of interest because the minimality also effects the complexity of encoders and decoders. The more general minimal encoder is then defined as follows:

Definition 3.5. [Johannesson [96]] An encoder G(D) is minimal if its abstract state number is minimal over all equivalent encoders.

Clearly, a minimal basic encoder is a minimal encoder. Moreover, for an encoder G(D) whose equivalent minimal basic encoder is Gmb(D), the following statements are equiva-lent [96, 98]:

1. G(D) is a minimal encoder.

2. The abstract state number of G(D) equals to that of Gmb(D).

3. For G(D), only the abstract state of zero can be a codeword.

4. G(D) has a polynomial right inverse in D and a polynomial right inverse in D−1. The second statement comes directly form the definition 3.5 and the second property of a minimal basic encoder. As mentioned above, the map vS(D) 7→ vSmb(D) from the abstract state of G(D) to that of Gmb(D) has been shown to be surjective. From the second statement, we can find the unique relation that

vSmb(D) = vS(D) + v(D) (3.34)

with v(D) being a codeword. With the similar derivation from (3.29) to (3.33), it can be correspondingly verified that only zero abstract state of G(D) can be a codeword. Hence the map vS(D) 7→ vSmb(D) should be bijective from the second and the third statements.

The equivalence about the fourth statement is detailed in [96]. Notice that the minimal encoder is defined to be the one that can be realized with a minimum number of memory units, and the realization may be in neither controller canonical nor observer canonical form.

Therefore, as indicated in [96], some encoders are minimal, but are not minimal basic.

If we consider the 2 × 3 encoder over GF (2)

G(D) =

1 + D + D2 D2 1

1 + D 1 D

, (3.35)

the information stream

u(D) = (1, 0) + (1, 1)D + (0, 0)D2+ (0, 1)D3 = (1 + D, D + D3) (3.36)

can be encoded to be

v(D) = u(D)G(D) (3.37)

= (1 + D2+ D4, D + D2, 1 + D + D2+ D4) (3.38)

Furthermore, in Fig. 3.3, we illustrate the encoder (3.35) in controller canonical form with three delay elements. This is a rate R = 2/3 encoder with memory order m = 2, meaning that each codeword frame vi will depend on ui as well as two previous frames ui−1 and ui−2. Therefore, we also refer Fig. 3.3 to be the (3, 2, 2) convolutional encoder. With (3.7)∼(3.9),

D D

D

(1)

u

i

(2)

u

i

(1)

v

i (2)

v

i

(3)

v

i

Figure 3.3: A (3, 2) convolutional encoder with memory order m = 2

the constraint lengths of the encoder G(D) in (3.35) are ν1 = 2, ν2 = 1, ν = 3, nm= 9, and K = 5. Moreover, we can easily check that G(D) is a minimal basic encoder having eight (23) physical states or abstract states, and the realization in Fig. 3.3 is minimal.

Alternatively, the convolutional encoder with a polynomial generator matrix can be expressed by the analytical representation [94, 100]. We first denote the i-th informa-tion sequence with u(i) = (u(i)0 , u(i)1 , u(i)2 , . . . ) and the j-th codeword sequence with v(j) = (v0(j), v1(j), v2(j), . . . ). For j = 1, 2, . . . , n, the encoding function will be written as the discrete convolution of u(j) and the generator sequence gi(j); that is

v(j) =

k

X

i=1

u(i)∗ g(j)i , (3.39)

and g(j)i = (gi,0(j), gi,1(j), . . . , g(j)i,m). This convolution operation in (3.39) can also be in matrix multiplication form. The information stream should be u = (u0, u1, u2, . . . ) with ui =

(u(1)i , u(2)i , . . . , u(k)i ). On the other hand, the generator matrix ¯G becomes semi-infinite:

Hence, the convolutional encoding of u is given by

v = u · ¯G (3.42)

Note that the codeword v = (v0, v1, v2, . . . ) is a linear combination of the rows in ¯G. With the analytical representation, we can write the the following generator matrix for the information

stream in 3.36 and the (3,2,2) encoder in Fig. 3.3:

According to (3.42), the information u = (10, 11, 00, 01) will be encoded to be

v = (10, 11, 00, 01) · ¯G = (101, 011, 111, 000, 101, 000),

which is equivalent to (3.38).

Convolution encoders can be in either systematic form or non-systematic form. In a systematic encoder, the information sequence is a part of the codeword sequence; therefore, the generator matrix can be in the following form:

Gs(D) = [ I(D) G(D) ]. (3.44)

The encoder in (3.44) will generate the codeword frame where the first k symbols are in-formation frame, and the remaining (n − k) symbols are called the parity-check sequences.

The encoders without systematic features are termed non-systematic. The systematic form of (3.44) has the following right inverse

G−1s (D) =

 I(D)

¯0

 (3.46)

where ¯0 is an (n − k) × k zero matrix. We will observe that G−1s (D) is polynomial in D and D−1, and thus it is a minimal encoder. Therefore, all systematic encoders are minimal encoders [98].

Form [101], we know that every encoder is equivalent to a systematic rational en-coder. Consequently, the systematic encoder Gs(D) can be obtained from an equivalent non-systematic encoder G(D). We first find a k × k submatrix T (D) of G(D) and compute

Gs(D) = T−1(D)G(D). (3.47)

For instance, the equivalent systematic encoder Gs(D) of the encoder in (3.35) can be com-puted by letting

T (D) =

1 + D + D2 D2

1 + D 1

. (3.48)

As a result,

The corresponding observer canonical realization of (3.49) is illustrated in Fig. 3.4. The

D D D

Figure 3.4: A (3, 2) systematic convolutional encoder in observer canonical form

memory unit number is three which is equal to that of Fig. 3.3, resulting in the minimal realization of (3.49).

There is a encoder G(D) that generates finite weight codewords v(D) for the infinite weight input sequence u(D) [98, 102]. Such encoder is referred to catastrophic because a finite number of errors in v(D) may cause an infinite number of errors in u(D) [97]. We consider the (2,1,2) encoder

G(D) = [ 1 + D 1 + D2 ],

and the infinite weight data stream

u(D) = 1 1 + D =

X

i=0

Di.

After encoding, the codeword sequence becomes v(D) = (1, 1 + D), which has a Hamming weight of 3. A small number of errors may cause the decoder to estimate an all zero codeword, leading to infinite decoding errors. According to [98], a non-catastrophic encoder should have a right pseudo-inverse ˜G−1(D) without feedback, or the polynomial right inverse ˜G−1(D) such that

G(D) ˜G−1(D) = DlI(D) (3.50)

for some l ≥ 0, and k × k identity matrix I(D). Consequently, all minimal encoders are non-catastrophic. The sufficient condition [102] for an (n, 1) convolutional encoder

G(D) =



g1(1)(D) g(2)1 (D) · · · g1(n)(D)



(3.51)

having right pseudo-inverse is the greatest common divisor (gcd) of the entries equals Dl:

gcd[g1(1)(D), g(2)1 (D), · · · , g1(n)(D)] = Dl. (3.52)

Moreover, for an (n, k) encoder in (3.3), the sufficient condition becomes

gcd[∆i(D), i = 1, 2, · · · ,n k



] = Dl, (3.53)

where ∆i(D) for i = 1, 2, · · · , nk denote the determinants of distinct k × k submatrices of G(D).

The behavior of an encoder can be described graphically. All possible physical states, or directly termed states, as well as the input data frame that may cause the state transitions can be represented by a state diagram. Accordingly, a state diagram consists of all states

D D

(1)

u

i

(1)

v

i

(2)

v

i (1)

2

u

i (1)

1

u

i

Figure 3.5: The (2,1,2) convolutional encoder

and branches that indicate transitions caused by the input data. Generally, each state has 2k incoming branches and 2k outgoing branches. We use the (2,1,2) encoder over GF (2)

G(D) = [ 1 + D + D2 1 + D2 ] (3.54)

as an example. The controller canonical realization is illustrated in Fig. 3.5, and the cor-responding state diagram is shown in Fig. 3.6. The state Sj is the memory unit contents

S

0

S

1

S

2

S

3

0/00

1/11

1/01 0/10

1/10 0/01

1/00 0/11

Figure 3.6: The state diagram of the (2,1,2) convolutional encoder

(u(1)i−1, u(1)i−2) in Fig. 3.5. Since the overall constraint length ν = 2 results in total 22 = 4 states, we have S0 = (0, 0), S1 = (0, 1), S2 = (1, 0), and S3 = (1, 1). The branches labeled with

u(1)i /vi(1)vi(2) show the state transitions according to the input u(1)i , and one codeword frame (vi(1), vi(2)) will be generated within each state transition. Therefore, the encoding operation is a series of state transitions form a known state, for example S0.

The other useful graphical representation is the tree diagram where states at different time instants will correspond to different nodes. Starting at a known root node (or state), the tree expands one of 2k branch candidates based on the input data. The example in Fig. 3.6 is also illustrated in the tree diagram Fig. 3.7. Each node has two possible outgoing branches, the upper branch relates to the input u(1)i = 0, and the lower one to u(1)i = 1. The output codeword vi(1)vi(2) is also marked on the branches. The tree expands from left to right as the input u(1)i enters the encoder, and each path corresponds to a distinct input sequence.

We can also find that though the possible node number increases while the tree expands, there are at most four states, S0 ∼ S3, in the diagram.

Figure 3.7: Tree diagram of the (2,1,2) convolutional encoder

The third graphical representation is the trellis diagram. We first note from the tree diagram in Fig. 3.7 that the four possible states appear at the time instant t = 2, and the eight nodes at t = 3 can be represented by the four states. Hence we can reduce

the tree diagram to the trellis diagram with four states at each time instant, avoiding the exponentially increasing branches. For a minimal basic (n, k) encoder over GF (2) with overall constraint length ν, there are 2ν states at each time instant, and each state has 2k incoming and 2k outgoing branches. Fig. 3.8 shows the trellis diagram associated with the tree diagram in Fig. 3.7; the solid branches indicate the input u(1)i = 1, and the dash branches u(1)i = 0. The labels on the branches also reveal the input and the output u(1)i /vi(1)vi(2).

Figure 3.8: Trellis diagram of the (2,1,2) convolutional encoder

The distance property of the convolutional code can be described with weight enumer-ating function (WEF) [103], or the transfer function of a signal flow graph [94, 100]. If we assume the encoding starts from S0 and terminates at S0 with arbitrary lengths, the state diagram in Fig. 3.6 can be modified to be the signal flow graph in Fig. 3.9. To avoid ambiguity, S0 denotes the terminated state S0 at some time instant. We first consider the input-output weight enumerating function (IOWEF)

A(W, D, L) = X

w,d,l

Aw,d,lWwDdLl (3.55)

where Aw,d,l is the number of weight d codewords encoded from weight w information se-quences whose length is l branches. Therefore, we label each branch in Fig. 3.9 with a gain WwDdLl according to the input and output weight information in Fig. 3.6. Note that Fig. 3.9 is a signal flow graph with source node S0 and sink node S0. Since A(W, D, L) can be regarded as the transfer function of the signal flow graph, (3.55) is obtained through

S 0

D L

2

WD L

2

S 1 S 2

S 3

WL DL WDL DL

WDL

S' 0

Figure 3.9: State diagram with weighted branches of the (2,1,2) convolutional encoder

solving the following equations:

ΨS2 = W D2L · ΨS0 + W L · ΨS1 (3.56) ΨS3 = W DL · ΨS2 + W DL · ΨS3 (3.57)

ΨS1 = DL · ΨS2 + DL · ΨS3 (3.58)

ΨS0 = D2L · ΨS1 (3.59)

Finally, we achieve the rational function

A(W, D, L) = ΨS0

ΨS0

= W D5L3

1 − W DL(1 + L). (3.60)

Generally, the function (3.60) can be expanded to be

A(W, D, L) = W D5L3 X∞

i=0

[W DL(1 + L)]i (3.61)

= W D5L3+ W2D6L4(1 + L) + W3D7L5(1 + L)2 + . . . (3.62)

For the encoder (3.54), we can learn from (3.61) that there is a weight five codeword as-sociated with the input sequence of weight one and length three. A simple IOWEF will

eliminate L in (3.55), and therefore

A(W, D) =X

w,d

Aw,dWwDd= A(W, D, L)|L=1 (3.63)

= W D5

1 − 2W D (3.64)

The value Aw,d counts the number of weight d codewords generated from weight w input sequences, and Aw,d=P

lAw,d,l. Furthermore, the WEF is just

A(D) = X

d

AdDd= A(W, X, L)|W =L=1 (3.65)

= D5

1 − 2D = D5+ 2D6+ 4D7+ . . . (3.66)

that enumerates the codewords of all possible weights, and Ad =P

w,lAw,d,l. Form (3.66), the code contains a non-zero codeword with the minimum weight five, and thus the free distance (df ree) of the code is five.

在文檔中 通道解碼器之設計與實作 (頁 59-81)

相關文件