LTE下行链路SISO/MIMO高效性能仿真器
项目简介
本项目开发了一个基于MATLAB的LTE系统级仿真平台,专注于评估LTE下行链路共享信道在不同天线配置下的网络性能。该仿真器旨在解决大规模系统仿真中实时生成信道耗时过长的问题,通过独特的离线衰落参数预生成机制,在保持物理层模拟精度的同时,显著降低了计算复杂度。
仿真器完整覆盖了从比特生成、调制、层映射与预编码、信道传输到接收机均衡、解调及误码统计的完整通信链路,并支持SISO(单输入单输出)、MIMO发射分集以及MIMO开环空间复用等多种关键传输模式。
功能特性
*
TM1 (SISO):单天线传输模式,作为基准性能参考。
*
TM2 (MIMO TxDiv):基于SFBC/Alamouti算法的2x2发射分集模式,在低信噪比下提供更好的链路可靠性。
*
TM3 (MIMO OLSM):2x2开环空间复用模式,用于高信噪比环境下提升数据吞吐量。
- 高效仿真架构:采用“离线信道池”技术,预先生成瑞利衰落信道参数,通过查表和取模调用替代实时的复杂信道生成过程。
- 灵活的物理层参数:支持配置带宽(默认10MHz)、子载波间隔、调制方式(QPSK, 16QAM, 64QAM)及信噪比扫描范围。
- 链路级性能评估:基于物理层均衡后的信号与干扰噪声比(Post-Equalization SINR)进行建模,输出块误码率(BLER)和有效吞吐量(Throughput)曲线。
详细功能与算法实现逻辑
本节详细描述main.m脚本中实际实现的算法逻辑与处理流程。
1. 系统初始化与配置
仿真器首先建立系统参数结构体,默认配置为10MHz带宽(对应50个资源块,共600个子载波),载波频率2.1GHz。不仅定义了基本的物理层参数,还设定了从-5dB到25dB的信噪比扫描范围,以及用于统计误码率的帧数。
2. 离线衰落参数预生成 (核心优化)
为了提升效率,代码并未在每一帧实时生成信道矩阵,而是调用
generate_channel_pool函数预先构建信道池:
- SISO池:生成维度为
[1, 1, 子载波数, 池大小] 的复高斯随机变量。 - MIMO池:生成维度为
[2, 2, 子载波数, 池大小] 的复高斯随机变量。 - 查表机制:在主循环中,通过
mod(frame-1, ChannelPoolSize) + 1 的方式从池中快速提取当前帧对应的信道矩阵 H,实现了在有限内存开销下的无限长仿真序列模拟。
3. 发射机链路
仿真主循环针对设定的三种传输模式(SISO, MIMO-TxDiv, MIMO-OLSM)分别进行处理:
- 比特生成:根据传输模式下的层数(SISO/TxDiv为1层,OLSM为2层)计算所需随机比特数。
- 调制:调用
lte_modulator函数,支持QPSK、16QAM、64QAM映射(代码中示例主要配置为16QAM),采用UnitAveragePower归一化。 - 预编码 (lte_precoder):
*
SISO:直接透传。
*
TxDiv:实现标准的SFBC/Alamouti编码。将符号成对分组,天线1发送
[s0, -s1*],天线2发送
[s1, s0*]。
*
OLSM:实现空间复用映射,代码中通过串并转换将数据流分配到不同空间层,模拟多流并行传输。
4. 信道传输
lte_channel_transmit函数在频域模拟物理信道。对于每个子载波,执行 $Y = H times X + N$ 操作。其中噪声 $N$ 根据当前信噪比计算出的噪声功率进行施加,模拟加性高斯白噪声(AWGN)环境。
5. 接收机与性能解算
接收机部分(
lte_receiver)是性能评估的核心,负责从接收信号中恢复原始符号并计算信道质量:
- SISO模式:执行ZF/MMSE等效均衡,直接计算 $Symbols / H$,并根据 $|H|^2$ 计算后均衡SINR。
- MIMO发射分集:代码实现了Alamouti接收机合并逻辑。接收机提取相邻子载波的信号,利用信道矩阵的正交性结构解耦信号,构造等效信道矩阵进行检测。
- SINR统计:除了用于解调,接收机还计算Post-Equalization SINR,该指标与特定SNR点下的误块率直接相关。
6. 结果统计
在完成解调(硬判决)后,系统统计比特错误。只要一帧中存在比特错误,该帧即被标记为错误块(Error Block)。最终系统根据统计数据计算:
- BLER:误块数 / 总传输块数。
- 吞吐量:基于BLER和系统带宽计算有效数据传输速率(Mbps)。
最后,通过(未展示具体代码的)绘图函数将不同传输模式下的性能曲线进行可视化对比。
使用方法
- 确保MATLAB环境已安装通信工具箱(用于QAM调制解调函数)。
- 直接运行主函数
main。 - 程序将依次执行SISO、MIMO-TxDiv和MIMO-OLSM三种模式的仿真。
- 控制台将实时输出当前仿真的信噪比(SNR)、块误码率(BLER)和吞吐量(Throughput)数据。
- 仿真结束后,程序将自动生成性能对比图表。
自定义配置:
用户可以通过修改 main 函数开头的 simParams 结构体来调整仿真参数,例如:
- 修改
simParams.Modulation 切换 'QPSK' 或 '64QAM'。 - 修改
simParams.TransModes 选择特定的传输模式进行测试。 - 修改
simParams.Bandwidth 调整系统带宽。
系统要求
- MATLAB R2018a 或更高版本
- Communications Toolbox(通信工具箱)