【现代通信原理笔记】7 差错控制编码(信道编码)

【现代通信原理】7 差错控制编码(信道编码)

题图
重点

  • 检错、纠错
  • 检纠错能力两个公式。纠错能力 t、检错能力 e(重要)
  • 差错控制方式:前向纠错,检错重传,混合纠错
  • 分组码:校验矩阵、监督码元、效率、码长、(最小)码距、码重
  • 恒比码正反码(仅了解)
  • 线性分组码:线性码、汉明码、校正子的作用。清楚原理
  • H 矩阵,G 矩阵 构成,转换关系(重要)

部分内容结合计算机网络原理

  • 第 10 章:检错与纠错(线性分组码、CRC)
  • 第 11 章:数据链路控制(ARQ 系统)

概述

通信的可靠性

可靠性增加,有效性减小

要将质量要求与误码率两者匹配起来

误码

  • 针对乘性干扰:采用均衡等措施
  • 针对加性干扰:合理选择调制/解调方法、增大发射功率
  • 对剩余的误码:采用差错控制交织等措施,加以纠正

差错控制方式

应根据信道类型、对实时性和误码率的要求等因素来选择。

信道类型 — 根据错码的不同分布规律分为:

  • 随机信道:错码是随机独立出现的
  • 突发信道:错码是成串集中出现的
  • 混合信道:既有随机错码又有突发错码

差错控制方式:

  • 检错重发——自动请求重发(ARQ)
  • 前向纠错(英语:forward error correction,缩写 FEC)前向纠错是一种差错控制方式,即纠错编码
  • 混合纠错

技术措施:

  • 纠错编码
  • 纠错策略 —— 即以上差错控制方式

3 种自动请求重发(ARQ)系统

  • 停止等待 ARQ 系统

  • 拉后 ARQ 系统​

    • 回退 N 帧 ARQ
    • 选择重发 ARQ 系统
    • 选择性重复 ARQ

参考计网

编码器 对输入的信码进行分组编码(加入校验元)后发送。若收到接收端的重发(NAK)指令,执行重发。

译码器 对接收码校验,若发现有错,则通过反向信道发送一个 重发(NAK)指令,指示发送端重发。若无错,则发送确认(ACK) 指令,指示发送端正常发送。

Image

ARQ 的主要优点:与前向纠错 (FEC) 方法相比

  • 能抵抗大误码率,适应不同特性的信道;
  • 检错的计算复杂度较低;

ARQ 的主要缺点:

  • 重发使得 ARQ 系统的传输效率降低。
  • 双向信道来重发,不适用单向信道和一点到多点的通信系统

第 1 讲 基本原理及简单编码

校验(监督)码元:发送端在信息码元序列中增加一些差错控制码元,以便收端判断正误,它们被称为校验码元。校验码元位数不同,检错或纠错能力就不同。

编码效率(简称码率):设编码序列中信息码元数量为 k,总码元数量为 n ( n > k ) n(n>k) n(n>k) ,则比值 R = k / n R=k/n R=k/n 就是码率。校验码元数 r = n − k r=n-k r=nk

差错控制编码表面上降低有效性,换取更低误码率,提高可靠性。但信息速率可能更接近信道容量

分组码基本原理

分组码:把一个长数据文件分成若干个长度相等的信息码组,在每个码组后加上校验码。与分组码并称的另一种码是卷积码

系统码:信息位保持不变,在其后加上校验位的纠错码

非系统码:编码码组中无对应信息位(信息位和校验位交叉)

许用码组

禁用码组:接收端一旦收到禁用码组,就认为出现了错码。

校验码元:系统码的校验码元冗余

码长 ( n n n):码组(码字)中的码元个数。

码重 ( W W W):码组 a a a 中“1”的数目, w ( a ) w(a) w(a)

码距 ( d d d): 两个码组 a、b 对应位上不同值的个数,称为码组 的距离 d ( a , b ) = w ( a + b ) d(a, b) = w(a+b) d(a,b)=w(a+b)。—又称汉明距离。(“+”按位模 2 加)

