GNU Radio 實數與複數訊號分析

開源SDR實驗室發表於2020-10-02

本文內容、開發板及配件僅限用於學校或科研院所開展科研實驗!

溫馨提示:“開源SDR實驗室”是北京的。

本文利用GNU Radio來分析複數訊號,理解什麼是複數訊號,並介紹為什麼要引入複數訊號來分析訊號處理過程。

目錄

一、實驗原理

二、實驗內容

1、實數和複數餘弦訊號

2、Hilbert變換

3、實數訊號與複數訊號區別對比

三、聯絡方式


一、實驗原理

IQ訊號與IQ調製有關,IQ調製也稱為正交調製,其調製原理圖如下所示:

二、實驗內容

1、實數和複數餘弦訊號

搭建以下GRC程式,執行程式並檢視結果。所有模組的資料型別Type都設定為Float,圖中所有模組的輸入輸出都顯示為橙色

上圖顯示,我們得到了一個頻率為1K,幅度為1的餘弦實訊號。

接下來,我們將上述GRC程式中的所有模組的資料型別都修改為Complex後如下圖所示,所有模組的輸入輸出都顯示為藍色

執行程式得到如下結果,其中藍色線和綠色線的相位相差了90度,一個為I路,一個為Q路。

2、Hilbert變換

以上是用餘弦訊號作為訊號源,接下來我們分析一下用方波的情況以及用方波進行Hilbert變換的情況,按照下圖搭建方波的程式。注意Signal Source、Throttle、第一個WX GUI Scope Sink和Hilbert的輸入資料型別都是Float。第二個WX GUI Scope Sink的資料型別是Complex。

其中Hilert模組的引數設定如下圖所示。

原始的實數Float方波的時域波形如下圖所示。

原始實數Float方波經過Hilbert變換之後所得到的波形為下圖中的綠線波形所示。

為了檢視方波的複數訊號,我們搭建如下的GRC程式,通過檢視結果與上述Hilbert變換結果對比發現,GRC的複數訊號並不能正確顯示出一個複數方波訊號的Q分量,要想得到真正的Q分量,則需要用Hilbert模組才行。

3、實數訊號與複數訊號區別對比

接下來我們通過以下的兩個餘弦訊號相乘的例子再看一下實數訊號與複數訊號的區別。按照下圖搭建GRC程式。所有模組的資料型別都設定為Float。第一個餘弦訊號的頻率是10KHz,第二個餘弦訊號的頻率是1KHz,根據三角函式公式可知,二者相乘之後得到的訊號的頻率為9K和11KHz,我們利用三個WX GUI FFT Sink來分別檢視10K餘弦實訊號,1KHz餘弦實訊號和9K/11K乘積實訊號的頻譜。

第一個10KHz訊號的頻譜如下圖的Tab1所示:

第二個1KHz訊號的頻譜如下圖的Tab2所示:

10K和1K訊號相乘得到的結果訊號的頻譜如下圖的Tab3所示,這也就驗證了10K和1K訊號相乘得到的結果訊號的頻率是9K和11K。

當我們將上述GRC程式的所有模組資料型別都修改為Complex複數時,如下圖所示。

此時的10K餘弦複數訊號頻譜圖如下:

1K的餘弦複數訊號頻譜圖如下:

而10K*1K餘弦複數訊號的頻譜圖如下所示,我們發現此時只有11KHz訊號頻譜,並不像實數訊號中的那樣還存在一個9KHz訊號頻譜。

三、聯絡方式

淘寶店鋪、QQ技術交流群、CSDN聯絡方式如下:

微信公眾號二維碼:

 

相關文章