# How to read Nasa Convolutional code?

Here is a picture from Andrew S. Tanenbaum, Computer Networks, 5th edition, Chapter 3 (The data link layer), Page 207(English Version)/Page 206(Japanese Version):

I want to verify whether my interpretation is correct or not. My interpretation is in the picture that has red arrows.

From the picture, I made a table to understand easily the internal condition of Nasa Convolutional code.

So from my interpretation, I got

Out1:Input+S2+S3+S5+S6 .. formula(1) Out2:Input+S1+S2+S3+S6.. formula(2)

From the excerpt Andrew S. Tanenbaum, Computer Networks, 5th edition, Chapter 3 (The data link layer), Page 208:

We know that when internal state is 100000, the output will be 11.However, when I use formula(1) and formula(2), I didn't get 11 but instead I got 10.

Out1:Input+S2+S3+S5+S6=1+0+0+0+0=1 Out2:Input+S1+S2+S3+S6=1+1+0+0+0=0

My question is, is my interpretation is correct? If it's correct, why don't I get the output 11? If it's wrong, where did I get it wrong? Please teach and correct me.

It looks like you are taking the "internal state" as each row in your table from input to s1, all the way to s6. But internal state is defined as from s1 to s6.

So internal state is 7 digits, not 6. And it is:

1. Row 1 - 000000, output 00
2. Row 2 - 100000, output 11
3. Row 3 - 110000, output 10
4. Row 4 - 111000, output 01

Compare rows 2 to 4 and you can see it matches with what the author wrote.

• My question is I don't get it why Out1:Input+S2+S3+S5+S6 and Out2:Input+S1+S2+S3+S6 produce different answer. When internal condition is 100000, the output should be 11 but when I use formula Out1 and Out2(The one that I wrote in this comment and post), the output become 10. The table that I showed you is the the calculation that I made when I read input as S1, S1 as S2, S2 as S3, S3 as S4, S4 as S5, S5 as S6 and I got correct result but I realized the way I read the convolutional code is wrong but now i think the way I read the convolutional code is correct but why I don't get right answer? May 27 '20 at 9:09
• Ok, I misunderstood your question. When input is 1 and internal states are 000000, then output is 11. When input is 1 and internal states are 100000, then output is 10 (as you found). When input is 1 again and internal states are 110000, then output is 01. And so on .. Notice that he wrote the internal states 100000, etc., "after the first, second and third bits have been input", whereas the output bits, starting with 11, are from before the input bits are shifted in. May 27 '20 at 9:22