1700506640
图9-4 使用4P4C的56kbps调制解调器
1700506641
1700506642
在这种传输中,如果存在干扰,的确有可能使余弦载波在传输的过程中失真,进而导致接收端的误判,即在信噪比较低的情况下把1判断成0或者把0判断成1。为了让通信更为可靠,在保证信息传播不失真的情况下就需要加入一些冗余信息来纠错。例如,在传输一个8bit数字的时候,实际编码只占7位,留1位纠错。
1700506643
1700506644
10101010
1700506645
1700506646
例如,前7位是对一条包含128个不同含义的消息进行编码,最后1位作为冗余校验(如图9-5所示)。在发信端发出这条消息之前,对前7位进行异或计算(XOR),把计算结果填入最后1位作为校验值。接收端拿到整个信息后,先检验前7位的异或计算结果是不是与最后1位吻合。如果吻合,就认为传输正确;如果不吻合,就认为传输错误,并要求对方重传。刚刚说的这种方式在一个信道的传输错误率严格小于12.5%的情况下是可行的。不过也能看出,一旦同时传错2位,就无法发现传输中的错误了。但是,对信噪比来说,更差的情况也就是误传率更高的信道,这时可以通过再增加1位校验位的方式纠错。原理与前面讲到的类似,只不过有效的信息编码只剩下6位,也就是只能对64个有效的信息进行编码。这种现象在我们使用Wi-Fi上网的时候并不鲜见,表现为信号越弱的时候上网速度越慢,原因是大量的消息传输都用来做冗余信息了。
1700506647
1700506648
1700506649
1700506650
1700506651
图9-5 二进制振幅监控信号波形
1700506652
1700506653
这些对于编码的纠错和调整,都已经由通信领域的科学家们研究清楚,并将功能植入上网的模块中了,所以这类模块才能以极低的价格量产,并在实际应用中适应各种恶劣的环境。这是数据科学在通信和信息领域的一种完美体现。
1700506654
1700506655
1700506656
1700506657
1700506659
数据科学家养成手册 9.5 编码与压缩
1700506660
1700506661
有了信息熵公式以后,信息学的发展就变得与原来大为不同。为了提高存储和传输的效率,越来越多的科学家致力于研究通过高效的编码算法和压缩算法来保证在不丢失信息的情况下使占用的空间或信道最少的问题。
1700506662
1700506663
早在20世纪50年代,美国的信息学教授戴维·哈夫曼(4)(如图9-6所示)还在麻省理工学院读博士的时候,在一篇名为A Method for the Construction of Minimum-Redundancy Codes的论文中就提出了一种编码方式,这就是著名的哈夫曼编码(Huffman Coding)。
1700506664
1700506665
在哈特莱提出的I=log2m的信息量计算公式中,通过信源种类m的数量可以得出使用多少位介质来表示一个信息。以1字节的二进制数据为例,它有8bit,最多可以表示m为256的情况。如果要传输1000字节,则需要在信道上传输1000组诸如01010101、10100111、11000110这样的8位编码,共8000bit。
1700506666
1700506667
1700506668
1700506669
1700506670
图9-6 戴维·哈夫曼
1700506671
1700506672
而根据香农的信息熵公式
1700506673
1700506674
1700506675
1700506676
1700506677
可以很快得出一个推论,那就是:只要每种信源产生的概率不均等,那么在刚刚这种场景中,传输1000组编码理论上肯定可以使用少于8000bit的数据,方法就是用比较短的编码来表示高频出现的字符。
1700506678
1700506679
我们以传输6种不同的字符信息为例(如表9-1所示)。
1700506680
1700506681
表9-1 6种不同的信源字符
1700506682
1700506683
1700506684
1700506685
1700506686
如果要传输1000组3bit定长编码信息,那就是需要传输3000bit的数据。但是,如果按照出现的概率不同,把大概率的数字换成较短的编码,情况会有所不同。
1700506687
1700506688
1700506689
[
上一页 ]
[ :1.70050664e+09 ]
[
下一页 ]