基于MATLAB的QPSK全链路位同步仿真系统
项目介绍
本系统是一套完整的数字通信链路仿真平台,重点实现了QPSK信号在加性高斯白噪声(AWGN)信道以及定时偏置环境下的位同步恢复。系统模拟了从二进制信源生成、符号映射、脉冲成形、信道干扰到接收端定时同步与解调判决的全过程。通过采用闭环反馈控制系统,程序能够自动追踪并补偿非整数采样周期的定时偏差,是理解和研究数字接收机位同步技术的理想工程实践案例。
功能特性
- 完整的调制解调链路:实现了标准的QPSK Gray编码映射与判决。
- 脉冲成形与匹配滤波:采用平方根升余弦(SRRC)滤波技术,有效抑制带外辐射并满足奈奎斯特第一准则。
- 模拟分数间隔定时偏差:利用插值技术模拟了真实场景中非整数倍采样周期的时延偏移。
- 强大的位同步算法:核心采用Gardner定时误差检测器,具备独立于载波相位的优势。
- 闭环反馈追踪系统:集成了二阶环路滤波器(PI)与数控振荡器(NCO),实现了对定时精度的动态锁定。
- 全方位可视化分析:提供同步前后的星座图对比、接收波形、TED误差收敛轨迹、眼图及分数间隔追踪曲线。
系统要求
- 软件环境:MATLAB R2018b 或更高版本。
- 必备工具箱:Signal Processing Toolbox(信号处理工具箱)。
核心实现逻辑说明
系统运行遵循以下核心流程:
1. 参数配置
系统首先定义通信基础参数,包括1MHz符号速率、8倍过采样(SPS)、0.35滚降系数、15dB的信噪比以及3.3个采样点的非整数定时延迟。同时,根据归一化等效噪声带宽和阻尼因子预先计算PI环路滤波器的比例增益(Kp)和积分增益(Ki)。
2. 发送端处理
程序生成随机二进制序列,并按Gray码映射为QPSK复数符号序列。随后对符号流进行插零上采样,并通过SRRC滤波器完成脉冲成形。
3. 信道模拟 (时延与加噪)
系统通过线性插值在时域引入特定的定时偏差(delay_samples),以模拟收发端始终不同步的情况。之后,根据设定的Eb/No计算对应信噪比,并加入AWGN噪声。
4. 接收端位同步环路
这是程序的核心,通过闭环反馈调节,主要包括:
- 内插器:使用三阶存储缓存,根据NCO提供的分数间隔参数进行插值运算。
- NCO (数控振荡器):通过累加逻辑控制采样门限,每当NCO溢出时产生一个选通脉冲。
- Gardner定时误差检测 (TED):在选通时刻利用当前样点、中间样点及前一时刻样点进行误差运算。
- 环路滤波器:采用PI结构对TED产生的误差进行滤波,输出结果反馈至NCO,动态调整内插时刻。
5. 解调与判决
同步后的信号经过剔除收敛期无效点处理,进行硬判决恢复比特流。由于系统存在固有处理延迟,程序通过比特对齐函数寻找最佳对位点,最后计算统计误码率(BER)。
算法与关键函数分析
- Gardner TED算法:该算法在每个符号周期利用两个采样点即可提取出定时误差信息。其计算公式为 $e(n) = I(n-1/2) cdot [I(n) - I(n-1)] + Q(n-1/2) cdot [Q(n) - Q(n-1)]$。
- Farrow结构内插逻辑:代码通过
interp_buf 缓存和线性插值公式实现样点的重采样,确保在非整数倍采样点处提取出正确的符号值。 - PI环路滤波器:通过比例和积分路径的累加,不但能消除静态定时偏差,还能追踪一定的频率漂移。
- 比特对齐函数 (bit_align):为了正确评估误码率,该函数通过在一定范围内循环移位并对比发送/接收比特,自动补偿系统群时延。
使用方法
- 打开MATLAB,将工作目录指向程序文件所在文件夹。
- 运行主函数。
- 仿真开始后,程序会依次执行调制、信道模拟、同步追踪及解调判决。
- 运行结束后,会自动弹出包含6个子图的分析窗口:
- 左侧展示同步前后星座图的变化,可见同步后样点汇聚于四个标准判决点。
- 中间展示接收信号波形及TED误差的收敛轨迹,反映了环路锁定的速度。
- 右侧展示同步前混乱的眼图以及内插分数间隔 $mu$ 的变化过程,当 $mu$ 趋于平稳时,代表环路已成功追踪到最佳采样相位。
- 命令行窗口会实时打印当前仿真设定的参数及统计出的最终误码率。