AM 訊號解碼

... 2021-05-08
  • Comm
About 2 min

# AM 訊號解碼

把頻道調到中心點之後,接著用一個低通濾波器,就可以把想要的訊號保留住,而把其他電台的訊號濾除掉。這時的訊號仍是 AM 調變過的訊號,因此只要使用 AM 的解碼模塊,就可以將訊號解碼了。

將上一個系統擴充如下圖:

這邊我們加了幾個元件,首先是低通濾波器,這邊 Cutoff Freq 設定為 5e3,過渡帶設定為 100(為什麼這樣設呢?),接下來訊號接到 AM Demod 進行 AM 的解碼。其中的參數 Channel Rate 設定 256e3,而 Audio Decimation 設為 8,也就是將解碼出來的訊號,其抽樣速度改成 256K/8 = 32K。因此接下來就可以透過 Audio Sink 進行播放,不過播放之前,我們先乘上一個常數,以便用來調整播放的音量,而所乘的常數則使用 QT GUI Range,便於在執行時進行調整。注意這邊 Audio Sink 的 samp_rate 要設定成 32K。

如果沒有接錯的話,存檔執行之後,就可以調整電台的頻道及播放的音量了。

實際上,上面調整頻道的過程:把訊號和一個 Signal Source 做相乘,然後再經過低通濾波,實在太常使用了,因此 GNU Radio 提供了一個 Frequency Xlating FIR Filter 模組來做這件事。這個模組就是把訊號原來的中心點移到新的頻率,並且以新的頻率為中心做低通濾波,來保留所要的頻道訊號。

試著將系統改成如下圖所示:

其中 Frequency Xlating FIR Filter 模組的參數如下:

  • Taps: firdes.low_pass(1, 256e3, 5000, 100):表示增益為 1,抽樣速度為 256K,保留頻帶到 5K,過濾帶為 100。
  • Center Frequency: fc-710e3:原來中心 0 的地方為 710e3,現在則以 fc 為中心。

使用 Frequency Xlating FIR Filter 可以讓系統看起來更清爽,不過缺點是調整過頻率而還沒有濾波的中間訊號,沒有辦法拉出來用 Frequency Sink 來進行觀察。

Last update: May 9, 2021 15:32
Contributors: Jia-Yin