信號解碼
2024年5月23日大约 2 分鐘
目的
使用差分解碼器來消除相位歧義,將 Costas 迴圈後的信號進行解碼,恢復原始傳送的資料流。
系統架構檔案:Qpsk_stage6.grc
步驟與說明
- 在
Costas Loop
之後,使用Constellation Decoder
將信號解碼成 0~3 之間的符號。 - 使用差分解碼器對符號進行解碼。
- 將解碼後的符號轉換為原始傳輸的符號 0~3。
- 將最後解碼出來的符號與延遲後的原始傳輸符號進行比較。
系統模擬
補充說明
差分解碼器的作用
- 差分解碼器通過相鄰符號的相位變化來解碼信號,避免了絕對相位的不確定性,特別適合處理 PSK 調製信號中的相位歧義問題。
比較接收位元流與輸入位元流
- 發送端生成的是打包的位元組 (packed byte) ,因此我們需要使用解包位元模組將每個位元組解包為 8 個位元。
- 為了便於比較,將位元流轉換為浮點數值 0.0 和 1.0,因為
Time Sink
僅接受浮點數和複數。
信號延遲補償
- 由於接收端中的多個模組和濾波器會引起信號延遲,因此和原始信號比較之前,要先對原始的資料流進行同樣的延遲補償。
- 調整延遲值,直到接收信號和發送信號完全同步。
練習 7
- 在上述模擬中,找到合適的延遲值,讓接收信號和發送信號完全同步。
- GNU Radio 在 3.10.9.0 版之後,建議使用
Symbol_Sync
來取代Polyphase_Clock_Sync
,新版的解碼架構可 點此下載。請使用新版進行模擬,並調整合適的延遲值,讓接收信號和發送信號完全同步。