lcytms 发表于 2018-3-23 16:21:28

0934
        B3是1,B1是0,B0是1。
        异或为0。

lcytms 发表于 2018-3-23 16:22:36

0935
        C0就填0。
        然后P1。
        P1是第二组,C6、C5、C2。
        P1=B3异或B2异或B0。
        B3是1,B2是1,B0是1。
        异或为1。

lcytms 发表于 2018-3-23 16:24:46

0936
        最后P2。
        P2是第二组,C6、C5、C4。
        P2=B3异或B2异或B1。
        B3是1,B2是1,B1是0。
        异或为0。

lcytms 发表于 2018-3-24 14:39:39

0937
        所以编码出来就是1100110。
        这就是编码得到的汉明(7,4)码。
        在传输的过程中,假设它有一个比特发生错误,1100110,传过去以后,变成了1110110。
        这个0反了,变成了1。
        原来是1100110,受到噪声干扰以后,变成了1110110。

lcytms 发表于 2018-3-24 14:40:50

0938
        然后呢,我们来看,这三组检测到的情况。
        首先看第一组。
        G1,是6420,1异或1异或1异或0=1。
        说明第一组不是偶校验了。

lcytms 发表于 2018-3-24 14:41:52

0939
        偶校验,异或出来应该为0。
        它为1,就说明这个时候1的个数是奇数,是0就说明是偶数。
        说明什么?
        说明有错了,G1这一组有错。
        然后看其它。
        G2,第二组是6521,1异或1异或1异或1=0。

lcytms 发表于 2018-3-25 11:17:23

0940
        第二组是对的。
        然后看第三组。
        G3,第二组是6543,1异或1异或1异或0=1。
        第三组有错。
        这个PPT上的写法跟我白板上的写法不一样。

lcytms 发表于 2018-3-25 11:19:43

0941
        G1这一组有错。
        G3有错。
        G2是对的。
        G1、G3的交集只有C4和C6。
        G2又把C6排掉了。
        剩下来就是什么?
        C4了。
        所以检测出来C4有错。
        果真是它有错。
        C4有错,因为是二进制嘛,有错,纠错即可。
        原来是1,就改成0。
        原来是0,就改成1。

lcytms 发表于 2018-3-25 11:42:13

0942
        所以说C4有错,把这个1纠正过来。
        1100110。
        这个呢,就是一种线性分组码。
        除了汉明(7,4)码以外,还有一些其它的线性分组码。
        我现在来给大家做一份代码。
        我们做一个汉明码,汉明码的编码译码器。
        这个过程应该比通信要好理解一点。
        线性分组码,就是根据集合来判断。

lcytms 发表于 2018-3-26 21:37:06

0943
        下面我们把它的代码模型完成一下。
        用电路来实现。
页: 1 2 3 [4] 5 6 7 8 9 10 11 12 13
查看完整版本: 跟李凡老师学FPGA扩频通信D03:串行通信汉明纠错码(20170...