基于matlab仿真实验---16QAM
- 1.仿真要求
- 2.仿真方案详细设计
- 16QAM 调制原理:
- 16QAM 解调原理:
- 3.仿真代码
- 仿真结果
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.仿真代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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!!!