跳至主要內容
佳盈老師學習園地

佳盈老師學習園地

有朋自遠方來,不亦樂乎

搭公車

週五的清晨,雨絲輕拂大地。我和女兒踏出家門,準備搭公車上班上學,履行先前的約定。突然心中閃過一個念頭:出門的時間比以往晚了些,是否會趕上較晚的班車?車廂裡是否會擁擠不堪?要不要改成自己開車呢?但轉念一想,還是決定堅持搭乘公車,以身作則,傳遞堅持不懈的理念。

我們邁開步伐,在雨中奔向公車站。所幸公車並未讓我們久候,很快就搭上了一班車。車上有些擁擠,女兒靠在我旁邊,抓著我的手,心裡覺得很踏實。不知不覺間,公車已經到站。我下車走到辦公室,看了一下時間,才7:15!心裡突然覺得很高興,真是美好的一天!


Jia-Yin小於 1 分鐘sharing
通道損害

目的

在本階段,我們將探討通道對信號的影響,以及比較信號在接收端與發送端之間的失真情況,主要討論通道模型中的雜訊、頻率偏移和時間偏移對信號的影響。

系統架構檔案:Qpsk_stage2.grc

步驟與說明

  1. 發送隨機的 QPSK 信號。
  2. 設置通道模型
    • 使用 GNU Radio 的基本通道模型來模擬主要的通道問題。
    • 接收器中的熱雜訊:假設為加成性白高斯雜訊 (AWGN),此處用雜訊電壓來模擬。
    • 頻率偏移:發送端和接收端的天線頻率不會完全一致,導致兩個無線電之間的頻率偏移。
    • 時間偏移:發送端和接收端的時鐘 (clock) 速度不同,理想的信號取樣點位置是未知的。
  3. 觀察信號經過通道之後的時域、頻域及星座圖的特性。

Jia-Yin大约 2 分鐘coursecomm
多相時鐘同步

目的

本階段實驗中,我們將使用多相時鐘同步 (Polyphase Clock Sync) 模組來實現三個功能:時鐘恢復、消除符號間干擾 (ISI) 以及下取樣信號 (減少每符號樣本數)。

系統架構檔案:Qpsk_stage3.grc

步驟與說明

  1. 接續前一單元,在信號經過通道後,使用 Polyphase Clock Sync 來處理接收到的信號。
    • 該模組包含 32 個濾波器,回路帶寬 (Loop bandwidth) 設置為 2π/1002\pi/100
    • 設定符號樣本數 (Samples per Symbol) = 4。
  2. 觀察信號經過 Polyphase Clock Sync 處理之後的時域、頻域及星座圖的特性。

Jia-Yin大约 1 分鐘coursecomm
信號解碼

目的

使用差分解碼器來消除相位歧義,將 Costas 迴圈後的信號進行解碼,恢復原始傳送的資料流。

系統架構檔案:Qpsk_stage6.grc

步驟與說明

  1. Costas Loop 之後,使用 Constellation Decoder 將信號解碼成 0~3 之間的符號。
  2. 使用差分解碼器對符號進行解碼。
  3. 將解碼後的符號轉換為原始傳輸的符號 0~3。
  4. 將最後解碼出來的符號與延遲後的原始傳輸符號進行比較。

Jia-Yin大约 2 分鐘coursecomm
多徑效應與等化器

目的

本階段實驗中,我們將探討多徑效應對信號的影響以及如何利用等化器來消除這些影響。此處等化器主要使用的原理是自適應算法中的恒模算法 (Constant Modulus Algorithm, CMA)。

系統架構檔案:Qpsk_stage4.grc

步驟與說明

  1. 接續前一單元,在 Polyphase Clock Sync 之後使用 Linear Equalizer 來處理接收到的信號,這邊 Linear Equalizer 使用的是 CMA 類型的濾波器。
  2. 觀察信號經過 Linear Equalizer 處理之後的時域、頻域及星座圖的特性。

