7

4B/5B编码

4B/5B 编码

从 4B/5B 编码方案 dataward 0000 编码为 11110 码字,类似地 0001 编码为 01001 等。

这里两个码字之间的异或运算的结果将是另一个有效的码字。

例如 11110 和 01001 的 XOR 是另一个码字 10111,其数据字是 1011。这里我没有问题。

同样,为了避免直流分量,使用了 NRZ-I 线路编码方案。结果,输出码字中没有三个连续的零。码字中不再有一个标题和两个尾零。我们不用担心 NRZ-I 编码方案中的个数。

但是,我如何将 0000 编码到 11110 或 0001 到 01001 以及我应该为这种编码方案应用哪种算法。

我也搜索谷歌和学习书籍。但是他们到处都在说同样的事情,但我没有得到答案。

提前致谢

4

1 回答 1

7

十进制表示

为了正确理解这种机制,我们应该考虑所有代码字的十进制值。仔细观察上表我将你表的所有二进制值转换为十进制形式。

现在为了避免传输过程中的直流分量,我们应该只考虑不超过一个起始零和两个拖尾零的码字。所以我们得到每两个连续的数据字被分配给另外两个连续的码字。

像这样

(2,3) 至 (20,21),

(4,5) 至 (10,11)

(6,7) 至 (14,15)

(8,9) 至 (18,19)

(10,11) 至 (22,23)

(12, 13) 至 (26,27)

(14,15) 至 (28,29)

例外

(0,1) 到 (30,9)

1 分配给 9 因为从 0 到 8 (包括在内)的所有码字都因过多的零而无效。因此,第一个有效代码字 9 被分配给 1。如果所有有效代码字被连续分配,则在传输过程中仅更改一个位(单个位错误),它将转换为下一个或前一个代码字,并且该错误将保持未被检测到。

我们知道,在块编码中,如果一个有效的码字在传输过程中由于错误而被转换为另一个有效的码字,它将保持未被检测到,这是块编码的一个限制。因此为了避免这种情况,这些所有有效的代码字都不会连续分配数据字。

于 2017-07-14T15:29:00.880 回答