PUCCH 物理层全链路仿真系统 (基于 3GPP TS 36.211)
项目介绍
本项目是一个基于 MATLAB 开发的高度集成的物理层链路级仿真平台,专门用于验证和评估 LTE (Long Term Evolution) 系统中的物理上行控制信道 (PUCCH)。该系统严格遵循 3GPP TS 36.211 协议规范,实现了从上行控制信息 (UCI) 生成、基带信号处理到无线信道传输及接收端解调的全流程模拟。通过该仿真系统,研究人员和工程师可以定量分析 PUCCH 在不同信道环境下的误码率 (BER) 表现以及物理资源的动态映射特性。
功能特性
- 多格式支持:全面覆盖 PUCCH Format 1, 1a, 1b (用于 SR 和 HARQ-ACK) 以及 Format 2, 2a, 2b (用于 CQI/PMI/RI 反馈)。
- 核心算法实现:包含基于 Zadoff-Chu 的基序列生成、循环移位 (Cyclic Shift) 处理以及时域正交扩频逻辑。
- 动态资源映射:完整实现了时隙 (Slot) 间的跳频 (Frequency Hopping) 机制,确保控制信道在系统带宽边缘的正确分布。
- 信道环境模拟:内置 AWGN 信道及典型多径衰落信道模型(如 EPA, EVA, ETU),支持参数化信噪比 (SNR) 扫描。
- 全链路验证:集成调制、映射、信道传输、Zero-Forcing (ZF) 均衡以及软/硬判决解调,形成闭环仿真。
- 可视化输出:实时生成 BER/FER 性能曲线图、物理资源映射网格热力图以及接收端星座图。
系统要求
- 软件环境:MATLAB R2020a 或更新版本。
- 必备工具箱:Communications Toolbox, Signal Processing Toolbox。
仿真系统实现逻辑
系统的核心执行逻辑遵循 LTE 物理层处理管道,具体流程如下:
- 参数初始化:
配置系统带宽(默认 5MHz/25RB)、物理小区 ID (N_ID_cell)、PUCCH 资源索引及仿真所需的 SNR 范围和帧数。
- 上行控制信息 (UCI) 生成:
根据设定的 PUCCH 格式随机生成原始比特。Format 1 系列生成 1 或 2 比特信息;Format 2 系列生成 20 比特编码后的信息流。
- 基带调制映射:
将比特流映射为 BPSK (Format 1a) 或 QPSK (Format 1b/2) 符号。对于 Format 2,10 个 QPSK 符号代表了反馈的信道状态信息。
- 物理资源计算与跳频:
计算该子帧两个时隙内 PUCCH 占用的物理资源块 (PRB) 索引。系统实现了一个跳频逻辑,使得在 Slot 0 和 Slot 1 中,控制信息分布在系统带宽的不同边缘(高频段与低频段对调)。
- 信号构建与扩频:
为每个 OFDM 符号生成基于 Zadoff-Chu 的基序列。根据子帧号和时隙号应用特定的循环移位。对于 Format 1,调制符号将在时域的多个 OFDM 符号上进行扩频;对于 Format 2,调制符号直接映射到指定的数据符号位置。
- 信道传输与噪声注入:
信号经过多径衰落信道模型作用。在接收端,系统施加加性高斯白噪声,并执行基于零迫回取的简化信道均衡,以补偿多径效应带来的幅度和相位失真。
- 接收机处理与性能评估:
从接收网格中提取对应 RB 的符号,进行解扩和均值合并。最后进行判决输出解码后的比特,并与发送端原始比特比对,计算误码率。
关键函数与算法分析
本仿真系统的实现代码包含以下核心功能模块:
调制与解调算法
实现了标准定义的位到符号映射。Format 1 系列利用 $1/sqrt{2}$ 的缩放因子进行 BPSK/QPSK 映射;解调端则通过计算接收符号的平均值位置来进行最大比合并式的逻辑判决。
物理资源索引计算 (Frequency Hopping)
函数实现了 TS 36.211 Section 5.4.3 定义的映射公式。根据资源索引 n_pucch 和子帧号,算法交替计算 m0 和 m1 索引,确保信号在时域边界发生频率跳变,从而获得频率分集增益。
PUCCH 序列生成与映射
该部分是系统的核心,实现了 Zadoff-Chu 序列作为参考信号及数据载体的逻辑。通过应用相位偏移因子 $alpha$,实现了不同用户间的正交性。对于 Format 2,程序按照 Table 5.4.2-1 准确配置了数据符号与参考信号 (RS) 的时域位置。
多径信道建模与均衡
模拟了瑞利衰落对信号的影响。通过生成复高斯变量作为信道系数,并使用 repmat 扩展至整个频域。接收机采用 Zero-Forcing 均衡算法,通过将接收信号除以预估的信道响应来恢复原始星座图分布。
数据可视化引擎
系统在仿真结束时自动生成三维度的分析图:
- 性能曲线:展示随 SNR 增加 BER 的下降趋势。
- 资源网格图:通过
imagesc 函数直观展示 PUCCH 符号在整个系统带宽和子帧时间内的分布规律,清楚显示跳频效果。 - 星座图分析:对比理想参考点与均衡后的接收信号,用于评估信道补偿效果和噪声干扰程度。
使用方法
- 在 MATLAB 中打开仿真脚本。
- 根据需要修改
sysParam 结构体中的参数,例如修改 pucch_Format 以切换不同的仿真格式('1', '1a', '1b', '2' 等),或调整 SNR_dB 范围(例如 -15:1:5)。 - 点击“运行”按钮。
- 观察命令行输出的仿真进度,并在结束时查看自动生成的三个性能与可视化图表。