通訊實驗參考使用的教材。
目的
在本階段,我們將探討通道對信號的影響,以及比較信號在接收端與發送端之間的失真情況,主要討論通道模型中的雜訊、頻率偏移和時間偏移對信號的影響。
系統架構檔案:Qpsk_stage2.grc
步驟與說明
- 發送隨機的 QPSK 信號。
- 設置通道模型
- 使用 GNU Radio 的基本通道模型來模擬主要的通道問題。
- 接收器中的熱雜訊:假設為加成性白高斯雜訊 (AWGN),此處用雜訊電壓來模擬。
- 頻率偏移:發送端和接收端的天線頻率不會完全一致,導致兩個無線電之間的頻率偏移。
- 時間偏移:發送端和接收端的時鐘 (clock) 速度不同,理想的信號取樣點位置是未知的。
- 觀察信號經過通道之後的時域、頻域及星座圖的特性。
目的
本階段實驗中,我們將使用多相時鐘同步 (Polyphase Clock Sync) 模組來實現三個功能:時鐘恢復、消除符號間干擾 (ISI) 以及下取樣信號 (減少每符號樣本數)。
系統架構檔案:Qpsk_stage3.grc
步驟與說明
- 接續前一單元,在信號經過通道後,使用
Polyphase Clock Sync
來處理接收到的信號。- 該模組包含 32 個濾波器,回路帶寬 (Loop bandwidth) 設置為 。
- 設定符號樣本數 (Samples per Symbol) = 4。
- 觀察信號經過
Polyphase Clock Sync
處理之後的時域、頻域及星座圖的特性。
目的
使用差分解碼器來消除相位歧義,將 Costas 迴圈後的信號進行解碼,恢復原始傳送的資料流。
系統架構檔案:Qpsk_stage6.grc
步驟與說明
- 在
Costas Loop
之後,使用Constellation Decoder
將信號解碼成 0~3 之間的符號。 - 使用差分解碼器對符號進行解碼。
- 將解碼後的符號轉換為原始傳輸的符號 0~3。
- 將最後解碼出來的符號與延遲後的原始傳輸符號進行比較。
目的
本階段實驗中,我們將探討多徑效應對信號的影響以及如何利用等化器來消除這些影響。此處等化器主要使用的原理是自適應算法中的恒模算法 (Constant Modulus Algorithm, CMA)。
系統架構檔案:Qpsk_stage4.grc
步驟與說明
- 接續前一單元,在
Polyphase Clock Sync
之後使用Linear Equalizer
來處理接收到的信號,這邊Linear Equalizer
使用的是 CMA 類型的濾波器。 - 觀察信號經過
Linear Equalizer
處理之後的時域、頻域及星座圖的特性。
目的
在本實驗中,我們將通過一個 QPSK 星座圖來觀察上取樣 (up-sampling) 和濾波過程的效果,並探討如何利用匹配濾波器來消除符號間干擾 (ISI)。
系統架構檔案:Qpsk_stage1.grc
步驟與說明
- 發送隨機的 QPSK 信號,原理同上一單元。
- 利用
Decimating FIR Filter
接收發送的 QPSK 信號,該 FIR 採用firdes.root_raised_cosine(1.0, samp_rate, samp_rate/sps, excess_bw, 11*sps)
生成 Root Raised Cosine(RRC) 濾波器的係數。 - 觀察信號的時域、頻域及星座圖的特性。
目的
使用 Costas Loop 模組
校正接收信號的相位和頻率偏移。
系統架構檔案:Qpsk_stage5.grc
步驟與說明
- 接續前一單元,在
Linear Equalizer
之後,加上Costas Loop
來處理接收到的信號。 - 觀察信號經過
Costas Loop
處理之後的星座圖特性。
QPSK 簡介
在現代數位通訊系統中,正交相位移鍵控 (QPSK) 是一種廣泛使用的調變技術,具有高效的頻譜利用率和抗干擾能力。QPSK 通過改變載波信號的相位來傳輸數據,每個符號表示兩個位元,分別表示四個可能的相位狀態 (0, 90, 180, 270 度)。
教材來源
這份教材主要參考 GNU Radio Tutorials: QPSK Mod and Demod ,其中牽涉到許多數位通訊相關的技術,例如 Raised Cosine Filter、Inter-Symbol Interference (ISI)、脈衝整形 (pulse shaping)、差分編碼、多徑效應、加性白高斯雜訊 (AWGN)、頻率偏移和時間偏移、等化器、鎖相迴路等。
目的
這個步驟主要是隨機産生 QPSK 信號,並觀察不同的 Excess BW 參數對於信號頻寬的影響。
系統架構檔案:Qpsk_rrc_rolloff.grc
步驟與說明
- 首先産生隨機的位元資料流 (bit stream)。
- 隨機數 0~255 等於是 8 個位元。
- 輸出為 unpacked char 型態。
- 利用
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 的平方根。
處理基頻訊號
將上節中調變過的訊號餵給一個 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