基於星座圖整形方法的QAM調製解調系統MATLAB誤位元速率模擬,對比16,32,64,256四種QAM調製方式

我爱C编程發表於2024-08-14

1.演算法模擬效果

matlab2022a模擬結果如下(完整程式碼執行後無水印):

2.演算法涉及理論知識概要

星座圖整形技術旨在透過最佳化星座點的佈局來改善系統的效能。這包括但不限於:

1.功率效率提升:透過非均勻分佈星座點,可以減少符號間的距離,從而在相同的平均功率下,傳輸更多資訊位元,但這也增加了對解調器的要求。

2.抗干擾能力增強:透過將星座點佈局在更有利於區分的區域,即使在存在噪聲或干擾的情況下,也能減少錯誤機率。

3.相位旋轉:某些情況下,對星座圖進行特定的旋轉可以減少某些型別的干擾影響。

隨著QAM階數的增加,資料傳輸速率得以提升,但同時也對通道質量、解調演算法複雜度以及系統整體的抗干擾能力提出了更高要求。星座圖整形是一種重要的手段,透過精心設計星座點佈局,可以在保持或提高系統效能的同時,增加資料傳輸效率。在實際應用中,選擇合適的QAM階數和最佳化星座圖設計是至關重要的,需要根據具體的通訊環境和系統需求綜合考量。

3.MATLAB核心程式

% 生成隨機位元序列
s          = randi([0 1],LEN*bitsPerSym,1);
% QAM對映
Tx1        = Trainable_mapping(s,M);%*****************************************************
 
Pnormal    = max(max(abs(Tx1)));
% 功率歸一化
Tx2        = func_power_normal(Tx1,Pnormal);
% 上取樣
Tx3        = upsample(Tx2,Fs/F_AWG);    
Tx4r       = func_Trainable_filter_F(real(Tx3),Fs,F_AWG);
Tx4i       = func_Trainable_filter_F(imag(Tx3),Fs,F_AWG);
Tx4        = Tx4r+sqrt(-1)*Tx4i;
 % 再次功率歸一化
Pnormal2   = max(max(abs(Tx4)));
Tx5        = func_power_normal(Tx4,Pnormal2);
%高斯白噪聲通道
Rx         = awgn(Tx5,SNR(i),'measured');
% 下采樣
Rx2        = downsample(Rx,Fs/F_AWG);
z          = func_RX_ww(Rx2,M,Pnormal2,Pnormal);% 解調
z2         = z(1:end);
err(i)     = 1-length(find(s==double(z2)))/length(s) 
end
figure;
plot(real(Rx2),imag(Rx2),'b.');
title('256QAM星座圖');
 
figure;
semilogy(SNR,err,'b-o');
grid on
xlabel('SNR');
ylabel('error');
 
if M==16
save R2_16.mat Rx2 SNR err
end
if M==32
save R2_32.mat Rx2 SNR err
end
if M==64
save R2_64.mat Rx2 SNR err
end
if M==256
save R2_256.mat Rx2 SNR err
end
0X_065m

  

相關文章