最小码距 ( d 0 d_0 d0):某种编码各个码组之间距离的最小值

最小码距 d 0 d_0 d0 和检纠错能力的关系(可以画图方便理解)

  • 检 e 个错码 d 0 ⩾ e + 1 d_0\geqslant e+1 d0e+1
  • 纠 t 个错码 d 0 ⩾ 2 t + 1 d_0\geqslant 2t+1 d02t+1
  • 纠 t 个错码 & 检 e 个错码 d 0 ⩾ e + t + 1 ( e > t ) d_0\geqslant e+t+1 (e>t) d0e+t+1(e>t)

1.1 奇偶校验(监督)码

Image

1.2 二维奇偶校验(监督)码(方阵码)

Image

1.3 恒比码(等重码)(仅了解)

“1”的数目与“0”的数目之比保持恒定。

1.4 正反码(仅了解)

每个码组的校验位数等于信息位数,校验位值由信息码中的“1” 的数目确定:

  • 当信息码中有奇数个“1”时,校验位是信息位的重复;
  • 当信息码中有偶数个“1”时,校验位是信息位的反码;

该码能够严格地纠正任意 1 位错码,码率为 1/2。

校验和

计网内容

反码、求和、0

第 2 讲 线性分组码

  • 线性码:按照一组线性方程构成的代数码。即每个码字的校验码元是信息码元的线性组合。
  • 代数码:建立在代数学基础上的编码。
  • 分组码:每一码组的校验码元仅与本组中的信息码元有关。
  • 线性分组码:按照一组线性方程构成的分组码。例如,奇偶校验码就是一种 ( n , n − 1 ) (n, n-1) (n,n1) 线性分组码。

符号表示:一种码若码长是 n,其中信息码有 k 位,称为 ( n , k ) (n, k) (n,k) 码,如 (7, 4) 码。以下以 (7, 4) 码为例。

信息码向量 m ⃗ = ( m 3 , m 2 , m 1 , m 0 ) \vec{m} = (m_3,m_2,m_1,m_0) m =(m3,m2,m1,m0)

发送码向量 A ⃗ = ( a 6 , a 5 , a 4 , a 3 , a 2 , a 1 , a 0 ) \vec{A} = (a_6,a_5,a_4,a_3,a_2,a_1,a_0) A =(a6,a5,a4,a3,a2,a1,a0)

接收码向量 B ⃗ = ( b 6 , b 5 , b 4 , b 3 , b 2 , b 1 , b 0 ) \vec{B} = (b_6,b_5,b_4,b_3,b_2,b_1,b_0) B =(b6,b5,b4,b3,b2,b1,b0)

汉明码

校正子:s

校验关系式:

Image

若 s=0,认为无错(偶校验时);若 s=1,认为有错 。—— 检错

若要构造具有纠错能力的 (n, k) 码,则需增加校验元的数目。 s (即方程)的个数等于校验元位数 r

对于 (n, k) 线性分组码,若希望用 r=n-k 个校验码元构造出 r 个校验

关系式来指出一位错码的 n 种可能的位置,则 r 必须满足:

2 r − 1 ≥ n   或   2 r ≥ k + r + 1 2^r-1\geq n \ 或\ 2^r \geq k + r + 1 2r1n  2rk+r+1

-1 是因为还有一种可能性没有错

当“=”成立时,构造的线性分组码称为汉明码——能纠 1 位错码高效线性分组码

( n , k ) = ( 2 r − 1 , 2 r − 1 − r ) (n,k) = (2^r-1,2^r-1-r) (n,k)=(2r1,2r1r)

信息元和校验 (parity check)元是平等的

  • 汉明码特点

码参数

2 r − 1 ≥ n 2^{r}-1 \geq n 2r1n 中的等号成文. 即 ( n , k ) = ( 2 r − 1 , 2 r − 1 − r ) (n, k)=\left(2^{r}-1,2^{r}-1-r\right) \quad (n,k)=(2r1,2r1r),$ r$ 是不小于 3 的任意正整数

最小码距:

