QAM調制及其軟解調


本文以16QAM與64QAM為例,介紹QAM調制方式及其軟解調。

QAM調制一般采用格雷碼,其調制過程如下:

以16QAM為例,可將其分為兩部分,高兩位沿虛軸自下而上對二進制0到3依次進行格雷碼轉換。即將00,01,10,11轉換為00,01,11,10。低兩位則沿實軸自左而右按照同樣的方式進行編碼,最后得到16QAM調制星座圖:

注:采用格雷碼進行星座映射有多種方式,本文僅展現了其中一種,其是由Matlab QAM調制函數參數設置為格雷碼方式且初始相位為pi/2后得到的,若初始相位為默認值0,則星座圖如下所示:

注:初始相位設置為多少對性能並無影響,主要是其對應的軟解調方法會稍作調整(同樣的解映射方式,但軟信息所對應的比特位有所不同——因為經過了相位旋轉),而軟解調算法的論文研究常將高兩位沿虛軸變化,低兩位沿實軸變化,其所對應的Matlab QAM函數的初始相位便為pi/2(若初始相位為0,觀察上圖可知高兩位沿實軸變化,低兩位沿虛軸變化)。

附錄:

1,16QAM二進制轉格雷碼Matlab代碼:

%% 16QAM星座格雷碼映射--binary to gray
% bitshift函數輸入必須是十進制數
% bitxor函數輸入必須是十進制數
% a = ['00';'01';'10';'11'];
% a = bin2dec(a);
a = 0:3;
b = bitshift(a,-1); 
c = bitxor(a,b);
d = dec2bin(c);

2,QAM格雷碼映射的規則(Gray Code Mapping in QAM)  

64QAM調制同理。

初始相位為pi/2的64QAM星座圖為:

初始相位為0的64QAM星座圖為:

64QAM二進制轉格雷碼Matlab代碼:

%% 64QAM星座格雷碼映射--binary to gray
% bitshift函數輸入必須是十進制數
% bitxor函數輸入必須是十進制數
% a = ['000';'001';'010';'011';'100';'101';'110';'111'];
% a = bin2dec(a);
a = 0:7;
b = bitshift(a,-1); 
c = bitxor(a,b);
d = dec2bin(c);   

關於QAM的軟解調可參考兩篇論文,以下給出論文中的關鍵截圖以及論文鏈接:

16QAM軟解調:

64QAM軟解調:

QAM軟解調一般化:

QAM軟解調對邊界距離的修正(將常數改為變量):

參考鏈接:

1,Simplified soft-output demapper for binary interleaved COFDM with application to HIPERLAN/2

2,一種簡化的16QAM軟解映射算法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM