第1章 概述 1
1.1 MATLAB 1
1.1.1 MATLAB的组成 1
1.1.2 开发环境 2
1.2 Simulink 6
1.2.1 启动Simulink 6
1.2.2 创建Simulink模型 8
1.2.3 模块参数设置 10
1.2.4 仿真Simulink模型 10
1.3 信道码 11
1.3.1 信道码在数字通信系统中的地位和作用 11
1.3.2 信道码的类型 12
1.3.3 常用信道编译码方法 13
1.3.4 信道码的应用 14
1.4 基于MATLAB的信道码仿真 14
第2章 MATLAB编程基础 15
2.1 基本编程组件 15
2.1.1 MATLAB命令 15
2.1.2 变量 16
2.1.3 关键字 16
2.1.4 操作符 17
2.1.5 MATLAB表达式 18
2.1.6 程序控制状态 18
2.1.7 常用符号 20
2.2 数据类型 22
2.2.1 数值 22
2.2.2 逻辑类型 28
2.2.3 字符和字符串类型 29
2.2.4 日期和时间 30
2.2.5 结构体 31
2.2.6 元胞数组 31
2.2.7 函数句柄 32
2.2.8 MATLAB类和Java类 32
2.3 矩阵 32
2.3.1 矩阵构造 33
2.3.2 矩阵访问 34
2.3.3 矩阵操作 37
2.3.4 对角矩阵 39
2.4 数学运算 40
2.4.1 线性运算 40
2.4.2 稀疏矩阵 41
2.4.3 多项式 44
2.5 数据导入/导出 44
2.5.1 支持的文件格式 44
2.5.2 导入向导的使用 46
2.5.3 导入/导出MAT文件 48
2.5.4 导入/导出文本数据 49
2.5.5 底层文件I/O函数 51
2.6 MATLAB绘图 52
2.6.1 基本绘图命令 53
2.6.2 绘制特殊图 60
2.6.3 图形编辑工具 67
第3章 MATLAB程序设计 74
3.1 M文件编程 74
3.1.1 M文件设计 74
3.1.2 M文件结构 75
3.1.3 M文件脚本和函数 76
3.1.4 函数调用 77
3.2 函数类型 79
3.2.1 匿名函数 79
3.2.2 主函数 79
3.2.3 嵌套函数 80
3.2.4 子函数 81
3.2.5 私有函数 82
3.2.6 重载函数 82
3.3 程序调试和出错处理 82
3.3.1 调试程序 83
3.3.2 出错处理 87
3.4 内存使用和优化 91
3.4.1 内存分配 91
3.4.2 内存管理函数 92
3.4.3 提高内存使用效率 93
3.5 程序计划 96
3.5.1 创建和设置定时对象 97
3.5.2 启动和停止定时器 98
3.5.3 创建和执行回调函数 99
3.5.4 定时对象执行模式 100
3.6 性能分析和优化 101
3.6.1 程序性能分析 102
3.6.2 MATLAB程序优化 106
3.7 MATLAB通信工具箱 109
3.7.1 信道编译码函数 109
3.7.2 交织器函数 110
3.7.3 信道模型函数 111
3.7.4 Galois域函数 112
3.7.5 其他相关函数 113
第4章 线性分组码 114
4.1 有限域及其运算 114
4.1.1 基本概念 114
4.1.2 有限域上的运算 115
4.1.3 有限域多项式 116
4.1.4 有限域相关函数 118
4.2 线性分组码 124
4.2.1 基本原理 124
4.2.2 编码方法 129
4.2.3 译码算法 130
4.2.4 MATLAB仿真实现 132
4.3 循环码 150
4.3.1 基本原理 150
4.3.2 编码方法 156
4.3.3 译码算法 158
4.3.4 MATLAB仿真实现 164
4.4 BCH码和RS码 173
4.4.1 基本原理 173
4.4.2 编码方法 177
4.4.3 译码算法 178
4.4.4 MATLAB仿真实现 189
4.4.5 CCSDS标准RS码 216
第5章 卷积码 223
5.1 基本原理 223
5.1.1 卷积码的定义 223
5.1.2 生成矩阵和校验矩阵 224
5.1.3 状态图和网格图描述 231
5.1.4 距离特性和重量分布 233
5.1.5 特殊卷积码 235
5.2 编码方法 236
5.3 译码算法 236
5.3.1 硬判决V iterbi译码算法 236
5.3.2 软判决V iterbi算法 240
5.4 MATLAB仿真实现 242
5.5 CCSDS标准卷积码及仿真 261
5.5.1 CCSDS标准建议的(7,1/2)卷积编码器 261
5.5.2 CCSDS标准建议的删余卷积编码器 262
5.5.3 仿真实现流程 263
5.5.4 仿真结果 265
5.6 CCSDS标准级联码 267
5.6.1 级联码的编码和译码 268
5.6.2 仿真实现流程 268
5.6.3 仿真结果 270
第6章 Turbo码 272
6.1 基本原理 272
6.1.1 Turbo码的定义 272
6.1.2 分量码设计 272
6.1.3 交织器设计 274
6.2 编码方法 276
6.3 译码方法和算法 279
6.3.1 迭代译码 279
6.3.2 MAP类算法 281
6.3.3 SOVA 287
6.4 MATLAB仿真实现 294
6.4.1 编码 294
6.4.2 译码 298
6.4.3 编译码联合仿真 304
6.4.4 MATLAB交织函数的使用 305
6.5 CCSDS标准Turbo码 322
6.5.1 编码 322
6.5.2 译码 323
6.5.3 仿真实现流程 324
6.5.4 仿真结果 327
第7章 TPC码 329
7.1 基本原理 329
7.1.1 TPC码的定义 329
7.1.2 分量码的设计 330
7.2 编码方法 332
7.3 译码算法 334
7.3.1 硬判决译码 334
7.3.2 软判决译码 335
7.3.3 改进的Chase算法 335
7.3.4 迭代译码 340
7.4 MATLAB仿真实现 341
7.4.1 编码 341
7.4.2 译码 342
7.4.3 编译码联合仿真 345
7.5 仿真及性能分析 347
第8章 LDPC码 349
8.1 基本原理 349
8.1.1 LDPC码的定义 349
8.1.2 LDPC码的因子图表示 350
8.2 LDPC码的构造 354
8.2.1 Gallager LDPC码 354
8.2.2 准循环LDPC码 355
8.2.3 基于Q矩阵构造LDPC码 356
8.3 译码算法 358
8.3.1 和积算法的基本概念 358
8.3.2 概率测度下LDPC码的和积译码算法 360
8.3.3 不同测度下的消息更新规则 362
8.4 MATLAB仿真实现 364
8.4.1 编码 364
8.4.2 译码 364
8.4.3 编译码联合仿真 366
8.4.4 MATLAB函数的使用 367
8.5 LDPC码在深空通信中的应用 378
8.5.1 编码 382
8.5.2 译码 385
8.5.3 仿真实现流程 386
8.5.4 仿真结果 388
第9章 信道仿真和误码率分析 391
9.1 二元对称信道 391
9.1.1 数学模型 391
9.1.2 MATLAB仿真 392
9.1.3 Simulink仿真 393
9.2 高斯加性白噪声信道 394
9.2.1 数学模型 394
9.2.2 MATLAB仿真 395
9.2.3 Simulink仿真 397
9.3 衰落信道 399
9.3.1 数学模型 400
9.3.2 MATLAB仿真 401
9.3.3 Simulmk仿真 423
9.4 误码率分析 426
9.4.1 通用误码率计算函数 426
9.4.2 不同信道条件下误码率的计算 431
9.4.3 误码率分析工具 435
参考文献 441