《GNU Radio軟件無線電技術》首先介紹軟件無線電技術的發(fā)展背景和歷程,然后對一些常見的軟件無線電平臺進行詳細的介紹(第1章);其次介紹軟件無線電技術中的主要理論,包括信號采樣理論、多速率信號處理技術、數(shù)字濾波器技術以及軟件無線電的基本結構等(第2章);接著,針對GNURadio軟件無線電中的軟硬件平臺進行詳細的介紹(第3章),并給出GNURadio軟件無線電系統(tǒng)環(huán)境在Ubuntu上的安裝與測試方法(第4章);隨后,介紹GNURadio中的附帶工具和功能軟件,重點介紹GRC的使用方法,以及如何使用GRC和Python來開發(fā)通信系統(tǒng)(第5、6章);在此基礎上,《GNU Radio軟件無線電技術》還詳細分析基于C++語言來開發(fā)信號處理模塊的問題(第7章),同時對QPSK&GMSK調制方式、OFDM無線傳輸以及MIMO技術的GNURadio仿真實現(xiàn)進行詳細的介紹和分析(第8章);最后,《GNU Radio軟件無線電技術》對常見的基于GNU Radio的軟件無線電科研項目(OpenBTS、Hydra和GQRS)進行深入的分析和探討(第9章)。
《GNU Radio軟件無線電技術》可以為那些想通過構建GNURadio平臺來開發(fā)和驗證自己的創(chuàng)新想法或創(chuàng)新實踐的科研和工程人員提供系統(tǒng)性的知識脈絡和開發(fā)思路。
更多科學出版社服務,請掃碼獲取。
按照傳統(tǒng)的無線電產品開發(fā)思路,當有新技術出現(xiàn)或版本需要升級時,要開發(fā)新的專用芯片來支持,這往往會帶來巨大的投資風險,導致制造商和運營商對新技術持觀望態(tài)度,從而限制了新技術的快速應用和推廣。而軟件無線電技術能夠提供一種新的解決方案,該技術由Joseph Mitola于1992年首次提出,受到業(yè)界的廣泛關注。與傳統(tǒng)的無線電技術相比,該技術不必設計、開發(fā)新型專用芯片,即可驗證新技術的性能,如信號發(fā)生、調制/解調、信道編譯碼等信號處理過程以及協(xié)議棧均可由軟件實現(xiàn),而不需要硬件電路的支持。由于軟件無線電具有設備可重配置的特性,所以改變了傳統(tǒng)的基于硬件和面向用途的產品設計與開發(fā)方法,把信號的數(shù)字化處理盡量靠近天線側,能夠在前端硬件配置不變的情況下通過編寫軟件實現(xiàn)新的功能。軟件無線電的這一特點有利于新技術的發(fā)展,也有利于新技術的應用和推廣。同時軟件無線電技術為無線電技術領域的眾多科研與工程人員提供了很好的開發(fā)和研究平臺,可以非常容易地在搭建的軟件無線電平臺上驗證各種創(chuàng)新設計和科學設想的可行性,從而可以讓科研工作者將更多的精力集中在創(chuàng)新思路的構建上。
GNU Radio軟件無線電技術是采用GNU Radio開源軟件平臺、普通PC和廉價的硬件前端來開發(fā)各種軟件無線電應用的一門技術。其中,GNU Radio是一個開源的無線電平臺的軟件包。它是由Eric Blossom發(fā)起的一個完全開放的軟件無線電項目,旨在鼓勵全球技術人員積極參與到這一領域的協(xié)作與創(chuàng)新。GNURadio的開發(fā)主要是基于Linux操作系統(tǒng),采用C++編程語言結合Python腳本語言進行編程,也可以將它移植到其他的操作系統(tǒng)上。而硬件前端一般采用USRP(Universal Software Radio Peripheral)套件來實現(xiàn)。該套件通常由天線、射頻前端、模數(shù)/數(shù)模轉換器以及通用數(shù)字信號處理器組成。
GNU Radio軟件無線電技術可以理解為開源軟件的自由精神在無線領域的延伸,開放性和低成本是其最大的優(yōu)勢。低成本使得技術人員和資金不太充裕的研究機構可以像購買PC一樣擁有一套能自由進入頻譜空間的軟硬件系統(tǒng),從而為更廣泛的技術創(chuàng)新打下基礎。在GNU Radio的郵件討論組中每天都有來自世界各地的用戶對各種相關技術問題的討論,這些用戶包括學生、大學教師、軟硬件工程師、無線工程師、業(yè)余無線電愛好者,而這些人正是推動技術進步的主力。GNURadio的開放特性也是其具有廣泛吸引力的重要因素,同時也是其生命力的源泉。由于代碼和技術資料完全開放,人們可以了解到其運作的所有細節(jié),并可自由地對其進行修改和開發(fā)。在這種開放的氛圍之下,人們取得的知識、成果可以得到充分的交流共享,更有益于創(chuàng)新。
收起全部↑
目錄
前言
第1章 緒論1
1.1 軟件無線電發(fā)展概述1
1.1.1 背景1
1.1.2 軟件無線電概念及關鍵技術2
1.1.3 軟件無線電研究現(xiàn)狀3
1.1.4 存在的問題探討5
1.2 軟件無線電平臺介紹6
1.2.1 GNU Radio6
1.2.2 SORA7
1.2.3 Open Air Interface14
參考文獻17
第2章 軟件無線電基本理論20
2.1 信號采樣理論20
2.1.1 采樣定理21
2.1.2 帶通信號采樣定理22
2.2 多速率信號處理23
2.2.1 整數(shù)倍抽取23
2.2.2 整數(shù)倍內插25
2.2.3 采樣率分數(shù)倍變換27
2.3 數(shù)字濾波器27
2.3.1 數(shù)字濾波器設計基礎28
2.3.2 半帶濾波器28
2.3.3 積分梳狀濾波器29
2.4 軟件無線電基本結構30
2.4.1 數(shù)字下變頻30
2.4.2 數(shù)字上變頻31
參考文獻32
第3章 GNU Radio 軟件無線電平臺33
3.1 GNU Radio 平臺綜述33
3.2 GNU Radio 軟件架構35
3.3 GNU Radio 硬件平臺37
3.3.1 HackRF38
3.3.2 bladeRF39
3.3.3 USRP40
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 操作系統(tǒng)50
4.2.2 在Ubuntu 10.10 系統(tǒng)下安裝GNU Radio52
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 使用系統(tǒng)附帶工具及功能軟件62
5.3 使用GNU Radio 仿真64
5.4 使用圖形化信號處理開發(fā)工具GRC64
5.4.1 GRC 簡介 64
5.4.2 核心概念64
5.4.3 GRC 使用要點66
5.4.4 GRC 使用舉例68
參考文獻71
第6章 使用 Python 開發(fā)GNU Radio 應用程序72
6.1 Python72
6.1.1 Python 語言簡介72
6.1.2 GNU Radio 中的Python77
6.2 編程概念77
6.2.1 低通濾波器音頻記錄機77
6.2.2 撥號音發(fā)生器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++開發(fā)GNU Radio 信號處理模塊96
7.1 C++編程規(guī)范96
7.1.1 編輯規(guī)范96
7.1.2 設計規(guī)范100
7.2 模塊結構102
7.3 信號處理模塊的編寫103
7.3.1 關鍵知識點103
7.3.2 基于C++的開發(fā)方法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 無線傳輸實現(xiàn)范例131
8.1 GNU Radio 調制方式實現(xiàn)131
8.1.1 DQPSK&QPSK 調制方式實現(xiàn)131
8.1.2 GMSK 調制方式實現(xiàn)140
8.2 GNU Radio 的OFDM 無線傳輸145
8.2.1 系統(tǒng)框圖和MAC 幀的構成145
8.2.2 物理層147
8.2.3 開發(fā)和調試方法151
8.2.4 OFDM 系統(tǒng)實驗結果及分析153
8.3 GNU Radio 的MIMO 技術155
8.3.1 mux 參數(shù)的含義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.py193
附錄 B demo_usrp_rx.py198