GNU Radio 軟件無線電技術
內容描述
本書首先介紹軟件無線電技術的發展背景和歷程,然後對一些常見的軟件無線電平臺進行詳細的介紹(第1章);其次介紹軟件無線電技術中的主要理論,包括信號採樣理論、多速率信號處理技術、數字濾波器技術以及軟件無線電的基本結構等(第2章);接著,針對 GNU Radio軟件無線電中的軟硬件平臺進行詳細的介紹(第 3章),並給出GNU Radio軟件無線電系統環境在 Ubuntu上的安裝與測試方法(第4章);隨後,介紹 GNU Radio中的附帶工具和功能軟件,重點介紹 GRC的使用方法,以及如何使用 GRC和 Python來開發通信系統(第 5、6章);在此基礎上,本書還詳細分析基於 C++語言來開發信號處理模塊的問題(第7章),同時對 QPSK&GMSK調制方式、OFDM無線傳輸以及 MIMO技術的 GNU Radio模擬實現進行詳細的介紹和分析(第8章);最後,本書對常見的基於 GNU Radio的軟件無線電科研項目(OpenBTS、Hydra和GQRS)進行深入的分析和探討(第9章)。
目錄大綱
目錄
前言
第1章 緒論 1
1.1 軟件無線電發展概述 1
1.1.1 背景 1
1.1.2 軟件無線電概念及關鍵技術 2
1.1.3 軟件無線電研究現狀 3
1.1.4 存在的問題探討 5
1.2 軟件無線電平臺介紹 6
1.2.1 GNU Radio 6
1.2.2 SORA 7
1.2.3 Open Air Interface 14
參考文獻 17
第2章 軟件無線電基本理論 20
2.1 信號採樣理論 20
2.1.1 採樣定理 21
2.1.2 帶通信號採樣定理 22
2.2 多速率信號處理 23
2.2.1 整數倍抽取 23
2.2.2 整數倍內插 25
2.2.3 採樣率分數倍變換 27
2.3 數字濾波器 27
2.3.1 數字濾波器設計基礎 28
2.3.2 半帶濾波器 28
2.3.3 積分梳狀濾波器 29
2.4 軟件無線電基本結構 30
2.4.1 數字下變頻 30
2.4.2 數字上變頻 31
參考文獻 32
第3章 GNU Radio 軟件無線電平臺 33
3.1 GNU Radio 平臺綜述 33
3.2 GNU Radio 軟件架構 35
3.3 GNU Radio 硬件平臺 37
3.3.1 HackRF 38
3.3.2 bladeRF 39
3.3.3 USRP 40
3.4 USRP 硬件平臺 42
3.4.1 USRP 母板 43
3.4.2 USRP2 母板 45
3.4.3 USRP 子板 46
參考文獻 49
第4章 GNU Radio 的安裝 50
4.1 安裝需求 50
4.2 Linux 下的安裝 50
4.2.1 安裝Ubuntu 10.10 操作系統 50
4.2.2 在Ubuntu 10.10 系統下安裝GNU Radio 52
4.3 安裝後的測試 53
4.3.1 連接檢測 54
4.3.2 程序測試 56
4.3.3 圖形界面GRC 的測試 60
參考文獻 61
第5章 GNU Radio 的使用 62
5.1 引言 62
5.2 使用系統附帶工具及功能軟件 62
5.3 使用GNU Radio 模擬 64
5.4 使用圖形化信號處理開發工具GRC 64
5.4.1 GRC 簡介 64
5.4.2 核心概念 64
5.4.3 GRC 使用要點 66
5.4.4 GRC 使用舉例 68
參考文獻 71
第6章 使用 Python 開發GNU Radio 應用程序 72
6.1 Python 72
6.1.1 Python 語言簡介 72
6.1.2 GNU Radio 中的Python 77
6.2 編程概念 77
6.2.1 低通濾波器音頻記錄機 77
6.2.2 撥號音發生器 78
6.2.3 QPSK 解調器 78
6.3 第一個Python 代碼例程 79
6.4 編程指南 81
6.4.1 Python 如何調用C++程序 81
6.4.2 GNU Radio 模塊 82
6.4.3 選擇、定義和配置功能塊 83
6.4.4 模塊的階層結構 85
6.4.5 並行流程圖 87
6.4.6 GNU Radio 的擴展和工具 89
6.4.7 流圖的控制 89
6.4.8 非流圖應用 91
6.4.9 高級主題 91
參考文獻 95
第7章 使用 C++開發GNU Radio 信號處理模塊 96
7.1 C++編程規範 96
7.1.1 編輯規範 96
7.1.2 設計規範 100
7.2 模塊結構 102
7.3 信號處理模塊的編寫 103
7.3.1 關鍵知識點 103
7.3.2 基於C++的開發方法 108
7.3.3 第一個模塊 112
7.4 圖形界面的使用 116
7.5 外部庫文件的使用 121
7.6 Octave 和MATLAB 的使用 122
7.6.1 Octave 的使用 122
7.6.2 MATLAB 的使用 124
7.7 版本控制 127
參考文獻 129
第8章 GNU Radio 無線傳輸實現範例 131
8.1 GNU Radio 調制方式實現 131
8.1.1 DQPSK&QPSK 調制方式實現 131
8.1.2 GMSK 調制方式實現 140
8.2 GNU Radio 的OFDM 無線傳輸 145
8.2.1 系統框圖和MAC 幀的構成 145
8.2.2 物理層 147
8.2.3 開發和調試方法 151
8.2.4 OFDM 系統實驗結果及分析 153
8.3 GNU Radio 的MIMO 技術 155
8.3.1 mux 參數的含義 156
8.3.2 代碼示例 158
參考文獻 164
第9章 GNU Radio 科研項目 166
9.1 GNU Radio 科研項目概述166
9.2 GNU Radio 科研項目介紹 166
9.2.1 OpenBTS 項目 166
9.2.2 Hydra 項目 180
9.2.3 認知無線電壓縮頻譜感知項目 183
9.2.4 其他應用 191
參考文獻 191
附錄A main_usrp_tx.py 193
附錄B demo_usrp_rx.py 198