使用 SDR 接收音頻

... 2021-04-23
  • Comm
About 3 min

# 使用 SDR 接收音頻

# 接收及解碼 FM 訊號

找到大致的中心頻率後,接著要建立一個接收和解碼的模擬系統。從程式庫模組中選擇 Variable, osomocomm Source, Low Pass Filter, WBFM Receive, Multiply Const, QT GUI Range, QT GUI Frequency Sink 及 Audio Sink 模組。將所有模組如下圖方式連接在一起:

各模組的參數依次如下:

  • Sample Rate: 設定為 8 MHz。
  • Variable: 設定接收的中心頻率
    • Id: fc
    • Value: 17241e4
  • osomocomm Source: 用來接收 HackRF One 的訊號
    • Device Arguments: hackrf=0
    • Ch0: Frequency (Hz): fc
    • Ch0: RF Gain (dB): 14
    • Ch0: IF Gain (dB): 32
    • Ch0: BB Gain (dB): 50
  • Low Pass Filter: 低通濾波並降低抽樣頻率
    • Decimation: 25
    • Cutoff Freq: 200e3
    • Transition Width: 40e3
  • WBFM Receive: 用來解碼 FM 訊號
    • Quadrature Rate: 320e3 (調變訊號頻率)
    • Audio Decimation: 10 (解碼訊號的 Decimation Factor)
  • QT GUI Range: 調整播放音量
    • id: gain
    • Default Value: 0.2
    • Start: 0
    • Stop: 1
    • Step: 0.1
  • Multiply Const: 調整播放音量
    • Constant: gain
  • QT GUI Frequency Sink: 用來觀察解碼訊號
    • Bandwidth: 32e3
  • Audio Sink: 用來播放解碼訊號
    • Sample Rate: 32e3

在這個系統中,Variable 模組是用來設定變數的值,此處主要設定訊號的中心頻率。osomocomm Source 模組則用來接收軟體無線電的訊號,其中 Device Arguments 設定 hackrf=0 表示使用的是第一台連接到電腦的 HackRF one SDR,另外 RF/IF/BB 三個參數則是設定該 SDR 的訊號增益。Low Pass Filter 是將訊號做低通濾波,本例中主要保留 200 KHz 以下的訊號,過渡帶設為 40 KHz。濾波之後,同時將訊號的抽樣速度降為 1/25 (Decimation=25),也就是抽樣速度變成 8 MHz/25 = 320 KHz。接著透過 wideband 的 FM 接收模組來將訊號解碼 (Quadrature Rate = 320 KHz),同時在輸出前將訊號抽樣速度降為 1/10 (Audio Decimation = 10)。因此最後解出的訊號,其抽樣速度變成 320 KHz/10 = 32 KHz。這個最後解出的訊號,再經過一個乘法器,調整適當的輸出音量,最後透過 QT GUI Frequency Sink 觀察輸出頻率,同時也透過 Audio Sink 進行播放。以上是整個系統大致的運作過程。注意 Audio Sink 一般只能接受幾種特殊的運作頻率,此處 32 KHz 是其中可以接受的一個頻率。

接好之後,將檔案存檔,產出模型並執行,如果沒有錯誤的話,應該會看到輸出的弦波圖形,同時也會聽到播放音頻的聲音。

HackRF One 接收端的增益

HackRF One 在接收訊號時,可以調整三個增益值,分別為 RF Gain/IF Gain/Baseband Gain;而在傳送時,則只有 RF Gain/IF Gain 兩者有作用。以接收端來說, RF Gain 實際上只有 0 dB 和 14 dB 兩種選擇,其他設定值會依照最接近的值自動調整。以本例而言,設定為 10,則實際上會調整為 14 dB。應該特注意的一點:如果訊號發射的強度很強,此處增益值又設定得很大,則有可能會損壞 HackRF One 硬體,如果不是很確定接收訊號的強度,可以先從 0 開始,等發現訊號太微弱時再調成 14。IF Gain 的值可以從 0 dB 到 40 dB,調整間隔為 8 dB,這個值如果設定太大,並不會損壞硬體,但是訊號可能會產生扭曲失真的現象。最後是 Baseband Gain,可以調整的範圍是 0 dB 到 62 dB,調整間隔為 2 dB,這個增益值具有最大的調整空間。一般來說,在接收和處理無線射頻訊號的過程中,其頻率會一級一級逐次下降,而增益的調整空間也會漸次變大。


練習

  1. 建立如上所述的 FM 訊號接收器,並實際接收所發送的單頻訊號。
  2. 適當調整接收頻率,是否可以收得到 FM 電台的訊號?
Last update: May 7, 2021 10:25
Contributors: Jia-Yin