基于Simulink的QPSK通信系统仿真与外部调用接口
项目介绍
本项目实现了一个高度自动化的QPSK(正交相移键控)通信仿真系统。系统的核心优势在于通过MATLAB底层脚本完全控制Simulink模型的生命周期,包括模型的动态创建、模块参数的实时配置、仿真过程的自动触发以及结果数据的结构化导出。该系统不仅提供了完整的物理层传输链路,还集成了一套用于衡量通信质量的自动化评估分析框架,能够生成理论与仿真的对比曲线。
功能特性
- 自动化建模:系统支持从空白模型开始,通过代码自动添加并配置通信模块,无需手动拖拽。
- 动态参数扫描:利用循环机制自动遍历一系列信噪比(Eb/No)参数,实现自动化的误码率测试。
- 标准脉冲成形:内置根升余弦(RRC)滤波器,有效演示码间串扰(ISI)的抑制效果。
- 多维度可视化:系统可自动生成误码率(BER)性能曲线、信号星座图、同相/正交路时域波形以及眼图。
- 精准链路反馈:通过延迟补偿算法确保误码率计算的准确性,并提供详细的仿真实验统计报告。
使用方法
- 环境准备:确保MATLAB环境中已安装Simulink、Communications Toolbox以及DSP System Toolbox。
- 参数配置:在主函数开头部分根据需求修改采样频率、符号速率、滚降系数或Eb/No范围等初始参数。
- 启动仿真:直接运行仿真脚本。程序将自动打开Simulink,动态构建链路并在命令行实时输出仿真进度。
- 查看结果:仿真结束后,系统会自动弹出四个图形窗口展示性能分析,并在控制台打印最终的链路性能统计报告。
系统要求
- MATLAB版本:建议 R2020b 或更高版本。
- 必备工具箱:Simulink, Communications Toolbox, Signal Processing Toolbox。
实现逻辑说明
仿真系统遵循典型的数字化通信链路处理流程,具体实现逻辑如下:
- 环境清理与初始化:
脚本首先清理工作区,定义符号速率、采样率等基础物理量,并计算每个符号的采样点数(SPS)。
- 模型自动化构建:
程序通过 new_system 指令动态创建一个临时的 Simulink 模型。接着,利用 add_block 指令依次向模型中注入二进制数据源、QPSK调制器、发送端/接收端滤波器、AWGN信道以及误码率计算器。
- 参数动态注入:
通过 set_param 指令对每个模块进行精细配置。QPSK调制设置为比特输入并应用 pi/4 相位偏移;根升余弦滤波器根据预设的滚降系数和延迟进行配置;AWGN信道根据循环输入的 Eb/No 值实时调整功率。
- 信号拓扑连接:
使用 add_line 指令将各个处理模块物理连接,构建起从信源、发射机、信道到接收机及测试设备的完整拓扑结构。
- 自动化执行与数据导出:
脚本启动一个 for 循环,在每个迭代中动态更新信道的信噪比参数。通过 sim 函数启动仿真,并利用 To Workspace 模块将仿真的误码率数据和接收波形导出到 MATLAB 返回的 simOut 对象中。
- 可视化与报告生成:
仿真停止后,脚本提取导出数据,利用 semilogy 绘制误码率曲线,同时截取接收信号的稳态部分进行星座图映射和眼图绘制。
关键技术细节与算法分析
系统采用复数基带调制,将成对的比特映射到四个复平面星座点上(pi/4 偏移模式),确保相位跳变的平滑处理。
采用根升余弦(RRC)滤波器组。发送端进行上采样和滤波以限制频谱带宽;接收端进行匹配滤波,在满足奈奎斯特第一准则的前提下最大限度提高信噪比并消除码间串扰。
滤波器会引入固有群延迟。系统在 BER 模块中设置了精确的 ReceiveDelay 属性,数值等于发送滤波与接收滤波延迟的总和(FilterSpan * 2),从而确保发送比特与解调比特的对齐。
利用 berawgn 函数计算 AWGN 信道下 QPSK 的理论误码率,作为基准参照系,用以验证 Simulink 模型实现的精确度和系统实现的正确性。
星座图通过 real/imag 分量展现信号受噪声影响的散布情况;眼图则通过对信号进行 SPS*2 的重叠切片处理,直观展现信号的定时 jitter 和幅度失真。