[SDR] GNU Radio 系列教程(十五)—— GNU Radio GFSK 模塊



1 GFSK 背景知識

調製分類如下:[2]

GFSK 是 FSK 的擴展,其中調製信號的頻率不會在二進制數據的每個符號週期開始時立即改變。 因此,bit 0-> 1 或反之變得更加平滑。換句話說,與傳統的 FSK 相比,調製信號的幅度和相位變化將相對較小。原則上,FSK 是使用獨立的本地振盪器分別用於同相和正交分量來實現的,並且振盪器將在每個符號週期開始時切換以生成用於調製的載波頻率。一般而言,所有獨立振盪器在符號週期開始時不會處於相同的幅度和相位,因此這會導致傳輸信號的每個比特變化的頻率突然變化。因此,調製後的 FSK 信號將非常寬,並且具有不可忽略的旁瓣。下圖說明了這一點。

圖 1:給定數字信號的 FSK 調製信號

信號被正確解碼的前提是:在每個符號週期之後具有精確和準確的幅度和相位值。如果接收端收到這樣的信號,將會造成信道失真、干擾、熱再生等,從而降低 FSK 的性能。

在 GFSK 調製方案中,需要在基帶波形信號前引入高斯濾波器。典型的高斯濾波器是脈衝響應爲高斯函數的濾波器(如下圖爲高斯脈衝響應)

圖 2:高斯濾波器的脈衝響應

時閾上的高斯函數在頻閾上仍是高斯函數,因此該濾波器的頻率響應非常窄。當輸入信號通過此類濾波器時,與不涉及濾波的 FSK 方案相比,所得到的濾波信號的頻譜寬度會減小。因此,FSK 中頻率的任何突然變化都會被濾除,這使得每個符號週期開始時的轉換比 FSK 相對平滑(下圖是 GFSK 信號的響應)

圖 3:高斯濾波信號和 GFSK 調製信號響應

該濾波器的優點是降低邊帶功率,減少對相鄰信道的干擾,但代價是增加碼間干擾 (ISI)。因此,仔細設計具有最佳截止頻率的高斯濾波器對於確保最小化 ISI 相關影響非常重要。此外,還可以使用其他穩健的信號處理和信道均衡技術來克服 ISI 的影響。

調製信號之前的這個濾波階段也稱爲脈衝整形,因爲數據脈衝被濾除以產生具有急劇上升和下降時間的乾淨輸出信號,這有助於準確確定接收信號的載波頻率。GFSK 技術非常有用,廣泛用於無線系統和技術,例如改進 Layer 2 protocol,、藍牙、IEEE 802.15.4 和 Z-wave。


2 GNU Radio GFSK 模塊參數詳解

GFSK Mod 的輸入是字節流 byte stream,輸出是基帶複雜調製信號。

參數 意義 解釋
Samples/Symbol Samples per baud >= 2 (integer)
Default value = 2
這有個鏈接介紹的比較清楚

Sensitivity Given to the Frequency Mod
Default value = 1.0
Frequency Mod
BT Gaussian filter bandwidth * symbol time (float)
Default value = 0.35
這有個 matlab 關於高斯濾波器的 BT 參數對濾波效果的影響文章

Verbose Prints the value of bits per symbol and BT
Default value = Off
Log Prints the following modulation data to .dat files:
* Chunks to Symbol data is written to "nrz.dat"
* Output of Gaussian filter is written to "gaussian_filter.dat"
* Output of frequency modulator is written to "fmmod.dat"
Default value = Off
Unpack (depreciated in GNU Radio 3.8) Unpack input byte stream?

GFSK Demod 的輸入是基帶複雜調製信號,輸出是 a stream of bits unpacked, 1 bit per byte (the LSB)

參數 意義 解釋
Samples/Symbol Samples per baud >= 2 (integer)
Sensitivity Given to the Quadrature Demod
Gain Mu Controls rate of mu adjustment
Mu Fractional delay [0.0, 1.0]
Omega Relative Limit Sets max variation in omega (float, typically 0.000200 (200 ppm))
Freq Error Bit rate error as a fraction
Verbose Print information about modulator?
Log Print modualtion data to files? (bool)

3 GNU Radio GFSK 模塊簡示例

我們對 9 位長的比特流 000111011 進行 GFSK 調製,然後對其進行 GFSK 解調:


運行後效果如下:

解釋:我這裏採樣率故意設置爲 10KHz,這樣在時序圖中每個採樣佔用 0.1 MS 方便觀察。從圖中可以看到信號 2 和信號 3 是一致的,說明我們經過 GFSK 調製解調後數據和原來保持一致。(這裏有個 delay 滑動條,用來平移原始信號,方便錯開觀察的,其數值的意義是延遲 n 個樣本)


4 本文視頻教程




參考鏈接

[1].什麼是 GFSK 調製?
[2].Frequency-shift keying
[3].GFSK vs FSK
[4].Digital GFSK Carrier Synchronization-IEEE
[5].Samples Per Symbol
[6].FIR Gaussian Pulse-Shaping Filter Design - Matlab
[7].數字和模擬濾波器 — 示例
[8].Frequency Mod
[9].GFSK Demod


教程列表

基礎教程:


綜合教程:


視頻和博客



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

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