本書系統(tǒng)介紹了軟件無線電的概念、起源、技術優(yōu)勢、發(fā)展歷程、體系架構與基礎理論,介紹了GNU Radio通用軟件無線電軟硬件平臺的使用指南,同時結合實際科研項目開發(fā)經驗,整理并匯總了基于GNU Radio軟件無線電的通信系統(tǒng)實踐與綜合應用實例。全書分為四個部分:第一部分的主題為軟件無線電基礎,包含第1、2章;第二部分的主題為GNU Radio與USRP平臺,包含第3~8章;第三部分的主題為通信系統(tǒng)實踐案例,包含第9~17章;第四部分的主題為通信系統(tǒng)綜合應用實驗,包含三個綜合實驗、一個拓展應用實驗,以及GNU Radio與USRP平臺使用中的常見問題與解決方案。全書通俗易懂,理論與實踐相結合,兼具較強的指導性與實用性。本書可以作為高等院校電子信息與通信類相關專業(yè)本科生與研究生的實驗教材,也可作為通用軟件無線電平臺初級與中級階段的使用者、電子技術發(fā)燒友的技術參考書,還適合從事無線通信系統(tǒng)原型驗證與開發(fā)的工程技術與科研人員閱讀。
周福輝,男,教授、博導,國家優(yōu)青,中國科協(xié)"青年人才托舉工程”、"江蘇省333人才培養(yǎng)工程”、"江西省杰出青年基金”、"江西省高層次人才”、等人才計劃,榮獲江西省自然科學獎一等獎、E&T全球創(chuàng)新獎、日內瓦國際發(fā)明展金獎、中國發(fā)明協(xié)會發(fā)明創(chuàng)業(yè)獎創(chuàng)新獎一等獎等省部級和國際獎勵。
目錄
第一部分 軟件無線電基礎
第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系統(tǒng)的安裝 29
4.1.2 UHD的安裝 35
4.1.3 GNU Radio的安裝 37
4.1.4 Windows操作系統(tǒng)中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應用程序開發(fā) 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模塊開發(fā) 67
6.1 GNU Radio信號處理模塊 67
6.1.1 模塊設計規(guī)則 67
6.1.2 general_work函數 69
6.2 使用Python語言編寫GNU Radio
模塊 70
6.2.1 新建工程 70
6.2.2 功能代碼開發(fā) 71
6.2.3 自編模塊安裝 74
6.3 使用C++語言編寫GNU Radio模塊 75
6.3.1 新建工程 75
6.3.2 功能代碼開發(fā) 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
第三部分 通信系統(tǒng)實踐案例
第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 循環(huán)碼編解碼 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
第四部分 通信系統(tǒng)綜合應用實驗
第18章 跳頻通信抗干擾系統(tǒng)綜合實驗 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章 碼分多址通信系統(tǒng)綜合實驗 245
19.1 發(fā)端擴頻 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 碼分多址通信系統(tǒng)實驗結果 255
第20章 空時編碼MIMO-OFDM視頻傳輸
系統(tǒng)綜合實驗 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 發(fā)端處理 262
20.3.3 收端處理 264
20.4 實驗流圖搭建 265
20.4.1 發(fā)端實驗流圖搭建 265
20.4.2 收端實驗流圖搭建 266
20.5 MIMO-OFDM通信實驗結果 268
20.5.1 發(fā)端結果圖 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收發(fā)原理 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模塊創(chuàng)建常見問題 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”模塊點數
統(tǒng)計 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