基于MATLAB的OQPSK调制解调仿真系统
项目介绍
本项目实现了一个完整的偏移正交相移键控(OQPSK)通信系统仿真模型。OQPSK是一种改进的QPSK调制技术,其核心改进在于将正交(Q)支路的码元相对于同相(I)支路在时间上偏移半个码元周期。通过这种时域上的交错,信号在任何时刻的相位跳变都不会超过90度,有效消除了QPSK中常见的180度相位突变所导致的包络过零现象。该特性在经过非线性功率放大器时能显著降低频谱再生,提高频带利用率。
功能特性
- 完整的链路建模:实现从随机信源生成、I/Q映射、偏移处理、脉冲成形到载波调制、AWGN信道模拟、相干解调、匹配滤波以及采样判决的全过程。
- 码元偏移机制:严格模拟Q路信号相对于I路延迟半个符号周期的特性。
- 脉冲成形与匹配滤波:采用根升余弦(RRC)滤波器进行脉冲成形,以抑制带外辐射并满足奈奎斯特第一准则。
- 性能定量分析:自动生成比特误码率(BER)随信噪比(Eb/No)变化的曲线,并与理论值进行对比。
- 多维度可视化:提供时域波形图、信号功率谱密度图、解调星座图、发射端眼图等多种分析视图。
详细实现逻辑
- 参数初始化
定义仿真总比特数(10000比特)、每个符号的采样点数(8点)、滚降因子(0.5)以及载波频率和采样频率。
- 信源生成与I/Q映射
生成随机二进制序列,并将其拆分为并行两路。将0/1比特映射为-1/1的电平,分别作为I路和Q路的基带符号。
- OQPSK偏移处理
对I、Q两路进行上采样(插零)。关键步骤是调整Q路时序:在Q路序列开头插入半个符号周期(sps/2个点)的延迟,同时通过截断处理保持与I路长度同步,从而实现码元错位。
- 脉冲成形滤波
利用rcosdesign生成根升余弦滤波器系数。将处理后的I/Q脉冲分别通过该滤波器进行平滑处理,减少频谱占用。
- 载波调制
生成两路相位相差90度的正交载波(cos和-sin)。将成形后的I/Q信号分别乘以载波并求和,合成最终的OQPSK带通信号。
- 信道与噪声模拟
在循环中遍历不同的Eb/No值。将Eb/No转换为信噪比(SNR),并利用AWGN函数向调制信号中添加高斯白噪声。
- 相干解调与匹配滤波
接收端使用相干载波对信号进行下变频。下变频后的信号再次通过完全相同的根升余弦滤波器(即匹配滤波),以获得最佳接收信噪比。
- 采样判决与比特恢复
考虑滤波器群延迟(span * sps / 2)和Q路特有的偏移。I路在特定采样点进行判决,Q路则需额外延迟半个符号周期的时间点进行采集。将两路判决出的1/0比特重新合并还原为原始比特流。
- 性能分析与绘图
计算每个信噪比下的误码数,绘制仿真BER曲线和理论公式计算的曲线。此外,程序计算信号的功率谱密度,并展示前20个符号的时域波形,直观体现偏移效果。
关键算法与实现细节
- 偏移量控制:程序通过 offset_samples = sps/2 精确控制Q路延迟。在发射端上采样阶段实现偏移,而在接收端采样阶段通过调整 sample_indices_q 补偿该偏移。
- 匹配滤波延迟补偿:滤波器卷积会产生延迟。程序中 delay = span * sps 用于精确定位采样判决的起始位置,确保采样点位于码元能量中心。
- 信噪比转换逻辑:根据窄带传输特性,利用 snr_dB = EbNo + 10*log10(2/sps) 实现比特能量与采样噪声功率的转换,确保仿真环境与通信理论模型一致。
- 功率谱估计:采用 Welch 周期图法(pwelch)进行信号频谱分析,能够清晰观察到OQPSK信号在主瓣外的旁瓣抑制情况。
系统要求
- 环境要求:MATLAB R2016b 或更高版本。
- 必备工具箱:Signal Processing Toolbox(信号处理工具箱)、Communications Toolbox(通信工具箱)。
使用方法
- 打开MATLAB,将工作目录切换至主函数所在文件夹。
- 在命令行窗口直接输入主函数名并回车。
- 程序将自动运行仿真循环,并在完成后弹出五个波形窗口:
- 时序波形:展示I/Q路错位半个符号的情况。
- 功率谱密度曲线:展示信号占用的频带宽度。
- 星座图:展示解调后的信号分布,反映噪声对相位的影响。
- 眼图:评估脉冲成形的质量和码间串扰情况。
- 误码率曲线:对比仿真结果与理论值的重合度,验证系统正确性。