前言
本文对数字通信技术中的信道编码及译码进行学习记录。
数字通信,就是把一切声音,图像,文字,都变成 0,1 这种二进制代码,这种转换过来的数据,我们可以称之为原始数据 bit 那么,这种原始的 bit,是否可以直接调制,转换成电磁波发送出去呢?答案是不可以,因为电磁波传输过程中,一定会存在于扰和噪声,从而产生差错
下图为数字通信系统模型
数字通信系统模型
一、什么是信道编码?
首先引用书上的定义对信道编码进行一下讲解:
信道编码(Channel Coding)的作用是进行差错控制。数字信号在传输过程中会受到噪声等影响而发生差错。为了减小差错,信道编码器对传输的信息码元按一定的规则加入保护成分(监督码元),组成所谓“抗干扰编码”。接收端的信道译码器按相应的逆规则进行解码,从中发现错误或纠正错误,提高通信系统的可靠性。
下面我们举个例子形象描述一下。
假设,我们把 “你好” 这两个字转换成 0,1 代码,比如用 00 和 01 分别代表你和好,在我们发送 00 时,因干扰原因,导致我们发送的数据变成了 01,那么我们发送的信息本来应该是“你”,而被接收端识别成了“好”,如下图所示:
我们为了抗干扰,就需要增加一个步骤,来让我们的数据具备“一定程度上的纠正干扰产生的差错的能力”,这个步骤就叫信道编码。
二、信道编码的基本逻辑—冗余数据
在进行信道编码时,需要增加冗余数据来达到抗干扰的效果,以下图为例,在运输花瓶时,为避免花瓶运输路途中破碎,我们增加一个泡沫箱子,再打包后通过快递进行发送,这里面的泡沫箱子及顺丰快递箱子就可以类似于冗余数据。
我们这里列举一些常用的冗余数据。
1、奇偶检验码
原始数据 100101100
- 奇校验:1001011001,校验位为 1,让 1 的总数变成奇数 5
- 偶校验:1001011000,校验位为 0,让 1 的总数保持为偶数 4
增加的 1bit 位,为校验位,也就是冗余 bit
假设使用奇校验:1001011001
- 传输过程中,错 1 位:1011011001,可以发现错误
- 传输过程中,错 2 位:0011011001,发现不了错误
奇偶校验码只具备检错的能力,而不具备纠错能力
2、重复码
原始信息 1 或者 0
编码
- 1 ——> 111
- 0 ——> 000
当受到干扰导致错 1 位的时候,可以达到纠错的效果
当受到干扰导致错 2 位的时候,不可以达到纠错的效果
三、编码率
R = K/N
K:有用 bit 数据
N:编码后的 bit 数据
以前面的码为例,原始数据 100101100 共 9 bit,奇校验: 1001011001 共 10 bit,编码率 R = 9 / 10 = 0.9 R=9/10=0.9R=9/10=0.9
重复码编码率 R = 1 / 3 R=1/3R=1/3
- 1/3 编码,表示 3 个编码后的比特中,包含 1 个有效比特;
- 1/4 编码,表示 4 个编码后的比特中,包含 1 个有效比特;
编码率越低,包含的几余信息越多,纠错的能力越强,抗干扰的能力越强,传输的有效数据越小
四、4G 和 5G 的信道编码
4G 的信道编码包括卷积码和 turbo 码,5G 的信道编码包括 polar 和 ldpc 码。
1、卷积码
卷积码一般使用(n , K , N n,K,Nn,K,N)表示卷积编码器。
- K KK 表示:输入的 K 个 bit (需要编码的原始 bit 数)
- n nn 表示:输出的 n nn 个 bit 编码后的 bit 数
- 编码率 R = K / n R=K/nR=K/n
- N NN:编码约束度 (实际上就是寄存器的个数)
卷积码将 K KK 个信息码元编为 n nn 个码元时,这 n nn 个码元不仅与当前的 K KK 个信息有关,也与前面的 N − 1 N-1N−1 段信息有关
参考下面的例子:
信道编码译码及MATLAB仿真(二)https://developer.aliyun.com/article/1472341