空间调制系统:8QAM与16QAM传输5比特信息性能对比仿真项目
项目介绍
本项目专门用于研究在固定频谱效率(5 bits/symbol)的约束下,空间调制(Spatial Modulation, SM)系统的性能表现。空间调制是一种新型的多天线传输技术,其核心思想是利用发射天线的索引信息来承载部分比特,从而在不增加射频链路的情况下提升传输速率或改善误码率性能。
本项目对比了两种具体的技术方案:
- 方案A:4发射天线 + 8QAM调制。在该方案中,2比特用于选择4根天线中的一根,3比特用于映射8QAM符号,总计5比特。
- 方案B:2发射天线 + 16QAM调制。在该方案中,1比特用于选择2根天线中的一根,4比特用于映射16QAM符号,总计5比特。
通过仿真对比,直观展示了在相同传输速率下,增加空间维度(天线数量)与降低信道映射难度(调制阶数)之间的性能权衡。
功能特性
- 多均衡配置支持:实现了不同发射天线数量与不同QAM调制阶数的自由组合,并保持总比特率一致。
- 物理层全链路模拟:涵盖了源比特生成、空间映射、星座图映射、衰落信道建立到最后解调的全过程。
- 最大似然(ML)检测:在接收端采用全搜索最大似然准则进行联合检测,保证了仿真性能的最优基准。
- 高精度统计:采用蒙特卡洛(Monte Carlo)实验方法,通过大量比特测试确保误码率(BER)结果的收敛性。
- 性能可视化:自动生成信噪比(SNR)与误码率(BER)的对数曲线关系图。
使用方法
- 启动MATLAB软件。
- 将仿真脚本文件放置在当前工作路径。
- 直接运行该脚本,程序将自动开始依次计算不同信噪比下的误码率。
- 在命令行窗口(Command Window)观察实时输出的SNR与BER数值表。
- 仿真结束后,程序会自动弹出对比曲线图并输出映射示例和结论报告。
系统要求
- 运行环境:MATLAB R2016a 或更高版本。
- 核心工具箱:基础MATLAB环境即可(无需专门的通信工具箱,因为脚本中已包含自定义的二进制转十进制转换函数)。
实现逻辑与仿真流程
核心脚本内部按照以下逻辑流程执行:
1. 参数初始化
设定SNR范围为0dB到20dB,接收天线数固定为4。根据方案定义,预设两组发射天线数(4和2)以及对应的星座阶数(8和16)。
2. 星座图构建与功率归一化
- 对于8QAM,构建了一个非对称的混合映射星座,并进行能量归一化。
- 对于16QAM,构建了标准的4x4矩形星座映射,同样进行归一化处理以保证两种方案在相同的平均发射功率下对比。
3. 信号传输模拟
对每一个信噪比点进行以下操作:
- 空间映射:将输入的5位比特流拆分为两部分。根据前几位比特(天线位)确定被激活的发射天线索引,根据后几位比特(数据位)确定发送的QAM符号。
- 信道建模:生成一个服从瑞利分布(Rayleigh Fading)的复高斯信道矩阵。信道具有平坦衰落特性。
- 噪声模拟:在接收信号中添加满足功率定义的复加性高斯白噪声(AWGN)。
4. 接收端联合检测
接收机在已知信道状态信息(CSI)的假设下,遍历所有可能的天线索引和星座点组合。通过计算接收向量与每个重构参考点之间的最小欧氏距离,实现对发射天线位置和调制符号的联合估计。
5. 性能统计与比对
比较恢复后的比特流与原始比特流,统计错误总数并计算每个SNR下的误码率。
关键函数与实现细节分析
- 自定义进制转换函数:脚本中实现了自定义的二进制转十进制(bi2de_custom)和十进制转二进制(de2bi_custom)函数。这两个函数采用低位优先(Little-endian)原则,确保了比特流与映射索引之间的一一对应,且不依赖于外部工具箱。
- ML检测算法:接收端的核心是一个嵌套的双层循环。外层循环遍历所有发射天线分支,内层循环遍历星座点映射表。该算法计算 $||y - H_a cdot s_m||^2$ 的最小值,其中 $y$ 是接收信号,$H_a$ 是信道矩阵的第 $a$ 列,$s_m$ 是映射表中的第 $m$ 个符号。
- 功率归一化技术:为了保证对比的公平性,代码通过
sqrt(mean(abs(const).^2)) 对不同阶数的星座点进行了幅度缩放,使得无论8QAM还是16QAM,其平均符号能量(Es)均为1。 - 信道随机性:代码在每个符号周期内都重新生成信道矩阵,这模拟了快衰落信道环境,能够更全面地考量系统的平均性能。
仿真结论简报
根据代码实现的分析,通常仿真结果会揭示以下规律:由于方案A使用了更多的天线(4Tx),其在空间维度上提供了更大的区分度,且8QAM的星座点间距显著大于16QAM,因此在抗噪声性能上,方案A通常会优于方案B。这种优势在低信噪比环境下尤为明显,体现了空间调制通过牺牲天线资源来换取高可靠性通信的特性。