高复杂度8PSK无线通信系统全链路仿真与损伤补偿
项目简介
本项目实现了一个高度仿真的8PSK数字无线通信系统。该平台不仅涵盖了基带信号的调制与解调,更着重于模拟真实的信道恶劣环境(包含多径衰落、载波频偏、相位偏差及采样时钟漂移),并实现了完整的接收机数字信号处理(DSP)算法链路来对抗这些损伤。通过蒙特卡洛仿真,系统能够评估不同信噪比下的误码率性能,并通过可视化工具展示信号处理效果。
主要功能特性
- 高级调制格式:支持8PSK(8相相移键控)调制,采用格雷码映射以最小化比特误码率。
- 真实带宽限制:发射端采用均方根升余弦(SRRC)脉冲成型滤波器,严格控制信号带宽。
- 复杂信道模型:
*
瑞利多径衰落:模拟具有不同延迟和复数增益的多径传输效应。
*
载波偏差:引入载波频率偏移(CFO)和初始相位偏差。
*
时钟漂移:模拟发射机与接收机采样时钟频率不一致导致的采样点漂移问题。
*
AWGN:加性高斯白噪声干扰。
*
匹配滤波:最大化信噪比并消除ISI。
*
符号定时恢复:基于Gardner算法配合Farrow结构立方插值滤波器,实现非同步采样下的最佳采样点恢复。
*
载波同步:基于判决引导锁相环(DD-PLL),自动纠正残留频偏与相偏。
- 性能评估:自动进行比特误码率(BER)和符号误码率(SER)统计,包含基于互相关的帧同步机制。
系统要求
- MATLAB R2018b 或更高版本
- Signal Processing Toolbox(信号处理工具箱)
- Communications Toolbox(通信工具箱)
使用方法
直接运行主入口函数即可启动仿真。程序将依照预设的信噪比范围(Eb/N0 0dB至16dB)进行迭代仿真,并在控制台输出当前的误码率统计信息。仿真结束后,会在高信噪比条件下额外运行一次以生成信号质量分析图表。
代码实现逻辑与算法详解
本项目的核心逻辑封装在主程序及链路仿真子函数中,具体实现细节如下:
1. 系统参数配置与主控流程
程序首先定义了全局系统参数。符号速率设定为100 kBaud,过采样倍数(SPS)为8。SRRC滤波器滚降系数设为0.35。信道损伤参数被显式定义,包括特定的多径抽头系数、500Hz的频偏以及1.0002的时间漂移因子(用于模拟采样率误差)。主循环通过遍历Eb/N0数组,计算对应的噪声功率,并调用链路仿真核心函数执行蒙特卡洛实验。
2. 发射机链路 (Tx)
- 数据生成:生成均匀分布的随机二进制比特流。
- 映射与调制:将比特流按每3个比特一组映射为符号索引,并根据8PSK星座图进行复数调制。此处采用格雷码映射逻辑。
- 脉冲成型:信号经过8倍上采样后,通过SRRC滤波器(平方根升余弦)进行滤波,模拟实际通信系统的带宽限制特性,通过归一化操作确保发射功率恒定。
3. 信道损伤模拟 (Channel)
- 多径效应:利用FIR滤波器模拟瑞利衰落信道,对信号施加多径延迟和幅相衰减。
- 采样时钟误差:这是本仿真的难点之一。代码通过重采样(线性插值)改变信号的时间轴长度,模拟接收端采样时钟与发射端不准导致的“快”或“慢”效应(TimeDrift参数)。
- 载波干扰:在时域信号上叠加复指数信号,引入频率偏移和固定相偏。
- 噪声叠加:根据当前仿真点的SNR要求,计算噪声功率并叠加复高斯白噪声。
4. 接收机数字信号处理 (Rx DSP)
这是系统的核心部分,包含三个级联的模块:
- 匹配滤波:使用与发射端相同的SRRC系数对接收信号进行滤波,并截去滤波器造成的群延迟,初步提高信噪比。
*
架构:采用全数字反馈环路。为了适应Gardner算法,信号在环路内被处理为每符号2个样点(2 SPS)。
*
插值器:实现了Farrow结构的立方拉格朗日插值器。能够根据分数间隔参数(mu)计算任意时间点的信号值,解决非整数采样延迟问题。
*
误差检测:使用Gardner误差检测器公式,利用当前符号峰值、前一符号峰值和中间采样点计算定时误差。
*
环路控制:通过比例积分(PI)滤波器平滑误差信号,动态调整分数间隔mu和抽取时刻(strobe),实现对最佳采样时刻的追踪与锁定。
*
架构:基于DDS(直接数字频率合成器)的反馈环路,工作在符号速率(1 SPS)。
*
鉴相器:通过计算旋转后的采样点与硬判决星座点之间的虚部误差,估计相位偏差。
*
环路滤波:误差信号经过二阶环路滤波器处理,更新NCO(数控振荡器)的相位累加器,从而对信号进行反向旋转以抵消频偏和相偏。
5. 误码统计与对齐
由于滤波器延迟和定时恢复环路的动态调整,接收到的符号序列会存在未知的时延。代码在计算误码率之前,实现了基于互相关(xcorr)的帧同步算法:
- 互相关对齐:截取部分发射序列与接收到的硬判决序列进行互相关运算,找到相关峰值对应的滞后(Lag)。
- 序列对齐:根据计算出的Lag值,对接收序列或发射序列进行移位和截断,确保按位比对的准确性。
- 统计:分别计算比特误码率(BER)和符号误码率(SER)。只有在环路收敛后的稳定数据段才会被纳入统计。
辅助功能
代码内部包含了计算环路滤波器系数的辅助逻辑,能够根据归一化环路带宽和阻尼因子,自动计算出鉴相器和定时环路所需的比例增益(Kp)和积分增益(Ki)。