[SDR] GNU Radio 系列教程(一) —— 什麼是 GNU Radio



1、GNU Radio 是什麼

GNU Radio 是一個免費、開源的軟件開發工具包,通過提供信號處理 “塊” 以幫助開發者實施軟件無線電。

它易於和一些低成本的RF硬件外設一起使用,也可以純模擬使用。

它廣泛應用於研究、行業、學術界、政府和業餘愛好者中,大大推動無線電技術的發展。


下面顯示了 GNU Radio Companion 可視化編輯器中的示例流程圖:

GNU Radio 是一個方便用戶設計、仿真、及部署功能強大現實世界無線電系統的框架。

  • 它是高度模塊化的,將各種信號處理功能做成豐富的 “塊” 庫;
  • 它具備面向 “流程圖” 的設計模式,用戶可像畫流程圖的方式,將 “塊” 有序連起來,構成複雜的信號處理應用程序;

GNU Radio 已大量用於現實世界中,包括:音頻處理、移動通信、衛星跟蹤、雷達系統、GSM 網絡、世界數字廣播。

就其本身而言,GNU Radio 沒有限制說只能和某一特定硬件配合使用,它也不提供特定無線電通信標準(例如:802.11,Zigbee,LTE...)的開箱即用服務,但它可以用於開發基本上任何頻段的通信標準的實現。


2、我爲什麼要用 GNU Radio

以前,在開發無線電通信設備時,工程師必須開發一個特定的電路來檢測、解碼、編碼、傳輸特定信號,並使用昂貴的設備進行調試。

使用軟件無線電(SDR)進行模擬信號處理時,只需要準備一個模擬信號收集硬件(通用的),然後將模擬信號處理的工作全部放計算機上,這樣就能省去準備和調試特定硬件電路所帶來的苦惱。

特定硬件的工作省了,可是你準備每次遇到不同需求,就準備從頭開始寫計算機上的模擬信號處理邏輯了嗎? 你準備從頭開始編寫爲了方便調試的交互式 GUI 了嗎? 你是不是在想 —— 這些工作能不能模塊化、標準化?

哈哈,GNU Radio 就是你想要的計算機信號處理框架。它將功能包裝在易於和可重複使用的 “塊” 中,具備豐富的可擴展性,提供了廣泛的標準算法庫,並且針對各種通用平臺進行了大量優化。它還帶有大量示例,可讓您快速入門。

本文的其餘部分提供了 DSP 的簡要介紹,如果您已經熟悉 DSP, 請隨時跳到下一個教程。


3、數字信號處理

作爲軟件框架,GNU Radio 致力於數字化信號,以使用通用計算機生成通信功能。

3.1 一點信號理論

軟件處理需要數字信號(計算機擅長處理數字),但是什麼是數字信號?

爲了更好的理解,讓我們看一下一個常見的 “信號” 場景:錄製語音、然後用手機進行傳輸 -->

人說話產生聲音 “信號”,該信號由人的聲帶震動引起空氣震動(形成空氣氣壓波)產生的,氣壓值會隨着時間變化:

當波到達麥克風時,它將變化的壓力轉換爲電信號,即可變電壓:

此時信號變成了電信號,模擬電路能處理它,但是計算機還不能處理(此時的電信號是模擬信號,計算機能處理數字信號(有限數量、有限時間)):

因此,我們需要對模擬信號進行採樣(等時採樣),如上圖,我們用採樣的一系列的點,代表模擬信號;每秒的採樣數量,稱爲採樣率。

  • 模擬量到數字量的過程稱爲 ADC(Analog-to-Digital Converter)
  • 數字量到模擬量的過程稱爲 DAC(Digital-to-Analog Converter)

現在我們有了一系列數字,我們的計算機可以對其進行任何操作。例如:數字濾波、壓縮、識別等。


3.2 將數字信號處理應用於無線電傳輸

無線電波和聲波原理類似:

信號(此處爲電磁波)可以使用天線轉換爲變化的電壓。

然後,該信號處於 “載波頻率” 上,該頻率通常是幾兆赫甚至千兆赫。


4、基於流程圖的模塊化數字信號處理方法

當要處理數字信號,直接利用將各個處理階段(過濾、校正、分析、檢測... )設計成的處理塊,可以使用簡單的流程指示箭頭進行連接:

當要建立信號處理應用程序時,需要建立完整的塊圖。這樣的圖在 GNU Radio 中稱爲流程圖。

GNU Radio 是一個開發這些處理塊並創建包含無線電處理應用程序的流程圖的框架。

作爲 GNU Radio 用戶,您可以將現有塊組合到一個高級流程圖中,GNU Radio 將自動在這些塊之間移動信號數據並在塊中進行信號處理。

  • GNU Radio 提供大量的塊,使用這些塊能快速設計流程圖來完成許多標準任務 —— 標準化、同步、測量和可視化。
  • GNU Radio 也支持用戶自己設計塊

因此,GNU Radio 主要是信號處理塊及其交互作用開發的框架,它帶有廣泛的標準塊庫,開發人員可以構建許多可用系統。但是 GNU Radio 本身並不是準備做特定事情的軟件 —— 儘管它已經附帶了許多有用的工作示例。但是用戶的工作就是從中構建有用的東西,可以將示例視爲一組構建塊。


本文視頻



參考鏈接

[1]. What Is GNU Radio



: ** 如果覺得不錯,幫忙點個支持哈~**

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章