Jia-Yin大约 2 分鐘coursecomm
匹配濾波器與符號間干擾

目的

在本實驗中,我們將通過一個 QPSK 星座圖來觀察上取樣 (up-sampling) 和濾波過程的效果,並探討如何利用匹配濾波器來消除符號間干擾 (ISI)。

系統架構檔案:Qpsk_stage1.grc

步驟與說明

  1. 發送隨機的 QPSK 信號,原理同上一單元。
  2. 利用 Decimating FIR Filter 接收發送的 QPSK 信號,該 FIR 採用 firdes.root_raised_cosine(1.0, samp_rate, samp_rate/sps, excess_bw, 11*sps) 生成 Root Raised Cosine(RRC) 濾波器的係數。
  3. 觀察信號的時域、頻域及星座圖的特性。

Jia-Yin大约 2 分鐘coursecomm
相位與頻率校正

目的

使用 Costas Loop 模組 校正接收信號的相位和頻率偏移。

系統架構檔案:Qpsk_stage5.grc

步驟與說明

  1. 接續前一單元,在 Linear Equalizer 之後,加上 Costas Loop 來處理接收到的信號。
  2. 觀察信號經過 Costas Loop 處理之後的星座圖特性。

Jia-Yin小於 1 分鐘coursecomm
QPSK

QPSK 簡介

在現代數位通訊系統中,正交相位移鍵控 (QPSK) 是一種廣泛使用的調變技術,具有高效的頻譜利用率和抗干擾能力。QPSK 通過改變載波信號的相位來傳輸數據,每個符號表示兩個位元,分別表示四個可能的相位狀態 (0, 90, 180, 270 度)。

教材來源

這份教材主要參考 GNU Radio Tutorials: QPSK Mod and Demod ,其中牽涉到許多數位通訊相關的技術,例如 Raised Cosine Filter、Inter-Symbol Interference (ISI)、脈衝整形 (pulse shaping)、差分編碼、多徑效應、加性白高斯雜訊 (AWGN)、頻率偏移和時間偏移、等化器、鎖相迴路等。


Jia-Yin大约 1 分鐘coursecomm
傳送 QPSK 信號

目的

這個步驟主要是隨機産生 QPSK 信號,並觀察不同的 Excess BW 參數對於信號頻寬的影響。

系統架構檔案:Qpsk_rrc_rolloff.grc

步驟與說明

  1. 首先産生隨機的位元資料流 (bit stream)。
    • 隨機數 0~255 等於是 8 個位元。
    • 輸出為 unpacked char 型態。
  2. 利用 Constellation Modulator 産生 QPSK 信號。
    • Constellation Modulator 會用到 Constellation Rect. Object,將符號 0,1,2,3 映射到複數平面上的信號點。
    • Differential Encoding 設成 Yes,表示採用差分編碼,亦即目前輸入與前一輸出的相位差。
    • Samples/Symbol 設成 4,表示每個符號要重複傳送 4 次。
    • Excess BW 是 Root Raised Consine 的 alpha 值,一般設在 0~1 之間,主要用來控制頻寬。Raised Consine Filter 常用來處理波形及 ISI 的問題。Root Raised Consine 則為 Raised Consine 的平方根。

Jia-Yin大约 3 分鐘coursecomm
解調

處理基頻訊號

將上節中調變過的訊號餵給一個 Virtual Sink, id=ooksignal。接下來我們增加一些模組,如下圖所示:

其中新增模組的參數如下:

  • Virtual Source: id=ooksignal
  • Xlating FIR Filter:
    • Taps: firdes.low_pass(1, samp_rate, 40e3, 1e3)
    • Center Frequency: fstation-fcenter
  • Time Sink:
    • Number of Points=16384,
    • Y: -0.1~1.1
    • Trigger Mode: Auto
    • Trigger Level: 0.5
    • Trigger Delay: 0.0002

Jia-Yin大约 2 分鐘coursecomm