基於matlab仿真實驗---16QAM調製與解調

1.仿真要求

用基帶等效的方式仿真16-QAM在AWGN信道下的誤碼率和誤比特率性能,並與理論值相比較。

2.仿真方案詳細設計

16QAM 調製原理:

16QAM 是用兩路獨立的正交 4ASK 信號疊加而成, 4ASK 是用多電平信號去鍵控載波而得到的信號。
正交幅度調製是利用多進制振幅鍵控( MASK )和正交載波調製相結合產生的。 16 進制的正交振幅調製是一種振幅相位聯合信號。
16QAM 正交調製的原理如下:
圖中串/並變換器將速率爲Rb的二進制碼元序列分爲兩路,速率爲Rb/2.2-4電平變換爲Rb/2 的二進制碼元序列變成速率爲RS=Rb/log216 的 4 個電平信號,4 電平信號與正交載波相乘,完成正交調製,兩路信號疊加後產生 16QAM信號.在兩路速率爲Rb/2 的二進制碼元序列中,經 2-4 電平變換器輸出爲 4 電平信號,即M=16.經 4 電平正交幅度調製和疊加後,輸出 16 個信號狀態,即 16QAM.

RS=Rb/log216=RB/4.

在這裏插入圖片描述

16QAM 解調原理:

16QAM 信號採用正交相干解調的方法來解調,解調器首先對收到的 16QAM 信號進行正交相干解調,一路與 COSwt 相乘 , 一路與 SINwt 相乘。然後經過低通濾波器,低通濾波器濾除乘法器產生的高頻分量,獲得有用信號低通濾波器經抽樣判決可恢復出電平信號, 16QAN 正交相干解調圖如下:
在這裏插入圖片描述

3.仿真代碼

clear all;clc;
nsymbol=100000;
M=16;
graycode=[0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10];
EsN0=5:20;
snr1=10.^(EsN0/10);
msg=randi([0,15],1,nsymbol);
msg1=graycode(msg+1);
msgmod=qammod(msg1,M);
scatterplot(msgmod);
spow=norm(msgmod).^2/nsymbol;
for i=1:length(EsN0)
    sigma=sqrt(spow/(2*snr1(i)));
    rx=msgmod+sigma*(randn(1,length(msgmod))+1i*randn(1,length(msgmod)));
    y=qamdemod(rx,M);
    decmsg=graycode(y+1);
    [err1,ber(i)]=biterr(msg,decmsg,log2(M));
    [err2,ser(i)]=symerr(msg,decmsg);
end
p4=2*(1-1/sqrt(M))*qfunc(sqrt(3*snr1/(M-1)));
ser1=1-(1-p4).^2;
ber1=1/log2(M)*ser1;
figure()
semilogy(EsN0,ber,'o',EsN0,ser,'*',EsN0,ser1,EsN0,ber1,'-',EsN0,ber1,'-.');
title('16QAM-AWGN')
xlabel('Es/N0');ylabel('SER AND BER');
legend('ber simulation','ser simulation','ser theory','ber theory');

仿真結果

在這裏插入圖片描述

在這裏插入圖片描述

This blog is a pure learning record!!!
在這裏插入圖片描述
This blog is a pure learning record!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章