d 0 = 3  (纠1或检2)  d_{0}=3 \text { (纠1或检2) } d0=3 (1或检2) 

编码效率:

R c = k n = n − r n = 1 − r 2 r − 1 R_{c}=\frac{k}{n}=\frac{n-r}{n}=1-\frac{r}{2^{r}-1} Rc=nk=nnr=12r1r

n n n 很大时, r r r 相对很小, 码率 R c R_{\mathrm{c}} Rc 接近 1 。

可见,汉明码是能够纠正 1 位错码的最高效线性分组码。

线性分组码一般原理

H 校验矩阵

Image

若矩阵由一个小矩阵和满秩的单位阵组合而成,则称它为典型矩阵

Image

H 的各行是线性无关的。否则得不到 r 个线性无关的校验关系式。

若一矩阵能写成典型阵形式 [ P I r ] [P\quad I_r] [PIr],则其各行一定是线性无关的。

G 生成矩阵

将上面汉明码例子中的校验位计算公式: 改写成矩阵形式:

Image

式中, Q Q Q 为一个 k × r k\times r k×r 阶矩阵,它是 P P P 的转置,即

Q = P T Q=P^\text{T} Q=PT

可见,给定信息位后用信息位行向量乘矩阵 Q Q Q 就产生校验位。

Q Q Q 的左边加上一个 k × k k\times k k×k 阶单位方阵,就构成矩阵:

Image

Image

具有 [ I k   Q ] [I_k \ Q] [Ik Q] 形式的 G G G 称为典型生成矩阵。由典型得 G G G 到的码称为系统码

系统码:信息位保持不变,在其后加上校验位的纠错码

G 矩阵的性质

G 矩阵是 k × n k\times n k×n 矩阵。

G 的各行是线性无关的;它的各行本身就是一个码组。

∴ 若有 k 个线性无关的码组,则可用其组成生成矩阵 G,生成其余码组。

可以看出:任一码组 A 都是 G 的各行的线性组合。G 共有 k 行,可以组合出 2 k 2^k 2k 种不同的码组 A

G 和 H 的关系

Image

非典型的 G 或 H 可以通过行线性变换变成典型的 G 、H ,仍然对应于该编码。可以由此进行 G 、H 互求。

校正子与错误图样

则发送码组和接收码组之差就是错误图样

设发送码组为一个 n n n 元行向量 A A A, 接收码组行向量 B B B

A = [ a n − 1 a n − 2 ⋯ a 1 a 0 ] B = [ b n − 1 b n − 2 ⋯ b 1 b 0 ] \boldsymbol{A}=\left[\begin{array}{lll} a_{n-1} a_{n-2} & \cdots & a_{1} a_{0} \end{array}\right] \quad \boldsymbol{B}=\left[b_{n-1} b_{n-2} \cdots b_{1} b_{0}\right] A=[an1an2a1a0]B=[bn1bn2b1b0]

则发送码组和接收码组之差就是错误图样:

B − A = E = [ e n − 1 e n − 2 ⋯ e 1 e 0 ] \boldsymbol{B}-\boldsymbol{A}=\boldsymbol{E}=\left[\begin{array}{ll} e_{n-1} e_{n-2} & \cdots e_{1} e_{0} \end{array}\right] BA=E=[en1en2e1e0]

式中:

