例:
110110001101
第一步:求phrases
取1
110110001101第二个应该取1 但是1已经在前面有了 故后退一位 取10
110110001101第三个应该取1 但是前面已经有1了 继续后退一位 取11
以此类推
取得1,10,11,0,00,110,1
X={0,1},J=2(只有0和1)。
第二步:求m
1.第一位1,在前面没有重复,m=0
2.第二位10,取10是因为10中的1与1中的1重复 所以m=1
3.第三位11,取11 是因为11中的1已经在第1次被取到了,所以m=1
4.第四位0,前面没有重复 m=0
5.第五位00,取00是因为00中的0在4中已经有0了 所以m=4
6.第六位110,取110是因为110中1在1中已经取了,再往后一位11已经在3中取了,所以m=3
7.第七位1,这个是单独的1, 与1中的1不一样,m=0
第三步:求j
j就是第一步中所求字符的末位
j={1,0,1,0,0,0,1}
第四步:求length
i=1 | 1 |
i=2 | 10 |
i=3 | 11 |
i=4 | 0 |
i=5 | 00 |
i=6 | 110 |
i=7 | 1 |
length=log J (i) 向上取整 +1
即以J为底,i 的对数,加一
在这里J=2(看第一步)
phrase | length |
1 | 1 |
10 | 2 |
11 | 3 |
0 | 3 |
00 | 4 |
110 | 4 |
1 | 4 |
第五步:求codewords
十进制codewords=m * J + j
即
i | codewords |
1 | 1 |
2 | 2 |
3 | 3 |
4 | 0 |
5 | 8 |
6 | 6 |
7 | 1 |
最后把codewords转换为J进制 在这里就是2进制 再把codewords变为指定length长度 长度不够用0补齐
即
i | length | codewords |
1 | 1 | 1 |
2 | 2 | 10 |
3 | 3 | 011 |
4 | 3 | 000 |
5 | 4 | 1000 |
6 | 4 | 0110 |
7 | 4 | 0001 |
编码完成 看得很晕