交织分复用多址 (IDMA) 系统链路级仿真平台
项目介绍
本项目提供了一个完整的交织分复用多址 (IDMA) 通信系统链路级仿真环境。IDMA 作为一种非正交多址接入 (NOMA) 技术,其核心思想是利用用户特有的随机交织器来区分不同用户的信号,并在接收端采用低复杂度的芯片级迭代检测算法。
该仿真平台通过 MATLAB 实现了从发射端信号处理、信道建模到接收端多用户检测的全过程。通过该平台,用户可以量化分析在不同信噪比、用户数量及迭代次数下的系统误码率 (BER) 性能,并直观观察迭代检测算法的收敛特性。
功能特性
- 多用户信号并发模拟:支持多达 10 个(可调)用户同时在同一频率和时间资源上传输。
- 软输入软输出迭代架构:集成了基本信号估计 (ESE) 和针对重复码的软输入软输出 (SISO) 解码器。
- 灵活的编码与映射:采用重复码作为前向纠错 (FEC) 手段,结合 BPSK 星座映射,简化算法逻辑并突出 IDMA 核心机制。
- 随机交织区分机制:为每个用户生成独立的随机交织序列,模拟 IDMA 区分用户的物理层特征。
- 自动化性能评估:自动生成误码率随信噪比变化的曲线,以及误码率随迭代次数变化的收敛曲线。
- 频谱效率量化:程序根据用户数和扩频因子自动计算并报告系统的总频谱效率。
系统要求
- 软件环境:MATLAB R2018b 或更高版本。
- 硬件要求:标准台式机或笔记本电脑即可,仿真运行时间取决于设置的仿真帧数和迭代次数。
实现逻辑与功能细节
1. 系统初始化与参数配置
程序开始时定义了仿真的核心参数:
- 用户总数 (K):默认为 10,代表并发接入的用户量。
- 扩频因子 (S):通过重复码实现,决定了冗余度和处理增益。
- 信噪比范围:设定 Eb/No 的变化区间(0 至 12 dB)。
- 迭代深度:设置接收端最大的迭代次数(10次),用于观察性能随迭代的增益。
2. 交织器生成
程序为每一个用户独立生成一对交织器和解交织器。交织器通过对芯片序列进行随机排列实现,确保各用户信号在码域上具有极低的相关性。解交织器则通过排序索引函数生成,用于接收端的信号恢复。
3. 发射端处理流程
针对每个用户,程序执行以下操作:
- 信息生成:产生随机的二进制原始比特流。
- 重复编码:将每个比特重复 S 次,实现基础的信道编码。
- 星座映射:将二进制 0 映射为 +1,1 映射为 -1。
- 随机交织:按照该用户独有的序列对芯片进行位置打乱。
4. 信道模拟
模拟加性高斯白噪声 (AWGN) 信道。程序根据当前设定的 Eb/No 计算噪声方差,考虑到多用户叠加以及重复码率的影响,对噪声功率进行精确缩放,确保仿真结果的学术准确性。
5. 接收端迭代检测算法
这是系统的核心部分,采用 ESE 和 SISO 相互协作的结构:
- ESE 阶段:针对每一个芯片位置,利用所有用户的外部信息计算均值和方差,通过减去当前用户的贡献来估计多用户干扰 (MUI),从而产出各用户芯片级的似然比 (LLR)。
- SISO 阶段:首先对 ESE 输出的 LLR 进行解交织。然后针对重复码的特性,对属于同一个原始比特的多个芯片 LLR 进行累加求和。
- 外部信息交互:为了保证迭代增益,SISO 将计算得到的反馈信息减去输入的先验信息,得到纯粹的外部信息,经过重新交织后传回 ESE。
- 硬判决:在迭代过程中或结束时,根据最终的 LLR 正负值进行比特判决。
6. 数据统计与可视化分析
仿真循环结束后,程序会执行以下分析:
- 误码率计算:对比判决比特与原始比特,计算每个 SNR 点在特定迭代次数下的 BER。
- 性能趋势图:绘制多条 BER 曲线,对比第 1 次、第 3 次及最后一次迭代的性能差异。
- 收敛特性图:选取特定的信噪比点,展示 BER 随迭代次数增加而下降的过程。
- 频谱效率报告:在控制台输出系统的总吞吐能力参数。
使用方法
- 打开 MATLAB 软件。
- 将仿真代码脚本加载至当前工作路径。
- 直接运行该脚本。
- 运行结束后,程序将在 command window 输出各阶段的 BER 数值及频谱效率报告,并自动弹出两张性能分析图表。
- 用户可以通过修改程序顶部的参数(如 K、S、Max_Iter 等)来探索不同配置下的 IDMA 系统性能极限。