通信原理-11-差错控制编码

差错控制编码

目的:提高通信的可靠性

(原因:数字通信可能因为各种干扰(乘性,加性),使传送的数据流产生误码。)

本质:是纠错编码,是一种信道编码

举个例子:

1
2
发送   0	0	1	1	1	0	0	0	1	0	0
接受 0 0 0 0 1 0 1 0 1 0 0
  • 针对乘性干扰:采用均衡的措施(频域均衡,时域均衡)
  • 针对加性干扰:合理选择调制方法/解调方法 ,增大发射功率。

1. 信道分类

==(P331第二段)==

从差错控制角度看,按照加性干扰引起的错码分布规律的不同,信道可以分为三类:

  • 随机信道(错码是随机出现的)
  • 突发信道(错码是成串出现的)
  • 混合信道

2. 差错控制技术

==P332==

  • 检错重发(ARQ)
  • 前向纠错 (FEC)
  • 反馈校验
  • 检错删除

2.1 停止等待ARQ

  • ACK: 确认答复,再发送下一组数据
  • NAK: 否认答复,有误->重新发送有错码组
  • 缺点:要等待

mark

2.2 拉后ARQ

mark

特点:

  • 不需要等待
  • 但是有错的时候,本来正确的码组也要被重发

2.3 选择重发ARQ

mark

特点:效率最高

2.4 补充知识

==P332==

一般来说,付出的代价越大,检错能力就越强。

这里所说的代价,就是指增加的监督码元的多少,它通常用多余度来衡量。

例如:若编码序列中平均每两个信息码元就添加一个监督码元,则这种编码的多余度是1/3,或者说编码效率(码率)是2/3。

设编码序列中信息码元数量是k,总码元数量是n,则k/n就是码率。而监督码元(n-k)和信息码元数量之比(n-k)/k 就做冗余度

举个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 未加入纠错码
发送端: 1 0 1 0 0
接收端: 1 0 1 0 0

// 加入纠错码之后(有错的情况下)
发送端: 1 0 0 1 0 1 1 // 7
接收端: 1 0 0 1 0 1 1 // 7
译码后: 1 0 1 0 1 // 5


总码元: n = 7
信息码元: k = 5
码率: k/n = 5/7
冗余度: 1-k/n = 2/7

本质:降低有效性来换取降低误码率,提高了可靠性

3. 分组码

==(书P334)==

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// 状态1:没有冗余,不能发现任何错误
000 - > 晴
011 - > 云
010 - > 阴
110 - > 雨
100 - > 雪
101 - > 霜
110 - > 雾
111 - > 雹


// 状态2:加入冗余,可以发现错误(加入1位冗余)
// 四种天气
000 - > 晴
011 - > 云
101 - > 阴
110 - > 雨

// 假设 000 发生了一位错码
001 010 100 // 但这三种码都不存在:禁用码组(所以发现到了错误)

// 假设 000 发生了两位错码
000 011 101 110 // 这三种码都存在:许可码组(发现不到错误)

以上情况:只能检测错误,不能纠正错误

mark

具体来看:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 四种天气
00 - > 晴 信息位
01 - > 云 信息位
10 - > 阴 信息位
11 - > 雨 信息位

// 加入监督位
// 四种天气
00 0 - > 晴
01 1 - > 云
10 1 - > 阴
11 0 - > 雨

// 分组码:把信息码进行分组,在每个码组后加上校验码,称为分组码。(另外一种纠错码组就叫做卷积码)

结构如图所示:==(P335)==

mark

3.1 码重和码距

==P335==

  • 码长:码组中的码元个数

  • 码重:码组中 1 的个数

  • 码距:(汉明距离)两个码组中对应位上数字不同的位数叫做码组的距离

  • 最小码距:某种编码中各个码组之间的距离的最小值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
110
码长 = 3
码重 = 2

110
011
汉明距离 = 2

// 状态2:加入冗余,可以发现错误(加入1位冗余)
// 四种天气
000 - > 晴
011 - > 云
101 - > 阴
110 - > 雨
最小码距 = 2