e i = { 0 ,  当  b i = a i  表示该接收码元无错  1 ,  当  b i ≠ a i  表示该接收码元有错  e_{i}=\left\{\begin{array}{lll} \mathbf{0}, & \text { 当 } b_{i}=a_{i} & \text { 表示该接收码元无错 } \\ \mathbf{1}, & \text { 当 } b_{i} \neq a_{i} & \text { 表示该接收码元有错 } \end{array}\right. ei={0,1,  bi=ai  bi=ai 表示该接收码元无错  表示该接收码元有错 

S S S 称为校正子(伴随式)。

校正子 S S S 与错误图样 E 一一对应,而与发送码 A 无关。

(n,k) 线性分组码译码的三个步骤:

  1. 由接收码组 B 计算:$ S = H · B^T$
  2. S S S 找到错误图样 E
  3. 由公式 A = B – E A = B – E A=BE 得到译码器译出的码组。

注:若 B 中错误超过纠错能力,则也可能 S = H ⋅ B T = 0 S = H · B^T=0 S=HBT=0。此种错误不可检。

线性分组码的性质

① 封闭性

一种线性码中任意两个许用码组 A 1 A_1 A1 A 2 A_2 A2 之和 ( A 1 + A 2 ) (A_1+A_2) (A1+A2) (按位模 2 加) 后的码组,仍为该码中的一个许用码组。

证明:若 A 1 A_1 A1 A 2 A_2 A2 是两个码组,则有 H ⋅ A 1 T = 0 H \cdot A_1^\text{T} = 0 HA1T=0 H ⋅ A 2 T = 0 H\cdot A_2^\text{T} = 0 HA2T=0

将两式相加,有 H ⋅ A 1 T + H ⋅ A 2 T = H ⋅ ( A 1 + A 2 ) T = 0 H \cdot A_1^\text{T} + H\cdot A_2^\text{T} = H\cdot(A_1+A_2)^\text{T}= 0 HA1T+HA2T=H(A1+A2)T=0(证毕)

② 最小距离

码的最小距离就是码的最小重量

证明:根据码的封闭性,可知两个码组 A 1 A_1 A1 A 2 A_2 A2 之间的距离(即对应位不同的数目)必定是另一个码组 A 1 + A 2 A_1 + A_2 A1+A2 的重量(即“1”的数目)。

注:从生成矩阵 G 的最小行重量常常就能判断最小距离

第 3 讲 循环码

具体内容略

循环性:指任一码组循环移位(将最左端的一个码元移至右端, 或反之),仍为该码中的一个码组;

循环码:除了具有线性分组码的一般性质外,还具有循环性

循环冗余校验(CRC)码

计网重点

  • 数据字: d ( x ) d(x) d(x)
  • 码字: c ( x ) c(x) c(x)
  • 生成多项式: g ( x ) g(x) g(x)
  • 校正子: s ( x ) s(x) s(x)
  • 差错: e ( x ) e(x) e(x)

接 受 的 码 字 g ( x ) = c ( x ) g ( x ) + e ( x ) g ( x ) \frac{接受的码字}{g(x)} = \frac{c(x)}{g(x)} + \frac{e(x)}{g(x)} g(x)=g(x)c(x)+g(x)e(x)

差错检验能力
  • 单个位差错

    • 如果 g ( x ) g(x) g(x) 项数至少为 2 且 x 0 x^0 x0 的系数为 1,那么所有的单个位差错都能捕捉到。
  • 两个独立的单个位差错

    • 如果生成多项式不能整除 x t + 1 0 ≤ t ≤ n − 1 x^t+1\quad 0\leq t\leq n-1 xt+10tn1,那么所有的独立双差错都能被检测到
  • 奇数个差错

    • 包含因子 x + 1 x+1 x+1 的生成多项式能检测到所有奇数个差错
  • 突发性差错 ( L L L:差错长度; r r r:校验位数)

    • 所有 L ≤ r L\leq r Lr 的突发性差错都能被检测到
    • 所有 L = r + 1 L=r+1 L=r+1 的突发性差错有 1 − ( 1 / 2 ) r − 1 1-(1/2)^{r-1} 1(1/2)r1 的概率会被检测到
    • 所有 L > r + 1 L>r+1 L>r+1 的突发性差错有 1 − ( 1 / 2 ) r 1-(1/2)^{r} 1(1/2)r 的概率会被检测到

高性能生成多项式 g ( x ) g(x) g(x) 需要有以下特性:

  • 至少有 2 项
  • x 0 x^0 x0 项的系数是 1
  • 它不能整除 x t + 1 x^t+1 xt+1,(t 是 2 到 n-1 之间)
  • 它有因子 x + 1 x+1 x+1

参考

作业

Image

(模二运算?)

Image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

框架主义者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值