WCDMA 链路级仿真平台 (基于ETSI/3GPP标准)
项目简介
本项目复现了基于弗吉尼亚理工大学(Virginia Tech)MPRG研究组风格的WCDMA通信系统物理层仿真平台。代码严格遵循ETSI(欧洲电信标准协会)和3GPP制定的第三代移动通信标准,实现了一个完整的下行/上行链路仿真系统。
仿真平台能够详细模拟信号在发射端的处理、在频率选择性多径衰落信道下的传播,以及接收端利用RAKE接收机进行信号恢复的全过程。系统采用蒙特卡洛方法来评估不同信噪比(Eb/No)下的误码率(BER)和误帧率(FER)性能。
功能特性
- 完全符合ETSI物理层流程:实现了从CRC校验、信道编码到扩频、加扰的标准处理链。
- 多径衰落信道建模:支持自定义路径数量、时延和功率分布,集成了Jakes模型生成的瑞利衰落和由移动速度引起的多普勒频移。
- RAKE接收机技术:实现了基于指峰(Finger)处理的多径分离与最大比合并(MRC)算法。
- 全系统性能评估:提供实时的BER/FER曲线绘制、星座图监测及信道冲激响应可视化。
系统要求
- MATLAB R2016b 或更高版本
- Communications Toolbox(通信工具箱)
- Signal Processing Toolbox(信号处理工具箱)
详细实现逻辑
本仿真主程序通过蒙特卡洛循环处理每一帧数据,具体的信号处理流程如下:
1. 发射机 (Transmitter)
- 信源生成:产生随机二进制比特流作为原始数据。
- CRC校验模拟:通过附加尾部零比特模拟16位CRC校验过程,用于帧错误检测。
- 卷积编码:严格遵循3GPP标准,使用码率1/2、约束长度9的卷积编码器(生成多项式 [561 753])。
- 交织:采用块交织技术(Block Interleaving)以此抵抗突发错误,使用固定种子保证过程可逆。
- 调制:将交织后的比特流映射为QPSK复数符号。
- 扩频 (Spreading):使用正交可变扩频因子(OVSF)码进行扩频,将符号速率扩展至码片速率(3.84 Mcps),实现了用户/信道的正交性。
- 加扰 (Scrambling):应用复数扰码序列,模拟下行链路中的基站识别或上行链路中的用户区分。
2. 无线信道 (Wireless Channel)
- 多径瑞利衰落:依据设定的移动台速度(如30km/h)和载波频率(2GHz),计算最大多普勒频移。利用Jakes模型生成时变的复数衰落系数。
- 多径卷积:模拟频率选择性衰落,根据设定的功率延迟分布(PDP),将发射信号在不同时延的路径上进行加权叠加。代码中显式实现了离散路径的信号延迟与叠加过程。
- AWGN噪声:根据目标Eb/No动态计算噪声功率,生成复数高斯白噪声并叠加到接收信号中。
3. 接收机 (Receiver)
*
多径分离:针对每一条设定的多径,截取对应的接收信号片段。
*
解扰:使用发射端扰码的共轭进行解扰处理。
*
解扩:利用OVSF码进行相关运算(积分与清除),将宽带信号恢复为窄带符号。
*
信道估计与MRC合并:利用该帧内的信道系数均值作为信道估计值(理想估计近似),执行最大比合并(Maximal Ratio Combining),加权累加各路径能量以最大化接收信噪比。
- 解调与解交织:对RAKE输出的复数信号进行QPSK解调和解交织处理。
- Viterbi译码:使用回溯深度约为约束长度5倍的Viterbi算法进行硬判决译码,纠正传输误码。
- 帧校验:移除CRC尾部并统计误码和误帧情况。
4. 统计与可视化
系统会在仿真过程中实时更新一个包含四个子图的监测窗口:
- BER曲线:随着Eb/No增加的误码率下降趋势。
- FER曲线:误帧率性能统计。
- RAKE接收星座图:显示经过MRC合并后的符号星座点分布,直观反映信号质量。
- 信道PDP快照:展示当前设置的多径信道功率与时延分布。
关键算法与代码细节
OVSF码生成
代码内部实现了递归算法
gen_ovsf 来生成正交可变扩频因子码树。该函数接受扩频因子SF作为输入,返回完整的SF x SF扩频码矩阵,确保了不同信道化码之间的正交性。
卷积与Viterbi链
使用了标准的3GPP多项式
poly2trellis(9, [561 753]) 构建Trellis结构。译码端使用了截断模式(
trunc)的Viterbi译码器,这是为了适应分帧传输的仿真特性。
通信环境参数化
代码将物理层参数(如3.84Mcps码片速率)、信道参数(路径延迟、功率、速度)高度参数化。通过修改
ChannelParams 结构体,用户可以轻松模拟从静态信道到高速移动环境下的各种传播多径场景。
使用方法
- 确保MATLAB路径中包含相关的工具箱。
- 直接运行主函数。
- 仿真将弹出一个图形窗口,实时展示正在进行的Eb/No扫描过程和性能曲线。
- 仿真结束后,控制台将输出每个SNR点下的具体的BER和FER数值。