码分多址 (CDMA) 通信系统仿真与性能分析
项目简介
本项目基于 MATLAB 平台构建了一个完整的码分多址(CDMA)通信系统仿真模型。该项目从物理层出发,详细模拟了直接序列扩频(DS-CDMA)系统的核心机制,包括信号的扩频发射、经过多径与噪声信道的传输、以及接收端的 RAKE 接收与解扩判决。通过蒙特卡洛仿真方法,项目对不同信噪比(SNR)条件下的误码率(BER)性能进行了量化分析,验证了 CDMA 系统在多用户环境下的抗干扰能力和多径分集增益。
功能特性
- 正交扩频与多址接入:利用 Walsh-Hadamard 矩阵生成正交扩频码,支持多用户同时占用同一频带进行通信,模拟下行链路同步传输。
- 复杂的信道模型:构建了包含加性高斯白噪声(AWGN)和多径效应的混合信道模型,模拟信号在传输过程中的延迟和衰减。
- RAKE 接收技术:实现了基于最大比合并(MRC)策略的 RAKE 接收机,能够有效收集多径能量,对抗频率选择性衰落。
- 系统性能评估:通过大量随机比特的传输仿真,计算并绘制误码率(BER)曲线,并与理论 BPSK 性能进行对比。
- 多维可视化分析:提供时域波形对比、功率谱密度(PSD)分析、接收端星座图以及 BER 性能曲线等多种图表展示。
系统要求
- MATLAB R2016a 或更高版本
- Signal Processing Toolbox(用于
periodogram 和 hadamard 函数)
仿真实现细节
本项目的核心逻辑在主程序中实现,完全遵循 DS-CDMA 的物理层处理流程,具体实现逻辑如下:
1. 系统参数初始化
程序首先定义全局仿真参数,包括:
- 用户数量:默认为 4 个用户。
- 扩频增益 (SF):设为 64,决定了系统的带宽扩展倍数和处理增益。
- 数据量:每个用户发送 2000 个比特。
- 多径信道参数:定义了 3 条路径的衰减系数
[1, 0.5, 0.2] 及其对应的采样延迟 [0, 2, 5],用于模拟多径传播环境。
2. 扩频码生成与发射机设计
- 码字分配:使用
hadamard(64) 函数生成标准 Walsh 矩阵,并从中选取前 NumUsers 行作为各个用户的唯一扩频地址码,确保用户间的正交性。 - 数据生成与调制:生成随机二进制数据(0/1),并映射为 BPSK 符号(-1/+1)。
- 扩频处理:采用 Kronecker 积 (
kron) 算法,将每个用户的符号重复扩展为 64 个芯片(Chip),并乘以对应的 Walsh 码。 - 信号叠加:将所有用户的扩频信号在时域上直接叠加,形成多址复合信号,模拟基站下行发送过程。
3. 信道模型模拟
仿真循环遍历预设的 SNR 范围(-10dB 至 10dB),对每个信噪比点执行以下信道处理:
- 多径效应模拟:通过卷积原理的离散实现,将复合信号生成多个延迟副本,按预设的衰减系数加权叠加。程序对多径系数进行了能量归一化处理。
- AWGN 噪声添加:根据当前复合信号的平均功率和目标 SNR,计算噪声功率,生成复高斯白噪声并叠加到多径信号上。接收端取实部进行处理(针对 BPSK 调制)。
4. RAKE 接收机与信号检测
接收端模拟了理想的 RAKE 接收机流程(假设已知信道状态信息):
- 多用户检测循环:依次对每个用户的数据进行解调。
- 位同步与多径搜索:针对每个发送比特,接收机遍历所有已知的多径延迟路径。
- 解扩与 MRC 合并:
* 根据路径延迟,截取对应的接收信号片段。
* 将信号片段与该用户的 Walsh 码进行点积运算(相关解扩)。
*
最大比合并 (MRC):将不同路径的解扩结果乘以对应的路径系数并累加,从而收集分散在不同路径上的信号能量。
- 判决:对合并后的软判决值进行硬判决(大于 0 判为 1,否则判为 0),恢复原始比特流。
5. 性能分析与可视化
程序最后通过蒙特卡洛方法统计误码率,并生成以下四个分析图表:
- 误码率曲线 (BER vs SNR):展示仿真得到的 BER 随信噪比变化的曲线,并与标准 AWGN 信道下的 BPSK 理论误码率曲线进行对比,以评估多径干扰下的系统性能。
- 时域波形对比:截取第一位用户的部分数据,对比扩频前的原始比特波形(方波化)与扩频后的宽带信号波形,直观展示频谱扩展效果。
- 信号频谱分析:利用周期图法 (
periodogram) 计算复合信号的功率谱密度(PSD),展示信号在频域的宽带特性。 - 接收端星座图:通过辅助函数在特定高信噪比(SNR=10dB)下重新模拟一次短序列传输,绘制接收端经过 RAKE 合并后的软判决值分布,直观反映解调后的信号质量。
使用方法
- 确保 MATLAB 已安装并在路径中包含信号处理工具箱。
- 直接运行由于代码内容生成的
.m 文件。 - 程序将自动执行仿真循环,并在控制台输出当前 SNR 下的误码率进度。
- 仿真结束后,会弹出一个包含四个子图的综合性能分析窗口。
关键算法说明
- 扩频 (Spreading):
TxSignal = kron(UserSymbol, UserCode) —— 利用克罗内克积实现符号级到芯片级的扩展。 - 多径叠加:
MpSignal += (Tap / Normalizer) * DelayedSignal —— 模拟物理信道的线性叠加特性。 - RAKE 合并:
SymbolEnergy += Correlation * MultipathTap —— 典型的分集接收算法,利用时间分集将多径干扰转化为有用能量。