基于Alamouti方案的STBC空时分组码性能仿真系统
项目介绍
本项目是一个专门用于评估和演示无线通信中空时分组码(STBC)性能的仿真系统。系统核心基于经典的Alamouti双发射天线分集方案,通过在MATLAB环境下构建多输入多输出(MIMO)传输模型,定量分析了发射分集和接收分集对系统误比特率(BER)的提升效果。该仿真框架涵盖了从原始比特生成、数字调制、衰落信道模拟到判决等完整的物理层通信链路。
功能特性
- 多场景对比仿真:系统同时支持单输入单输出(SISO)、2发射1接收(Alamouti 2x1)以及2发射2接收(Alamouti 2x2)三种模式的性能对比。
- 物理层精细模拟:完整实现了QPSK调制映射、瑞利平坦衰落信道模拟、加性高斯白噪声(AWGN)添加。
- Alamouti编码与解码:严格遵循Alamouti空时矩阵编码规则,在接收端通过最大似然(ML)合并算法实现信号解耦。
- 动态统计与可视化:程序在运行过程中实时统计误码数,并在仿真结束后自动生成多曲线对比图表,同时提供特定信噪比下的信号星座图展示。
- 高可靠性仿真逻辑:采用循环迭代机制,直到达到设定的误码数量阈值或总比特限制,确保了统计结果的准确性。
实现逻辑与处理流程
仿真过程在主函数中循环执行,针对信噪比范围(0dB到20dB)内的每个点进行以下处理:
- 数据生成与调制:
随机生成二进制信息序列。采用QPSK调制映射逻辑,将每两个比特映射为一个复数符号。映射规则为:比特对经处理后转化为实部与虚部分量,实现如00映射为1+j、11映射为-1-j的星座逻辑,并进行功率归一化。
- SISO基准传输:
作为对照组,符号通过单径瑞利衰落信道并叠加噪声。接收端通过简单的信道补偿(除以信道系数)进行判决,统计误比特率。
- Alamouti 2x1传输实现:
*
编码:将符号序列分为s1和s2。在时间槽1,天线1和2分别发送s1和s2;在时间槽2,分别发送-s2*和s1*。
*
信道:模拟两根发射天线到一根接收天线的独立瑞利路径。
*
合并与判决:假设接收端已知信道状态信息(CSI),利用Alamouti合并公式(s1_hat = h1*y1 + h2*y2* 等)将时空符号解耦,恢复出原始发射符号的估计值。
- Alamouti 2x2传输实现:
* 构建2x2的信道矩阵。
* 在接收端,不仅利用了时间上的分集,还通过两根接收天线的空间信号进行加权合并,进一步增强了抗衰落能力。
- 性能评估:
对解调后的比特流与原始比特流进行比对,计算当前信噪比下的误比特率,并将结果存入容器。
关键技术算法说明
程序内置了基于象限判定逻辑的QPSK解调函数。通过判断接收符号实部和虚部的符号(正负),将其还原回原始的二进制比特流。
采用复高斯分布生成瑞利衰落系数,模拟非视距传输环境下的无线衰落特性。信噪比通过调整加性高斯白噪声的标准差(noise_sigma)来实现,确保信号平均功率为1。
这是Alamouti方案的可扩展逻辑。程序通过对不同时间槽和不同接收天线的信号进行复共轭加权合并,抵消了多径传播造成的相位偏移,并获得了最大化的信噪比增益。
自定义实现了二进制转十进制的辅助算法,采用左侧最高有效位(left-msb)原则,确保数据处理流程的准确性。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 工具箱需求:基础MATLAB环境即可(算法均为数学逻辑手动实现,不依赖特定的通信工具箱函数,具有很强的移植性)。
使用方法
- 启动MATLAB程序。
- 运行主函数脚本。
- 系统将开始在控制台实时输出不同信噪比下的误比特率统计结果。
- 仿真完成后,程序将自动弹出两个图窗:
*
图窗1:展示中等信噪比下,SISO接收信号与STBC合并后信号的星座图对比,直观观察信号聚合效果。
*
图窗2:展示BER vs. SNR的对数坐标曲线图,清晰呈现SISO、Alamouti 2x1与2x2之间的性能差异。