Home > Documents > Convolutional Codes R-J Chen. p2. OUTLINE [1] Shift registers and polynomials [2] Encoding...

Convolutional Codes R-J Chen. p2. OUTLINE [1] Shift registers and polynomials [2] Encoding...

Date post: 19-Jan-2016
Category:
Author: magdalen-andrews
View: 216 times
Download: 0 times
Share this document with a friend
Embed Size (px)
Popular Tags:
of 69 /69
Convolutional Codes R-J Chen
Transcript
  • Convolutional CodesR-J Chen

    p*.

    OUTLINE[1] Shift registers and polynomials[2] Encoding convolutional codes [3] Decoding convolutional codes[4] Truncated Viterbi decoding

    p*.

    Convolutional Code[1] Shift registers and polynomialsXOR

    register and clock X0X2Output0 00 11 01 1X1X2Output= X0+X1+X20110Xiclockregistertt-1t+1X10000X00 00 11 01 110011111

    p*.

    Convolutional CodeShift registerSR

    inputX0+X1+X3=outputFigure 8.1A shift registerclockX0X1X2X301+1+1=1X0X1X2X31101t-1t0+1+0=1X0X1X2X30110Example 8.1.1

    p*.

    Convolutional Code

    timeinputinputX0+X1+X3=outputX0X1X2X3output=X0+X1+X3Input1010000 Initial value0000=1+0+0Example 8.1.2000101==1110010

    p*.

    Convolutional Codes-stage shift registershift register with s registersXi(t)the value of the contents of register Xi at time t.ctthe output of time t. ct=g0X0(t)+g1X1(t)+..+gs-1Xs-1(t),

    inputctX0X1Xs-1gs-1g1g0Example3-stage shift register at time tinputX0X1X21001g0=1 , g1=0, g2=1 X0(t)=1 , X1(t)=0, X2(t)=0 ct=11+00+10 = 1

    p*.

    Convolutional CodeGenerator of shift registerg(x)generator of s-stage shift register, g(x)=g0+g1x+.+gs-1xs-1 , where and are the coefficients of the shift register. inputctX0X1Xs-1gs-1g1g0x0x1xs-1Poly. termsExample4-stage shift register at time tg(x)g0=1 , g1=1, g2=0, g3=1 g = 1101g = g0g1 gs-1g(x)=g0+g1x++gs-1xs-1g(x) = 1+x1+0x2+x3 input

    p*.

    Convolutional CodeExampleX0X1X2X311010=c1g=1101 Inputa=10000a(x)=1c1(x)=a(x)g(x) =1g(x)Generatorg=1101g(x) = 1+x1+x3 Outputc=1101000001c(x) = 1+x1+x3 timeinputX0X1X2X3-10000011000100100200010300001400000Output11010

    p*.

    Convolutional CodeExampleX0X1X2X301101=c2g=1101 Inputa=01000a(x)=x1c2(x)=a(x)g(x) =xg(x) Generatorg=1101g(x) = 1+x1+x3 Outputc=0110100010c(x) = x+x2+x4 timeinputX0X1X2X3-10000000000111000200100300010400001Output01101

    p*.

    Convolutional CodeExampleX0X1X2X310111=cg=1101 Inputa=11000a(x)=1+x1c(x)= c1(x)+c2(x) = 1g(x)+x g(x) =(1+x)g(x) =a(x)g(x) Generatorg=1101g(x) = 1+x1+x3 Outputc=1011100011c(x) = 1+x2 +x3+x4 0 1 1 0 11 1 0 1 00 1 2 3 4time1 0 1 1 1X0X1X2X31+1+0=0t=1 0011a=01000a=10000

    p*.

    Convolutional CodeTheorem 8.1.8a(x)the input sequence of a s-stage shift registerc(x)the output sequence of a s-stage shift registerg(x)the generator of a s-stage shift register, g(x)=g0+g1x+.+gsxs-1 , where c(x)=a(x)g(x)Example 8.1.3Input sequence1010000 a(x)=1+x2Generatorg(x)=1+x+x3Output sequence1110010c(x)=a(x)g(x)= (1+x2)(1+x+x3)=1+x+x2+x50000101X0X1X2X31110010=cg=1101

    p*.

    Convolutional Code

    time0-10123456inputa0a1a2a3000000a0000a1a000a2a1a00a3a2a1 a00a3a2a100a3a2000a3a0a1+ a0a2+ a1a3+ a2+ a0a3+ a1a2a3Example 8.1.4Input sequencea0, a1, a2, a3, 0, 0, 0Generator1+x+x3Output sequencec(x)=a(x)g(x)= (a0+a1x+a2x2+a3x3)(1+x+x3)= a0+(a1+a0)x+(a2+a1)x2+ (a3+a2+a0)x3+(a3+a1)x4 + a2x5+a3x6output=X0+X1+X3X0X1X2X3a0 a0 0 a0 0 0 00 a1 a1 0 a1 0 00 0 0 a3 a3 0 a3c(x)0 0 a2 a2 0 a2 0

    p*.

    Convolutional Code s-stage feedback shift register(FSR)Xi(t)the value of the contents of register Xi at time t.ctthe output of time t. inputX0X1Xs-1output=ctgs-1g1g01ExampleX0X1X20110tX0X1X20111t+10+11+1g0=1, g1=1, g2=0

    p*.

    Convolutional Code

    inputct=outputInput11000Initial value000ExampletimeinputX0+ctX1+ctX2+ct-1000output=ct0101001101102000113010+10+114010+11+11

    p*.

    Convolutional CodeGenerator of feedback shift registerg(x)generator of s-stage FSR, g(x)=g0+g1x+.+gs-1xs-1+xs , where and are the coefficients of the shift register. Example3-stage feedback shift registerg0=1 , g1=1, g2=0 g = 1101g = g0g1 gs-11g(x)=g0+g1x++gs-1xs-1 + xsg(x) = 1+x1+x3 inputX0X1Xs-1outputgs-1g1g0inputoutput

    p*.

    Convolutional CodePolynomial DivisioninputX0X1Xs-1outputgs-1g1g0g(x)=g0+g1x++gs-1xs-1 + xsct(x)=at(x)/g(x)rt(x)=at(x) mod g(x)Inputa=a0a1a2anOutputc=c0c1c2cnat(x)=a0xt+a1xt-1++at-1x+atct(x)=c0xt+c1xt-1++ct-1x+cttime=trt(x)=X0(t)+X1(t)x++Xs-1(t)xs-1(0tn-1)at(x)=ct(x)g(x)+rt(x)

    p*.

    Convolutional CodeExample3-stage feedback shift registerg(x) = 1+x1+x3 000001outputtimeinputX0+ctX1+ctX2-1000output=ct0101001000102000013010+10+104000115010+10+11a0(x)=1c0(x)=0 , r0(x)=1a1(x)=xa2(x)=x2c1(x)=0 , r1(x)=xa3(x)=x3a4(x)=x4a5(x)=x5c2(x)=0 , r2(x)=x2c3(x)=1 , r3(x)=1+xc4(x)=x , r4(x)=x+x2c5(x)=x2+1 , r4(x)=1+x+x2Inputa=100000at(x)=xat-1(x) =xct-1(x)g(x)+xrt-1(x)t0

    p*.

    Convolutional Code(n=5,k=2,d=3) cyclic linear codeExample 8.1.9Generator polynomialg(x)= 1+x+x3Parity check matrix H3-stage feedback shift registerGenerator polynomialg(x)= 1+x+x3rt(x)=at(x) mod g(x)0t4n-1=5Input10000length=5==

    p*.

    Convolutional Code

    Generator polynomialg(x)= 1+x+x3

    time0-101234input10110001000101011+11+1000000010outputExample 8.1.10g(x) = 1+x1+x3 0110100010a=10110a(x)=x+x2+x4c(x)=xr=000r(x)=0X0+ctX1+ctX2

    p*.

    Convolutional Code[2] Encoding convolutional codes(n,k,m) convolutional code(n,k,m)CV m(m+1)-stage shift registernthe number of (m+1)-stage shift registers ((m+1)-SRi)generatorkshift k bits into (m+1)-stage shift registerInput of (m+1)-SRi Output of (m+1)-SRici(x)=m(x)gi(x)

    (n,k,m)CV={c(x)|(c1(x),c2(x),,cn(x))}

    p*.

    Convolutional Codec1=c1,0c1,1c1,2c1,3 g1(x)=g1,0+g1,1x++g1,mxmc2=c2,0c2,1c2,2c2,3 g2(x)=g2,0+g2,1x++g2,mxmcn=cn,0cn,1cn,2cn,3 gn(x)=gn,0+gn,1x++gn,mxm(m+1)-SR1(m+1)-SR2(m+1)-SRn(n,k,m)CV ={c(x)|(c1(x),c2(x),,cn(x))}InputX0X1Xm+1

    p*.

    Convolutional CodeExample (n=2,k=1,m=3) CVg1(x)=1+x+x3m(x)c1(x)(2,1,3) CV={c(x)=(m(x)(1+x+x3) , m(x)(1+x2+x3)) | }c2(x)g2(x)=1+x2+x3g1(x)=1+x+x3m(x)c1(x)c2(x)g2(x)=1+x2+x3

    p*.

    Convolutional Code (a) The message m(x)=1+x2 is encoded to c(x)=((1+x2)g1(x), (1+x2)g2(x)) =(1+x+x2 +x5, 1+x3+x4 +x5) (b) The message m(x)=1+x2 +x3+=1+x2+ is encoded to c(x)=(1+x3+x4 +x5+, 1+x+x3+x4+x5+) Example 8.2.1(2,1,3) CVg1(x)=1+x+x3m(x)c1(x)c2(x)g2(x)=1+x2+x3(2,1,3) CV ={c(x)=(m(x)g1(x), m(x)g2(x)}

    p*.

    Convolutional Codeconvolutional codes are linear codes(n,k,m) convloutional code (n,k,m)CVTwo codewordsc(x),c(x) c(x)+c(x)=(c1(x),c2(x),,cn(x))+ (c1(x),c2(x),,cn(x)) =(m(x)g1(x),, m(x)gn(x))+ (m(x)g1 (x),, m(x)gn (x)) =((m(x)+m(x))g1(x),, (m(x)+m(x))gn(x)) =(m(x)g1(x),,m(x)gn(x)) = (c1(x),c2(x),,cn(x)) =c(x)

    p*.

    Convolutional CodeInterleaved form of a (n,k,m) CV(n,k,m)CV={c(x)|(c1(x),c2(x),,cn(x))}ci(x)=ci,0+ci,1x+ci,2x2+ci,3x3+ , , 1in , and 0jc(x)=( c1,0 + c1,1 x + c1,2 x2 + c1,3 x3 + ,c2,0 + c2,1 x + c2,2 x2 + c2,3 x3 + ,c3,0 + c3,1 x + c3,2 x2 + c3,3 x3 + ,cn,0 + cn,1 x + cn,2 x2 + cn,3 x3 + )c = c1,0 c2,0 cn,0 , c1,1 c2,1 cn,1 , c1,2 c2,2 c n,2 , c(x)=c1(xn)+c2(xn)x +c3(xn)x2+c4(xn)x3+.interleaved form1x1xn-1xnxn+1x2nPoly. termsx2n+1x2n+2

    p*.

    Convolutional Code The message m(x)=1+x2 is encoded to c(x)=(c1(x),c2(x))=((1+x2)g1(x), (1+x2)g2(x)) =(1+x+x2 +x5, 1+x3+x4 +x5) (11100100 , 10011100) The interleaved representation of c and c(x) are c=11 10 10 01 01 11. c(x)= c1(x2)+c2(x2)x = 1+x2+x4+x10+(1+x6+x8+x10)x=1+x+x2+x4+x7+x10+x11Example 8.2.5(2,1,3) CVg1(x)=1+x+x3m(x)c1c2g2(x)=1+x2+x3(2,1,3) CV ={c(x)=(m(x)g1(x), m(x)g2(x)}

    p*.

    Convolutional CodeThe rate of a (n,k,m) convolutional codeThe rate of a (n,k,m)CV is defined to be k/n.convolutional code with k>1Example 8.2.7(3,2,3) CVg1(x)=1+x3, g2(x)=1+x+x3, g3(x)=x+x2+x3inputc2c3c1timeinputX0X1X2X3-1000000 1010011 0100121 0101031 1111040 00011c100111c2c350 000000Inputm=10 01 01 11 00 00 .101010111000

    p*.

    Convolutional CodeProperty00a3a2a1a0a1a000a3a2a1a0Example(1,2,3) CVX0X1X2X3g (x)=1+x+x30000c00a3a2a1+a0ainputoutputa3+a2+a00000a3a2a2

    p*.

    Convolutional Codeg (x)=1+x+x3cg1 (x)=10a3a1X0X20a2a0X1X3g2 (x)=1+xc2c1c00a3a2a1a0c1(x) =(a1+a3x)1c2(x) =(a0+a2x)(1+x)= a0+(a2+a0)x+a2x2c(x)=c1(x)+c2(x) =(a1+a0)+(a3+a2+a0)x+a2x2X0X1X2X3

    p*.

    Convolutional CodeGenerator matrix of a (2,1,m)CVGenerator matrixGInput sequencem=m0m1m2Output sequencec=mG (interleaved form)c1=c1,0c1,1c1,2c1,3 g1(x)=g1,0+g1,1x++g1,mxmc2=c2,0c2,1c2,2c2,3 g2(x)=g2,0+g2,1x++g2,mxmInput m(2,1,m)CV={c|c=mG}c=c1,0c2,0 c1,1c2,1 g1,0g1,1g1,mg2,0g2,1g2,m

    p*.

    Convolutional Code(1) inputm=m0c1,0 = m0g1,0c2,0 = m0g2,0c = [c1,0 c2 ,0]=[m0 g1,0 m0g2,0] = m0[g1,0 g2,0] outputc=c1,0 c2,0

    p*.

    Convolutional Codec1,0=m0g1,0c2,0=m0g2,0(2) inputm=m0m1outputc=c1,0 c2,0 c1,1c2,1c1,1=m0g1,1+m1g1,0c2,1=m0g2,1+m0g2,0c=[c1,0 c2,0 c1,1c2,1]

    p*.

    Convolutional Code(3) inputm=m0m1m2 meoutputc=c1,0 c2,0 c1,1c2,1 c1,2c2,2 .g1,0g2,0g1,1g2,1g1,0g2,0g1,2g2,2g1,1g2,1g1,m-2g2,m-2g1,m-2g2,m-2g1,m-1g2,m-1g1,0g2,0g1,m-3g2,m-3g1,m-2g2,m-2g1,m-1g2,m-100ex2eG=

    p*.

    Convolutional Code Example(2,1,3) CVGeneratorg1(x)=1+x+x3 g2(x)=1+x2+x3Inputm=1010001 1 0 11 0 1 1111011101101101101111011011110110111c=mG=[ 1 0 1 0 0 0 ]006x12=[ 1 1 1 0 1 0 0 1 0 1 1 1 ]

    p*.

    Convolutional Codestate diagram of (n,1,m) convolutional code statethe contents of the first m registers in the shift register. (s=s0s1.sm-1)zero stateeach of the first m registers contains 0.

    inputX0X1Xms0s1Xm-1Example(1,1,m) CVtime ts0s1.sm-1time t+10s0s1.sm-21s0s1.sm-2orInput=0 or 1g(x)=g0+g1x++gmxmtime t-1s1s2.sm-10s1s2.sm-11Input=s0

    p*.

    00111110010011100100001001011011g1(x)=1+x+x3c1c2g2(x)=1+x2+x3mExample 8.2.9(2,1,3)CVState diagram000ttimestatet+1c1c2000100input 0input 10 0 0 01 0 0 0X0X1X2X3c1c2=output0 0input011 1

    p*.

    00111110010011100100001001011011g1(x)=1+x+x3c1c2g2(x)=1+x2+x3mtime-1state0000input110011Example 8.2.9encoding convolutional code by state diagram Inputm=101(2,1,3)CVState diagram10010102101010

    p*.

    Tabular formA state diagram of a (n,1,m)CV can also be represented in tabular form.

    0011111001001110010000100101101100000101001110010111011100011011111001001110010000011011X0X1X2X30 1 1 01 1 0 0 1 10 1 1 11 1 1 0 1 1X1X2X3X0X1X2Example (2,1,3)CV

    p*.

    Convolutional Code[3] Decoding convolutional codesIdea of decoding convolutional codes

    Consider C1 in example 8.2.1. Suppose that the received word is * But there is no directed walk that would give an output of w. Therefore we are faced with finding a codeword that most likely (minimum hamming distance) fits w . encoder of convolution codenoisechanneldecoder of convolution code

    p*.

    Convolutional Code. Window size Window size is the amount of received codeword w we see when making each decoding decision.Hamming distanceHd(w1,w2). Hamming weight Hw(w1).

    p*.

    Convolutional CodeExhaustive decoding algorithm (window size =1)input received word w=11 10 10 01outputcorrect decoding message 1 0 1 0 00111110010011100100001001011011Walk (1)(2)(3)(4)The length of the walk : 4

    p*.

    Convolutional Codeinput received word w=11 00 00 00 outputmost likely decoding message 1 1 1 0 *(1)walk and decode message digit 1.(2)walk ?Random choosing one to decode message digit. (say, choose 110)00111110010011100100001001011011(1)(2)(4)(3)(3)walk and decode message digit 1.(4)walk and decode message digit 0.

    p*.

    Convolutional CodeExhaustive decoding algorithm (window size =2)input received word w=11 00 00 00 and window size =2outputmost closely message(tick 0) We start at state 000 in Example 8.2.9 state diagram. (tick 1) we see w=11 00

    We make the decoding decision to move to state 100 and decode first message digit as 1. 000, 000, 000000, 000, 100000, 100, 010000, 100, 11000 0000 1111 1011 012411walkoutputDistance from 11 00

    p*.

    Convolutional Code (tick 2) we see w=00 00

    We make the decoding decision to move to state 110 and decode first message digit as 1. 100, 010, 001100, 010, 101100, 110, 011100, 110, 11110 0110 1001 1101 002231walkoutputDistance from 00 00

    p*.

    Convolutional CodeCatastrophic (n,1,m) CVIf its state diagram contains a zero weight cycle different form the loop on the zero state.For n=2, gcd(g1(x), g2(x)) !=1 if and only if the (2,1,m) CV is catastrophic.

    Example :g1(x)=1+x3=(1+x)(1+x+x2)gcd(g1(x),g2(x))=1+x+x2g2(x)=x+x2+x3=x(1+x+x2)

    p*.

    Convolutional CodeThe minimum distance of a convolutional codeWe are only considering non-catastrophic convolutional codes.

    00111110010011100100001001011011(2,1,3) CV=C1Example :d(C1)=Hw(11 10 01 11 00 00 )=6

    p*.

    Convolutional Code(e)

    Given a non-catastrophic convolutional code C for

    define (e) to be the least integer x such that all walks of length x in the state diagram that immediately leave the zero state have weight greater than 2e.

    p*.

    Convolutional CodeTheorem 8.3.4Let C be a non-catastrophic convolutional code. For any e, if any error pattern containing at most e errors in any (e) consecutive steps occurs during transmission, then the exhaustive decoding algorithm using the window size (e) will decode the received word correctly. 00111110010011100100001001011011(2,1,3) CV=C1Example :e=1Hw(11 10)=3Hw(11 02)=3

    p*.

    Convolutional Code00111110010011100100001001011011e=2Hw(11 10 00 00 10 00)=4 (Hamming weight on 6 red edges)Choose(since the Hamming weight of any walk of length 7 > 2e=4)

    p*.

    Convolutional CodeHow many errors can be corrected?Theorem 8.3.4 says that if we use the exhaustive decoding algorithm with window size (1) , then all error patterns with at most e=1 error in any (1) =2 consecutive ticks will be corrected. So for example, the error pattern e1 = 10 00 01 00 01 00 10 will be corrected.Also if we use the exhaustive decoding algorithm with window size (2), then all error patterns with at most e=2 errors in any (2)=7 consecutive ticks will be corrected. So for example, the error pattern e2 = 11 00 00 00 00 00 00 will be corrected.

    p*.

    Convolutional CodeExhaustive decoding algorithm vs truncated Viterbi decoding algorithm

    Notice that the exhaustive decoding algorithm with window size (e) requires that we consider all walks of length to be the least integer x such that all walks of length (e) from the current state for each message digit to be decoded. Constructing all 2^(e) such walks at each tick is very time consuming, so we will present a faster truncated Viterbi decoding algorithm (dynamic programming approach) in the next section.

    p*.

    Convolutional Code[4] Truncated Viterbi decodingThis algorithm only makes 2m calculations and stores 2m walks of length at each tick. The window size is chosen to be between 4m to 6m (a number more than (e)).For the first m ticks the decoder is still storing all walks from the zero state, each ending in a different state, so t=m is the first time at which we have exactly one walk ending in this state.For t>m, each state s saves an optimal walk W(s;t) and its corresponding distance d(s;t).Once t>= , a message digit is decoded at each tick.W(s;t)=x0 x1 x-1 : optimal walk from current decoded state to state s at tick t (stored as a sequence of message digits, rather than a sequence of states). d(s;t) : distance between the outputs of W(s;t) and the corresponding received words

    p*.

    Convolutional CodeAlgorithm 8.4.1 truncated Viterbi decoding of (n,1,m) convolutional codes with windows size Input received word w=w0w1.. each wi consists of n digitsOutputmost closely message

    sstate s = s0s1sm-1 (1) Initializationt=0 , define W(s ; t)= s0s1sm-1 (of length )

    if s is the zero stateotherwise(a)(b)

    p*.

    Convolutional Code

    (2,1,3) CV code, = 5 (in Example 8.2.1)Example

    p*.

    Convolutional Code(2) Distance calculationt>0 For each state s, define the distance between the input wt-1 and the output on the directed edge from state (s1,,sm-1,i) to s, i=0,1.(a)(b)

    p*.

    Convolutional CodeExamplew=w0w1w2w3=00 11 01 11 .(2,1,3) CV code, = 5 (in Example 8.2.1)S=S0S1S2=011When t=1,i=0i=1

    p*.

    Convolutional Code(3) Walk calculation (a) If form W(s,t) from by adding the leftmost digit of s to the left of and then deleting the rightmost digit. S=s0s1sm-1 Example{i,j}={0,1}

    p*.

    Convolutional Code (b) If W(s,t) from by adding the leftmost ] digit of s to the left of , replacing each digit that disagrees with with , and then deleting the rightmost digit.whereExampleS=s0s1sm-1 Then

    p*.

    Convolutional Code(4) Decoding For t, let If the rightmost digit in W(s;t) is the same, say i, for all then decode the message digit i; otherwise decode the message digit . 00000001001000010100011010000011000101100001110001111000Artificial Examples000100010110001101011111Sd(s,t)W(s,t)22334433S(t)={000,100}Decode to 000000001001001010100011010000011000101100001110001111000000100010110001101011111Sd(s,t)W(s,t)22334433S(t)={000,100}Decode to *=7(1)(2)

    p*.

    Convolutional Code2. E.g 8.4.2consider convolutional code C1 in Example 8.2.1State diagram of (2,1,3) convolutional code in Example 8.2.1

    Received wordw=w0w1w2..=11 00 00 ..=7

    00111110010011100100001001011011

    p*.

    Convolutional Code00010001011000110101111100011011111001001110010000011011t=0t=0W(s;0)=s for all state s;d(000;0)=0 and d(s;0)= for all states s other than the zero state.0, 000****, 100****, 010****, 110****, 001****, 101****, 011****, 111****W(s;t)

    p*.

    Convolutional Codet=1wt-1=w0=11s=000s=010s0W(000,0)=0000****W(000,1)=0000***s0W(010,0)=010*****W(100,0)=100****W(101,0)=101****W(010,0)=10*****W(010,1)=010***input = 0 =S0input = 0 =S0

    p*.

    Convolutional Code000100010110001101011111t=00, 000****, 100****, 010****, 110****, 001****, 101****, 011****, 111****t=12, 0000***0, 1000***, 010****, 110****, 001****, 101****, 011****, 111****00011011111001001110010000011011

    p*.

    Convolutional Code000100010110001101011111t=22, 00000**4, 10000**1, 01000**1, 11000**, 001****, 101****, 011****, 111****t=2,3 w1=00, w2=00t=32, 000000*4, 100000*5, 010000*5, 110000*2, 001000*2, 101000*3, 011000*1, 111000*00011011111001001110010000011011

    p*.

    Convolutional Codet=4wt-1=w3=00s=100s=010s0W(001,3)=1001000*W(100,4)=1001000input = 1 =S0s0W(101,3)=0101000*W(010,4)=0101000input = 0 =S0

    p*.

    Convolutional Code000100010110001101011111t=42, 00000002, 10010003, 01010003, 11010004, 00110004, 10110001, 01110003, 1111000t=32, 000000*4, 100000*5, 010000*5, 110000*2, 001000*2, 101000*3, 011000*1, 111000*00011011111001001110010000011011

    p*.

    Convolutional Codet=5wt-1=w4=00S=000s0W(000,4)=00000000W(000,5)=0000000s0W(010,0)=100**000W(000,4)=0000000W(001,4)=0011000W(010,0)=00**000W(010,1)=100**00input = 0 =S0S=100input = 1 =S0

    p*.

    Convolutional Code000100010110001101011111t=62, 00000002, 10011103, 01011103, 11011104, 001**104, 101**103, 01110103, 1110010t=52, 00000004, 100**003, 01001003, 11001002, 00111002, 10111003, 01111003, 111010000011011111001001110010000011011t=72, 00000004, 100****3, 01001113, 11001114, 001*1*14, 101*1*13, 01110113, 1110111t=7wt-1=w6=00. We have reached t=. So we decode the rightmost digit in W(000,7)=0000000, namely 0.Since d(000,7)=2


Recommended