16QAM调制与解调-MATLAB基带仿真
---------------------------- 2020.05.14更新:----------------------------------
有几位小伙伴在评论区与私信想要高维M-QAM的代码,更新文章供大家参考:
高维M-QAM调制与解调-MATLAB基带仿真
仿真步骤
- 产生一定长度的值为0或1的随机序列 s ( t ) s(t) s(t)。
- 将 s ( t ) s(t) s(t)映射到16QAM星座图上的星座点。
- 产生高斯白噪声,将调制后的信号通过AWGN信道,得到输出信号 r ( t ) r(t) r(t)。
- 利用最小距离判决准则实现检测,统计误比特数。
- 绘制仿真误符号率与理论误符号率曲线,进行对比分析。
16QAM发送端星座图:
注意:
在仿真中,需要考虑发送信号能量的归一化。
这里提供一种思路
EbN0_dB = 0:14; % Eb/N0 dB形式
EbN0 = 10.^(EbN0_dB/10); % 每比特能量/噪声
EsN0 = log2(M) * EbN0; % 每符号能量/噪声
send_set = [-3+3j,-1+3j,1+3j,3+3j,...
-3+1j,-1+1j,1+1j,3+1j,...
-3-1j,-1-1j,1-1j,3-1j,...
-3-3j,-1-3j,1-3j,3-3j]; % 发射端星座点
Es_avg = sum(abs(send_set).^2) / length(send_set);
N0 = Es_avg ./ EsN0;
也就是这里面的Es_avg,计算了发送信号的平均能量。
16QAM相干解调:
最小距离判决准则: