通信原理学习笔记4:信道编码、分组码、卷积码、现代信道编码(Turbo码、LDPC码、Polar码)

您所在的位置:网站首页 通信中常用的编码 通信原理学习笔记4:信道编码、分组码、卷积码、现代信道编码(Turbo码、LDPC码、Polar码)

通信原理学习笔记4:信道编码、分组码、卷积码、现代信道编码(Turbo码、LDPC码、Polar码)

2024-07-04 11:43| 来源: 网络整理| 查看: 265

信道编码 / 前向纠错码FEC

思想是在数据中增加冗余信息,即校验码元 / 监督码元,从而检错、纠错

信道编码的优劣评判 首先,最基本的是要追求低差错率

实现纠错很简单,只要多添加冗余信息就好;但实际中,我们还需要考虑编/译码复杂度问题和开销问题:

编/译码复杂度低,可以节省算力资源、提高处理速度保证纠错性能的同时,追求尽量小的开销(冗余比特) 也就是说:好的信道编码,能够在一定的编码率 R = k / n R=k/n R=k/n下(将 k k k个信息位编码为总共 n n n位),接近信道的容量的极限——香农极限 香农极限

根据香农第二定理,只要采用合适的信道编码,无差错传输的信息传输速率上限就是信道容量

也就是说,实现无差错传输,理论上的最大传输速率就是信道容量,我们称之为香农极限 / 香农容量理论存在,那么实际中如何让信息速率逼近香农极限呢?需要采用足够长的随机编码

分组码有规则的代数结构,显然不是“随机”的,译码复杂度也限制了码长不能太长,因而远达不到香农极限; 后续的Turbo码、LDPC码、Polar码,才逐渐接近香农极限

信道编码举例

我们的思路是:

分组码:多个信息位成一组,对这一组比特追加校验位 信息单独分块处理,其演进过程是重复码->汉明码->戈莱码->RM码->循环冗余校验CRC码 缺点:每一组编码全部接收后才能译码;并且需要精确的帧同步才能正确译码卷积码:对于当前输入的多个信息位,编码器的输出还与之前输入的信息位有关 卷积码引入各个信息块之间的相关性(随着约束长度 N N N增加,差错率指数下降);并且编译码可以连续进行(无需等待整组信息)现代信道编码:Turbo码、LDPC码、Polar码 进一步逼近香农极限

LTE控制信道的信道编码就采用了 ( 3 , 1 , 7 ) (3,1,7) (3,1,7)的卷积码; 3G、4G中广泛应用Turbo码(运用交织实现了“伪随机”,在高噪声环境下也性能优越) 5G的eMBB场景下,控制信道使用Polar码,数据信道使用LDPC码(更短时延要求更快的译码速度,而Turbo码的迭代译码被淘汰)

1. 分组码

k k k个信息位分为一组,增加 n − k n-k n−k位冗余码元,总共得到 n n n位数据,称为 ( n , k ) (n,k) (n,k)分组码 n − k n-k n−k位冗余码元称为监督码元 / 校验码元,用于检错和纠错

分组码的矩阵表述:

生成矩阵

给出信息位的行向量 m 1 × n \boldsymbol m_{1\times n} m1×n​,那么有一个生成矩阵 G k × n \mathbf G_{k\times n} Gk×n​可以生成分组码的码字行向量 C 1 × n \mathbf C_{1\times n} C1×n​ C 1 × n = m G = [ c 1 c 2 . . . c n ] \mathbf C_{1\times n}=\boldsymbol m\mathbf G=\left[\begin{array}{c}\boldsymbol c_1&\boldsymbol c_2&...&\boldsymbol c_n\end{array}\right] C1×n​=mG=[c1​​c2​​...​cn​​] 码字行向量 C \mathbf C C的分量 c c o l \boldsymbol c_{col} ccol​(第col列)源于 m \boldsymbol m m和 G \mathbf G G的第col列相乘,也就是说,编码后每一位码字都是信息位 m \boldsymbol m m的线性组合结果,如 c 4 = m 2 + m 3 \boldsymbol c_4=\boldsymbol m_2+\boldsymbol m_3 c4​=m2​+m3​

校验矩阵

