编码理论(英语:Coding theory)是研究编码的性质以及它们在具体应用中的性能的理论。编码用于数据压缩、加密、纠错(英语:error-correction),最近也用于网络编码中。不同学科(如信息论、电机工程学、数学以及计算机科学)都研究编码是为了设计出高效、可靠的数据传输方法。这通常需要去除冗余并校正(或检测)数据传输中的错误。
编码共分四类:
数据压缩和前向错误更正可以一起考虑(英语:Joint source and channel coding)。
信源编码试图压缩来自信源的数据以使传输更高效。这种做法每天都能在互联网上见到,因为在互联网上使用常见的ZIP格式来降低网络负载,使文件更小。
第二种,信道编码,加入额外的数据位以使在传输信道有干扰存在的时候数据传输的强健性更强。普通用户可能不知道许多应用中都使用了信道编码。平常的音乐CD使用里德-所罗门码来纠正划痕和灰尘。在此应用中传输信道就是光盘本身。手机也使用编码技术纠正高频无线电传输的衰落和噪声。数据调制解调器、电话传输、NASA都采用信道编码技术来传输信息,例如涡轮码(英语:turbo code)和低密度码。
1948年,克劳德·香农发表了《通信的数学理论》,这篇文章由《贝尔系统技术杂志》的七月和十月刊分两部分发行。该文重点研究了如何最有效地对发送者要发送的信息进行编码的问题。在这篇基础性的论文中,他使用了诺伯特·维纳发展的概率论工具,而这些概率论工具用于通信理论在当时还尚处萌芽阶段。香农提出信息熵作为消息不确定性的量度,而实质上创造了信息论这个领域。
二进制戈莱码(英语:binary Golay code)在1949年被提出。更具体地说,它是一种每个24位字能够纠正三个错误、检测出第四个错误的纠错码。
理查德·汉明因在贝尔实验室在数值方法、自动编码系统以及错误检测和纠错码的成就于1968年获得了图灵奖。他发明了汉明码、汉明窗、汉明数和汉明距离等概念。
信源编码的目的是让源数据变小。
信源的熵是信息的度量。基本上,信源编码在尽量减少信源的冗余,用携带更多信息的更少的比特来表示信源。
明确试图根据特定的假定概率模型来最小化消息的平均长度被称为熵编码。
有各种采用信源编码方案试图达到信源熵的极限的技术。() ≥ (),其中 () 为信源熵(比特率),() 为压缩后的比特率。特别指出,没有源编码方案可以比信源的熵更好。
传真传输使用简单的游程编码。信源编码去除所有发射机必要发送以外所有多余数据,降低了传输所需的带宽。