关注我追更更多通信仿真代码文章目录摘要一、引言二、系统模型与理论基础2.1 16-QAM系统基带模型2.2 星座映射策略与汉明距离分析2.3 最大似然译码2.4 理论误码率三、仿真系统设计3.1 映射细节3.2 仿真参数3.3 仿真结果分析3.4 部分代码四、结论摘要正交幅度调制QAM凭借其卓越的频谱效率在现代高速数字通信系统中占据核心地位。本文以16-QAM调制解调系统为研究对象深入探讨了格雷编码与自然二进制编码两种星座映射策略对系统抗噪声性能的影响机理。基于加性高斯白噪声AWGN信道模型采用最大似然准则下的最小欧氏距离解调算法建立了完整的基带仿真链路。通过对比仿真实验与理论误码率曲线定量分析了两种映射方式在符号判决过程中的汉明距离分布差异。研究结果表明格雷编码通过将相邻星座点之间的汉明距离最小化在噪声引起的星座点偏移判决中显著降低了比特错误概率验证了格雷编码在高阶QAM系统中的工程应用价值。一、引言随着无线通信技术的飞速发展有限的频谱资源与日益增长的传输速率需求之间的矛盾愈发突出。正交幅度调制Quadrature Amplitude Modulation, QAM作为一种将信息载荷同时赋予载波幅度与相位的二维调制技术能够在有限的信道带宽内高效传输多比特信息因而被广泛采纳为数字电视广播、Wi-Fi协议簇以及4G/5G蜂窝通信等标准的核心物理层技术。在QAM系统中二进制比特流至复数星座点的映射规则直接影响着系统的端到端误码性能。理论分析表明当接收信号受高斯白噪声干扰落入相邻星座点的判决域时所产生的比特错误数取决于两星座点对应比特序列的汉明距离。自然二进制编码因未考虑空间邻接关系常导致相邻星座点具有较大的汉明距离而格雷编码则通过精心设计的映射表确保任意几何相邻点之间仅相差一个比特。本文旨在通过构建完整的MATLAB仿真链路系统评估上述两种映射方式在AWGN信道下的误码率差异。二、系统模型与理论基础2.1 16-QAM系统基带模型2.2 星座映射策略与汉明距离分析星座映射是将 k 位信息比特唯一映射至星座点集合 S 的数学法则本质上建立了汉明空间与欧氏空间之间的拓扑对应关系。2.3 最大似然译码2.4 理论误码率三、仿真系统设计3.1 映射细节从表中可直观验证任意水平或垂直相邻的两个星座点其对应的 4 比特序列均仅在 1 个位上存在差异汉明距离恒为 1。3.2 仿真参数参数名称符号/说明取值/设置调制阶数M MM16每符号比特数k log ⁡ 2 M k \log_2 Mklog2​M4总传输比特数n nn100,000等效符号数n / k n / kn/k25,000比特信噪比范围E b / N 0 E_b/N_0Eb​/N0​0 ~ 10 dB步进 1 dB信道模型—加性高斯白噪声AWGN调制映射方式—格雷编码Gray / 自然二进制编码Binary解调准则—最大似然ML等价于最小欧氏距离噪声生成—复高斯白噪声实虚部分别独立生成3.3 仿真结果分析可以看到格雷编码的误码率显著低于二进制编码且与理论值高度吻合验证了格雷编码通过最小化相邻星座点汉明距离有效降低误比特率的核心优势3.4 部分代码clc,clear,close all;%%1.数据生成M16;%调制阶数 klog2(M);%每符号比特数(k4)n100000;%处理的总比特数 dataInrandi([01],n,1);%生成随机二进制序列 dataInMatrixreshape(dataIn,length(dataIn)/k,k);dataSymbolsInbi2de(dataInMatrix);%转换为符号索引(0~15)%%2.调制dataModQAM_mod_Binary(dataSymbolsIn);%自然二进制编码调制 dataModGQAM_mod_Gray(dataSymbolsIn);%格雷编码调制%%3.AWGN 信道与 BER 计算EbNo_vec0:1:10;%Eb/N0 扫描范围(dB)ber_veczeros(size(EbNo_vec));%二进制编码 BER berG_veczeros(size(EbNo_vec));%格雷编码 BER theoretical_berzeros(size(EbNo_vec));%理论 BERforh1:length(EbNo_vec)snrEbNo_vec(h)10*log10(k);receivedSignalawgn_channel(dataMod,snr);receivedSignalGawgn_channel(dataModG,snr);dataSymbolsOutQAM_demod_Binary(receivedSignal);dataSymbolsOutGQAM_demod_Gray(receivedSignalG);dataOutMatrixde2bi(dataSymbolsOut,k);dataOutdataOutMatrix(:);dataOutMatrixGde2bi(dataSymbolsOutG,k);dataOutGdataOutMatrixG(:);[~,ber]biterr(dataIn,dataOut);[~,berG]biterr(dataIn,dataOutG);ber_vec(h)ber;berG_vec(h)berG;theoretical_ber(h)3/8*erfc(sqrt(0.4*10^(EbNo_vec(h)/10)));end%%4.绘制 BER 曲线figure(1);semilogy(EbNo_vec,ber_vec,r-s,LineWidth,1.5,MarkerFaceColor,r);hold on;semilogy(EbNo_vec,berG_vec,b-o,LineWidth,1.5,MarkerFaceColor,b);semilogy(EbNo_vec,theoretical_ber,k-,LineWidth,2);grid on;xlabel(Eb/N0 (dB));ylabel(Bit Error Rate (BER));title(16-QAM 误码率性能对比);legend(自然二进制编码 (仿真),格雷编码 (仿真),格雷编码 (理论),Location,southwest);hold off;%%5.绘制星座图对比二进制与格雷编码EbNo_demo[0,6,12];%低、中、高信噪比figure(2);set(gcf,Position,[100,100,1400,900]);%宽屏显示foridx1:length(EbNo_demo)snr_demoEbNo_demo(idx)10*log10(k);%生成两种编码的含噪信号注意使用相同的噪声种子为了公平对比可固定随机种子%但为了显示典型效果这里分别独立生成 rx_binaryawgn_channel(dataMod,snr_demo);rx_grayawgn_channel(dataModG,snr_demo);%----左子图二进制编码----subplot(length(EbNo_demo),2,(idx-1)*21);plot(real(rx_binary),imag(rx_binary),b.,MarkerSize,4);hold on;plot(real(dataMod),imag(dataMod),r*,MarkerSize,10,LineWidth,1.5);hold off;grid on;axis([-55-55]);axis square;xlabel(同相分量 (I));ylabel(正交分量 (Q));title([Eb/N0 ,num2str(EbNo_demo(idx)), dB (二进制编码)]);legend(接收信号,理想星座,Location,best);%----右子图格雷编码----subplot(length(EbNo_demo),2,(idx-1)*22);plot(real(rx_gray),imag(rx_gray),b.,MarkerSize,4);hold on;plot(real(dataModG),imag(dataModG),r*,MarkerSize,10,LineWidth,1.5);hold off;grid on;axis([-55-55]);axis square;xlabel(同相分量 (I));ylabel(正交分量 (Q));title([Eb/N0 ,num2str(EbNo_demo(idx)), dB (格雷编码)]);legend(接收信号,理想星座,Location,best);endsgtitle(16-QAM 星座图对比二进制编码 vs 格雷编码);%%6.保存结果saveas(figure(1),BER_Curve.png);saveas(figure(2),Constellation_Comparison.png);disp(仿真完成BER 曲线和星座对比图已保存。);四、结论本文通过 MATLAB 仿真验证了格雷编码在 16-QAM 系统中的抗噪声优势。仿真结果表明在 AWGN 信道下格雷编码通过最小化相邻星座点间的汉明距离相比自然二进制编码能显著降低误比特率其性能曲线与理论值高度吻合。这证实了格雷编码在高阶 QAM 调制中的工程价值为实际通信系统设计提供了参考。完整仿真代码可见往期文章文末VX公众号包含往期博客所有代码所见即所得