// 五种天气
000 - > 晴
011 - > 云
101 - > 阴
110 - > 雨
111 - > 雹
最小码距 = 2
但是 这里有两组码距是3

结论: ==P336 (了解即可)==

mark

4. 简单的实用编码

==P337==

  • 奇偶校验码 (了解即可)
  • 二维奇偶监督码 (不用看)
  • 恒比码 (不用看)
  • 正反码(不用看)

4.1 奇偶校验码

mark

  • 偶数监督码:无论信息位是多少,监督位只有一位,它使得码组中 1 的个数为偶数。
  • 奇数监督码:无论信息位是多少,监督位只有一位,它使得码组中 1 的个数为奇数。

纠错能力:只能检测奇数个错码,不能纠错。

1
2
3
4
5
6
7
// 奇数监督码:检测错误
1 0 1 0
1 0 1 1 0

// 偶数监督码:检测错误
1 0 1 0 1
1 0 1 0 0 1

5. 线性分组码

==P340==

mark

  • 线性分组码:按照一组线性方程构成的(了解即可)

    1
    2
    T(X) = a(n-1) * x^(n-1) + a(n-2) * x^(n-2) + a(n-3) * x^(n-3) + ... + a(1)x + a(0)
    码组 : [1101001] = x^6 + x^5 + 0 * x^4 + x^3 + 1 * x^0
    • 本质就是矩阵的相乘计算

    mark

mark

mark

mark

mark

  • 汉明码:是一种能够纠正一位错码且编码效率较高的线性分组码。
    • 最小码距:d = 3 ==(P341)==
    • 这种码能够纠正一个错码和检测两个错码 ==(P341)==

一般来说,若码长为n,信息位数为k,则监督位数r = n-k。如果希望用r个监督位构造出r个监督关系式来表示一位错码的n种可能位置,要求:

mark

线性分组码的性质

  • 封闭性 : 两个码组之间的距离必定是另外一个码组的重量(即“1”的个数)
  • 最小距离:最小距离就是码的最小重量

5.1 循环码

==p334==

循环码:具有循环性的线性分组码(了解即可)

mark

  • 第2码组向左移动一位就变成了第3码组
  • 第3码组向左移动一位就变成了第6码组
  • 特点:移动完之后本质其实还是自己的一个码组

mark

6. 卷积码

卷积码:是一种非线性分组码,通常更适合用于前向纠错。

  • 特点
    • 线性分组码由这段时间中k比特输入信息有关。
    • 卷积码则不同,在编码时虽然也是跟k个信息位有关,但是还和前面的信息段有关。(看图秒懂)

下面这些公式不用看:

mark

原理方框图(了解一下即可)==(P355)==

mark

举例(n,k,m) = (3,1,2)

mark

mark

6.1 卷积码的译码

==P364== (了解即可)

  • 代数解码
    • 大数逻辑解码
  • 概率解码
    • 维特比解码

7. 新型纠错码

7.1 Turbo码

==p367==

译码器在两个分量译码器之间进行迭代译码,分量译码器之间传递去掉正反馈的外信息,这样整个译码过程类似涡轮(Turbo)工作。因此,这个编码方法又被形象地称为Turbo码。Turbo码具有卓越的纠错性能,性能接近香农限,而且编译码的复杂度不高。

7.2 LDPC码

==P369==

LDPC 是一组线性分组码。

  • 译码时间很长,适用于实时性要求不高的通信。

8. 通信系统小结

8.1 提高系统有效性的方法

  • 信源编码 (第一章)
  • 理想低通系统(第六章)
  • d->0的滚降系统(第六章)
  • 部分响应(第六章)
  • 多进制调制(第七章)

8.2 提高系统可靠性的方法

  • 信道编码(第一章)
  • 调制(第五章)
  • 预加重和去加重(第五章)
  • 时域均衡(第六章)
  • d->1的滚降系统(第六章)
  • OFDM(第八章)
  • 扩频(第十二章)

8.3 改变信道带宽的方法

  • 调制
  • 滤波器
  • 扩频

8.4 通信产生离散谱的原因

  • 时域信号有直流信号
  • 信号的周期性
  • 非线性调制
打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2019-2022 Zhuuu
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信