本书系统介绍了软件无线电的概念、起源、技术优势、发展历程、体系架构与基础理论,介绍了GNU Radio通用软件无线电软硬件平台的使用指南,同时结合实际科研项目开发经验,整理并汇总了基于GNU Radio软件无线电的通信系统实践与综合应用实例。全书分为四个部分:第一部分的主题为软件无线电基础,包含第1、2章;第二部分的主题为GNU Radio与USRP平台,包含第3~8章;第三部分的主题为通信系统实践案例,包含第9~17章;第四部分的主题为通信系统综合应用实验,包含三个综合实验、一个拓展应用实验,以及GNU Radio与USRP平台使用中的常见问题与解决方案。全书通俗易懂,理论与实践相结合,兼具较强的指导性与实用性。本书可以作为高等院校电子信息与通信类相关专业本科生与研究生的实验教材,也可作为通用软件无线电平台初级与中级阶段的使用者、电子技术发烧友的技术参考书,还适合从事无线通信系统原型验证与开发的工程技术与科研人员阅读。
周福辉,男,教授、博导,国家优青,中国科协"青年人才托举工程”、"江苏省333人才培养工程”、"江西省杰出青年基金”、"江西省高层次人才”、等人才计划,荣获江西省自然科学奖一等奖、E&T全球创新奖、日内瓦国际发明展金奖、中国发明协会发明创业奖创新奖一等奖等省部级和国际奖励。
目录
第一部分 软件无线电基础
第1章 软件无线电概述 1
1.1 软件无线电概念与起源 1
1.2 软件无线电关键技术 2
1.2.1 宽带天线技术 2
1.2.2 高速数模与模数转换技术 2
1.2.3 软件算法 3
1.2.4 高速数字信号处理技术 3
1.3 软件无线电平台 3
1.3.1 GNU Radio 3
1.3.2 USRP 4
1.3.3 Sora 5
1.3.4 μSDR 5
1.3.5 KUAR 5
1.3.6 SODA 6
1.3.7 WARP 7
1.4 软件无线电的应用 7
1.4.1 军事领域的应用 7
1.4.2 民用领域的应用 8
第2章 软件无线电信号处理基础理论 11
2.1 信号采样基础 11
2.1.1 采样信号频谱 11
2.1.2 低通信号采样定理 12
2.1.3 带通信号采样定理 13
2.2 多速率信号处理理论 14
2.2.1 信号的整数倍抽取 14
2.2.2 信号的整数倍内插 16
2.2.3 分数倍速率变换 17
2.3 数字滤波理论 18
2.3.1 CIC滤波器 18
2.3.2 HB滤波器 19
2.4 数字变频理论 19
2.4.1 数字上变频 20
2.4.2 数字下变频 20
第二部分 GNU Radio与USRP平台
第3章 GNU Radio软件平台简介 21
3.1 GNU Radio软件功能 21
3.1.1 基础功能 21
3.1.2 通信功能 23
3.2 GNU Radio软件架构 26
3.2.1 Block 27
3.2.2 SWIG 28
3.2.3 流图 28
第4章 GNU Radio的安装与使用 29
4.1 GNU Radio的安装 29
4.1.1 Ubuntu系统的安装 29
4.1.2 UHD的安装 35
4.1.3 GNU Radio的安装 37
4.1.4 Windows操作系统中GNU Radio
的安装 38
4.1.5 安装测试 40
4.2 GNU Radio的使用说明 42
4.2.1 进入GNU Radio Companion 42
4.2.2 GNU Radio工具栏的使用说明 43
4.2.3 GRC流图的搭建与运行 45
4.2.4 GRC模块的安装与调用 46
第5章 GNU Radio应用程序开发 48
5.1 GNU Radio语言 48
5.1.1 Python语言简介 48
5.1.2 C++语言简介 49
5.2 GNU Radio应用程序编写指南 52
5.2.1 Python与C++交互 52
5.2.2 应用程序集成 53
5.3 Python编写的GNU Radio应用程序
实例 64
5.3.1 Python实现流图 64
5.3.2 Python代码解析 65
第6章 GNU Radio模块开发 67
6.1 GNU Radio信号处理模块 67
6.1.1 模块设计规则 67
6.1.2 general_work函数 69
6.2 使用Python语言编写GNU Radio
模块 70
6.2.1 新建工程 70
6.2.2 功能代码开发 71
6.2.3 自编模块安装 74
6.3 使用C++语言编写GNU Radio模块 75
6.3.1 新建工程 75
6.3.2 功能代码开发 76
6.3.3 自编模块安装 80
第7章 GNU Radio信号波形可视化与图形
用户界面 81
7.1 波形展示模块 81
7.1.1 时域展示 81
7.1.2 频域展示 84
7.2 图形用户界面的编辑与使用 85
7.2.1 QSS文件位置 86
7.2.2 QSS文件更改 86
7.3 Octave 和MATLAB的使用 88
7.3.1 Octave的使用 88
7.3.2 MATLAB的使用 91
第8章 GNU Radio硬件平台简介 93
8.1 GNU Radio硬件平台 93
8.2 USRP硬件架构 94
8.2.1 USRP母板 95
8.2.2 USRP子板 98
8.3 USRP硬件架构与配置使用 100
8.3.1 USRP FPGA固件下载 100
8.3.2 USRP配置与连接使用 100
8.3.3 USRP时钟源同步 104
第三部分 通信系统实践案例
第9章 信源实例 106
9.1 模拟信源 106
9.1.1 实验原理 106
9.1.2 实验过程 107
9.1.3 实验结果 109
9.2 数字信源 109
9.2.1 实验原理 109
9.2.2 实验过程 111
9.2.3 实验结果 112
第10章 信道实例 114
10.1 AWGN信道 114
10.1.1 实验原理 114
10.1.2 实验过程 115
10.1.3 实验结果 116
10.2 多径信道 117
10.2.1 实验原理 118
10.2.2 实验过程 119
10.2.3 实验结果 120
10.3 频率选择性衰落信道 121
10.3.1 实验原理 122
10.3.2 实验过程 124
10.3.3 实验结果 125
第11章 模拟调制、解调实例 127
11.1 幅度调制 127
11.1.1 实验原理 127
11.1.2 实验过程 128
11.1.3 实验结果 131
11.2 角度调制 133
11.2.1 实验原理 133
11.2.2 实验过程 137
11.2.3 实验结果 138
第12章 数字基带传输实例 140
12.1 基带传输码型 140
12.1.1 实验原理 140
12.1.2 实验过程 141
12.1.3 实验结果 143
12.2 成形滤波(平方根升余弦
滤波器) 144
12.2.1 实验原理 144
12.2.2 实验过程 147
12.2.3 实验结果 148
第13章 数字频带传输实例 149
13.1 二进制数字调制与解调:2ASK、2FSK、2PSK 149
13.1.1 实验原理 149
13.1.2 实验过程 154
13.1.3 实验结果 161
13.2 QPSK、π/4-DQPSK调制与解调 165
13.2.1 实验原理 165
13.2.2 实验过程 168
13.2.3 实验结果 172
第14章 信源编解码实例 175
14.1 均匀量化PCM编解码 176
14.1.1 实验原理 176
14.1.2 实验过程 178
14.1.3 实验结果 179
14.2 A律PCM编解码 179
14.2.1 实验原理 179
14.2.2 实验过程 182
14.2.3 实验结果 184
第15章 信道编解码实例 185
15.1 汉明码编解码 185
15.1.1 实验原理 185
15.1.2 实验过程 186
15.1.3 实验结果 187
15.2 循环码编解码 188
15.2.1 实验原理 188
15.2.2 实验过程 190
15.2.3 实验结果 192
15.3 卷积码编解码 193
15.3.1 实验原理 193
15.3.2 实验过程 195
15.3.3 实验结果 198
15.4 Turbo码编解码 199
15.4.1 实验原理 199
15.4.2 实验过程 201
15.4.3 实验结果 206
15.5 LDPC码编解码 209
15.5.1 实验原理 209
15.5.2 实验过程 210
15.5.3 实验结果 212
第16章 同步技术实例 214
16.1 位同步 214
16.1.1 实验原理 214
16.1.2 实验过程 215
16.1.3 实验结果 215
16.2 帧同步 216
16.2.1 实验原理 216
16.2.2 实验过程 217
16.2.3 实验结果 219
16.3 载波同步(频率同步、相位
同步) 220
16.3.1 实验原理 220
16.3.2 实验过程 221
16.3.3 实验结果 223
第17章 扩频技术实例 224
17.1 M序列生成 224
17.1.1 实验原理 224
17.1.2 实验过程 226
17.1.3 实验结果 226
17.2 直接序列扩频 227
17.2.1 实验原理 227
17.2.2 实验过程 228
17.2.3 实验结果 230
第四部分 通信系统综合应用实验
第18章 跳频通信抗干扰系统综合实验 232
18.1 CPFSK调制与解调 232
18.1.1 CPFSK调制 232
18.1.2 CPFSK解调 234
18.2 跳频调制与解跳 234
18.2.1 跳频调制 234
18.2.2 跳频同步与解跳 240
18.3 干扰源模拟 241
18.3.1 高斯白噪声干扰 241
18.3.2 实际信道干扰 242
18.4 跳频抗干扰通信实验结果 243
18.4.1 抗高斯白噪声干扰传输结果 243
18.4.2 抗实际信道干扰传输结果 244
第19章 码分多址通信系统综合实验 245
19.1 发端扩频 245
19.1.1 帧格式 245
19.1.2 训练序列选择 246
19.1.3 扩频 246
19.2 收端的处理过程 247
19.2.1 同步 248
19.2.2 解扩 251
19.2.3 跟踪 252
19.2.4 分解帧与解调 253
19.2.5 SNR估计 254
19.3 码分多址通信系统实验结果 255
第20章 空时编码MIMO-OFDM视频传输
系统综合实验 256
20.1 视频采集与管道配置 256
20.2 MIMO空时编解码模块 258
20.2.1 空时编码过程 258
20.2.2 空时解码过程 259
20.3 OFDM 处理 260
20.3.1 OFDM原理 260
20.3.2 发端处理 262
20.3.3 收端处理 264
20.4 实验流图搭建 265
20.4.1 发端实验流图搭建 265
20.4.2 收端实验流图搭建 266
20.5 MIMO-OFDM通信实验结果 268
20.5.1 发端结果图 268
20.5.2 收端结果图 269
第21章 拓展应用实验 272
21.1 移动手机与基站模拟实验 272
21.1.1 OpenBTS 272
21.1.2 模拟基站的基本架构与功能 273
21.1.3 模拟基站与移动手机短信交互
与结果 273
21.2 ADS-B民航信号接收设计实验 274
21.2.1 ADS-B数据链 275
21.2.2 ADS-B收发原理 275
21.2.3 ADS-B民航信号接收实现
与结果 276
第22章 常见问题与解决方案 278
22.1 GNU Radio安装常见问题 278
22.1.1 常见问题1 278
22.1.2 常见问题2 279
22.2 USRP 硬件配置常见问题 280
22.2.1 常见问题1 280
22.2.2 常见问题2 281
22.2.3 常见问题3 282
22.3 GRC模块创建常见问题 283
22.3.1 打印调试及Python版本不同,
函数兼容问题 283
22.3.2 内部程序定义的与外部XML
定义的端口长度匹配问题 283
22.3.3 模块代码错误定位问题 284
22.4 GRC流图搭建常见问题 285
22.4.1 限流 285
22.4.2 限幅 285
22.5 运行结果异常分析 286
22.5.1 “QT GUI Time Sink”模块点数
统计 286
22.5.2 “QT GUI Time Sink”模块波形
静止 287
22.5.3 连接USRP时流图停止运行 287
22.5.4 GRC流图在另外的计算机中无法
运行 288
22.5.5 运行结果为灰白界面 288
22.5.6 数据流样点重复 289
22.5.7 自编模块运行出错 290
缩略词表 291
参考文献 295