由上式改写可知,对于合法的码字 C \mathbf C C,若校验信息长度 m = n − k m=n-k m=n−k,那么各个码字之间一定满足 m m m个方程的约束 例如, ( 5 , 3 ) (5,3) (5,3)分组码的合法码字满足 { c 2 + c 3 + c 4 = 0 c 1 + c 2 + c 3 + c 5 = 0 \left\{\begin{matrix} \boldsymbol c_2+\boldsymbol c_3+\boldsymbol c_4=0 \\ \boldsymbol c_1+\boldsymbol c_2+\boldsymbol c_3+\boldsymbol c_5=0 \end{matrix}\right. {c2​+c3​+c4​=0c1​+c2​+c3​+c5​=0​(注意,以下一切加法为模2加),那么将其视为齐次线性方程组, c n \boldsymbol c_n cn​视为未知数,写为矩阵形式得到 [ 0 1 1 1 0 1 1 1 0 1 ] [ c 1 c 2 c 3 c 4 c 5 ] = [ 0 0 ] \begin{bmatrix}0 & 1 & 1 & 1 & 0\\1 & 1 & 1 & 0 &1\end{bmatrix} \begin{bmatrix} \boldsymbol c_1 \\ \boldsymbol c_2 \\\boldsymbol c_3\\\boldsymbol c_4\\\boldsymbol c_5\end{bmatrix} =\begin{bmatrix} 0 \\ 0\end{bmatrix} [01​11​11​10​01​]⎣ ⎡​c1​c2​c3​c4​c5​​⎦ ⎤​=[00​]

定义校验矩阵 H ( n − k ) × n = [ 0 1 1 1 0 1 1 1 0 1 ] \mathbf H_{(n-k)\times n}=\begin{bmatrix}0 & 1 & 1 & 1 & 0\\1 & 1 & 1 & 0 &1\end{bmatrix} H(n−k)×n​=[01​11​11​10​01​],可见所有合法码字 C T \mathbf C^T CT(列向量)构成了 H \mathbf H H的零空间,即 H C T = 0 ( n − k ) × 1 = [ 0 ⋮ 0 ] \mathbf H\mathbf C^T=\mathbf 0_{(n-k)\times 1}=\begin{bmatrix} 0 \\ \vdots \\ 0\end{bmatrix} HCT=0(n−k)×1​=⎣ ⎡​0⋮0​⎦ ⎤​实际上,校验矩阵 H \mathbf H H和生成矩阵 G \mathbf G G满足 H G T = 0 ( n − k ) × k \mathbf H\mathbf G^T=\mathbf 0_{(n-k)\times k} HGT=0(n−k)×k​(两者可以互相求出)

对于合法的码字行向量 C 1 × n ′ \mathbf C'_{1\times n} C1×n′​后,与校验矩阵 H \mathbf H H做内积:若 H ( C ′ ) T = 0 \mathbf H (\mathbf C')^T=\mathbf 0 H(C′)T=0,说明通过了校验,没有出错

标准/系统校验矩阵

根据线性方程组的理论, H \mathbf H H任意进行初等行变换,不改变校验位的约束关系(相当于消元)

由此,一般形式的 G \mathbf G G和 H \mathbf H H,对其做初等行变换,可以得到

系统生成矩阵 G S = [ I k Q k × ( n − k ) ] k × n \mathbf G_{S}=\begin{bmatrix} \mathbf I_k &\mathbf Q_{k\times (n-k)} \end{bmatrix}_{k\times n} GS​=[Ik​​Qk×(n−k)​​]k×n​系统校验矩阵 H S = [ Q ( n − k ) × k T I ( n − k ) ] ( n − k ) × n \mathbf H_{S}=\begin{bmatrix} \mathbf Q_{ (n-k)\times k}^T &\mathbf I_{(n-k)} \end{bmatrix}_{(n-k)\times n} HS​=[Q(n−k)×kT​​I(n−k)​​](n−k)×n​

这样做的好处是,所有信息位原样集中分布,所有校验位集中分布在码字的末尾

校验方法和伴随式

前面说过,合法的码字行向量 C 1 × n ′ \mathbf C'_{1\times n} C1×n′​与校验矩阵 H \mathbf H H满足: H ( C ′ ) T = 0 \mathbf H (\mathbf C')^T=\mathbf 0 H(C′)T=0

实际中,接收码字行向量 r 1 × n \mathbf r_{1\times n} r1×n​=原始码字 c 1 × n ⊕ \mathbf c_{1\times n}\oplus c1×n​⊕错误图样 e 1 × n \mathbf e_{1\times n} e1×n​

那么,对于接收码字行向量 r 1 × n \mathbf r_{1\times n} r1×n​,校验方法就是计算 r 1 × n H n × ( n − k ) T = s 1 × ( n − k ) \mathbf r_{1\times n}\mathbf H_{n\times (n-k)}^T=\mathbf s_{1\times (n-k)} r1×n​Hn×(n−k)T​=s1×(n−k)​,称 s 1 × ( n − k ) \mathbf s_{1\times (n-k)} s1×(n−k)​为伴随式

如果伴随式 s 1 × ( n − k ) = 0 \mathbf s_{1\times (n-k)}=\mathbf 0 s1×(n−k)​=0,可能无差错 / 错误图样刚好为某个码字如果伴随式 s 1 × ( n − k ) ≠ 0 \mathbf s_{1\times (n-k)}\neq\mathbf 0 s1×(n−k)​=0,必有差错

s 1 × ( n − k ) ≠ 0 \mathbf s_{1\times (n-k)}\neq\mathbf 0 s1×(n−k)​=0时,纠错方法是:提前计算所有可能导致该结果的错误图样 e 1 × n \mathbf e_{1\times n} e1×n​,并选择其中出错最少(1的个数最少)的作为最终的错误图样 e 1 × n \mathbf e_{1\times n} e1×n​(上面说过,伴随式数量



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3