APP下载

基于Python的在线通信原理仿真实验平台

2022-06-02王一楠韦峻峰

中国新通信 2022年6期
关键词:二进制波形原理

王一楠 韦峻峰

【摘要】    《通信原理》是一门理论性很强的课程,传统教学方式学生对复杂抽象的知识掌握程度有限。针对教材中难以展示信号传输过程中时域波形和频谱结构,通过实验操作需要花费较多的时间且不易调整信号的时、频参数,提出了以二进制数字调制系统为例,采用了Python语言实现了在线通信原理仿真实验平台。该平台前后端使用了Django框架和Sqlite数据库,仿真部分采用NumPy、Scipy库,并将结果用Matplotlib渲染成图片,可以部署于互联网或局域网。该平台可提供多个用户账户,可随时修改仿真参数、实时观察实验结果,是传统实验教学的有力补充。

【关键字】    在线通信仿真    数字调制系统    Django    Python

引言:

《通信原理》不仅是通信专业和电子信息工程类专业的学生的专业必修课,也是网络工程、物联网工程等专业的重要学科。该课程与前期的基础课程联系紧密,又是后续课程的重要基础。因此学好这门课对学生进行更深层次的学习研究有着重要影响。

该门课程综合了电路、高等数学、随机过程、信号与系统的相关知识,理论性强,抽象概念较多,导致了学生学习起来比较困难,基础概念不易理解。针对以上存在的问题,由Python作为前后端而开发出来的网站式数字带通虚拟仿真实验在教学中具有重要的意义。该平台采用Web设计风格,操作简单,可通过点击框图修改仿真参数,快速直观地看到仿真结果,帮助学生理解和掌握课程中的重要概念和知识点,激发学生的学习兴趣,提升学生的学习质量。[1-3]

一、现有的通信原理课程虚拟仿真实验教学方案

(一)基于实验箱的实验教学

目前许多学校采用实验箱进行通信原理实验教学。该方式要求学生根据模块图或电路图进行线路连接,使用示波器、计算机或频率分析仪等设备观察各个信号接口处的波形或频谱。这种教学方式的优点是可以锻炼学生的实际操作动手能力,但可能存在设备成本和维护成本较高、连接线路耗时较长、参数调整不便、做实验会受到时间地点的限制等问题。[4]

(二) 基于Matlab或Simulink的仿真实验教学

Matlab是科学研究和教育行业常用的数值仿真软件,其软件经历了多年演化功能丰富,对计算机硬件要求较高,且许可证费用高昂。使用Matlab编写程序需要一定的编程基础,学生熟练掌握编程之前可能会遇到较多的问题,因而更适合于在高年级本科生或研究生中使用。

Simulink是Matlab中的一种可视化仿真工具,它提供图形编辑器、可自定义的模块库以及求解器,能够进行动态系统建模和仿真,常被用于通信仿真的教学中。[5-7]

(三) 基于Python的仿真实验教学

Python是一种面向对象的、解释型的、通用的、开源的脚本编程语言。程序编写简洁快速,代码的开发效率较高。良好的图形功能和强大的后台Python 标准库和第三库众多,功能强大,既可以开发小工具,也可以开发企业级应用。因此,适用于大学通信原理教学仿真实验平台的开发。[8-9]

二、仿真实验平台的设计与实现

为了更加的方便学生进行通信仿真实验,方便学生的操作,尝试开发出了基于Python的在线通信原理仿真实验平台,该平台的使用学生只需要登录网站的首頁,输入仿真的信号以及信号的相关参数,就可以得到相应的仿真结果。如需参数的更改,则直接对参数修改,再次进行仿真即可,操作方便快捷。大大方便了学生的操作,节省了师生的时间。

(一)平台架构

平台由一个主界面构成,所有的仿真实验皆可在该主界面上完成。主界面由四个实验模块组成,四个固定的实验模块涵盖了通信原理数字调制的四种键控,分别是二进制振幅键控(2ASK)、二进制频移键控(2FSK)、二进制相移键控(2PSK)等,二进制差分相移键控(2DPSK)。四大键控按钮对应四个子界面,每个子界面相互独立,可以在子界面中输入相应的参数,然后进行实验仿真。实验平台相应框图如图1所示。[10]

(二)平台的功能模块

结合通信原理的实验课程,需要安装用于科学计算的 NumPy、SciPy 扩展库和实现绘图与可视化的Matplotlib 扩展库。数值计算库 NumPy 以数组为数据处理对象。SciPy是数学、科学和工程计算包,在 NumPy 基础上添加了科学计算所需要的各种工具,如:线性方程组求解、特征值和特征向量求解等与线性代数相关问题使用的 LAPACK 库、快速傅里叶变换使用的 FFTPACK 库、常微分方程求解使用的 ODEPACK 库、 非线性方程组求解和最小值求解等使用的 MINPACK 库等。SciPy 中signal 模块提供了信号处理方面的很多函数,包括卷积运算、滤波及滤波器设计等方面的内容。本平台的涉及用到了signal模块中的firwin、lfilter、lfilter_zi、freqz,从而对信号进行处理。

(三)平台的主界面

数字带通虚拟仿真实验是《通信原理》中的重要章节,包含二进制振幅键控(2ASK)、二进制频移键控(2FSK)、二进制相移键控(2PSK)等,二进制差分相移键控(2DPSK)。仿真平台实现了这四种调制解调方式的在线仿真,在这四个模块下分别可以实现信源、载波、信道、解调、抽判的参数调整和波形查看。平台首页展示如图2所示。

顶部提供用户注册和登录功能,在其下方有四个按钮,对应的是四种数字带通键控方式。默认使用振幅键控(ASK)方式进行仿真。发送文本框内可填入文本作为信源,经编码、调制、信道传输、解调、抽样判决等模块的仿真计算后,将在接收文本框中显示出接收端得到的文本信息。58ED6BB7-FD0E-4E6C-A614-E2BB7A8360B8

当点击不同的调制方式时,下方框图将变更为所选制式的框图。点击框图中某个环节,在框图之下的参数列表将显示该环节相关的仿真参数。图中展示了信源{an}部分的参数。学生可根据需要修改码元速率,而后在右侧“波形展示”板块看到不同码元速率下s(t)波形的变化,整体操作简单直观。[11]

(四)仿真教学流程

选中2FSK(二进制频移键控)按钮,输入“大家好”,点击“调制解调原理框图”中的{an},在“参数列表”可见默认码元速率为1600。使用“查看信源信号”按钮可以看到已输入的文字作为信源的实际波形,如图3所示。在“调制解调原理框图”中点击n(t)可以修改信道中的噪声幅度,并可使用“信道波形”按钮观察波形被噪声干扰的情况。在接收端使用了相干解调,其时域波形、频谱、抽样判决门限和判决结均可以用图形方式展现出来,使学生在仿真实验初期能够先建立系统各个环节的参数对通信系统的影响。以此为基础,对于部分学有余力的学生还可以结合平台,讲解其中模块的具体实现。

将白噪声幅度从0调到0.5,判决门限设为0.25,此时出现误码,误码率为2%,仿真结果由“大家好”变为“大家?”。抽样与判决结果如图4所示,误码结果如图5所示。调整判决门限,将0.25调整到0.1,此时误码率变为0,输出为“大家好”,正确的抽样与判决波形如图6所示。

(五)教学管理

学生的使用情况老师可以通过后台进行管理,老师可以清晰地通过后端进行查询。如图7所示。

三、结束语

该仿真平台基于Python开发出来的仿真网站。针对应用型本科院校通信原理教学问题,采用该系统与理论教学相结合,简单明了地将可视化的仿真结果展示在学生面前。由于该系统操作简单,上手快,适合初学者使用等优点,大大提高了学生的实践能力和教学质量,推动了应用型人才培养。此教学模式已在我校通信工程、电子信息、网络工程(移动通信)、物联网工程等专业试用和实践,取得了较好的效果,获得了广大师生的一致好评。[12]

作者单位:王一楠     韦峻峰    广西民族大学

参  考  文  献

[1]翟双,刘丽伟,王昕.《通信原理》实验教学改革与探索[J].才智,2019(29):13.

[2]肖力.基于Python的航空发动机仿真平台开发[J].计算机应用與软件,2021,38(06):9-13+38.

[3]杨丞.通信原理课程实验教学模式的研究与实践[J].教育教学论坛,2019(31):279-280.

[4]刘美玲,张志岩.通信原理实验箱数字信号源模块的改进设计[J].实验室科学,2019,22(03):87-92+98.

[5]田莹,卢金玉,刘宴涛.基于Matlab/Simulink的通信原理虚拟仿真实验教学方法研究[J]. 现代电子技术, 2015,(14).

[6]张鸣,李白萍.Matlab仿真在通信原理课程中的应用[J].实验技术与管理,2012(11):87-89.

[7]王志鹏,谢渝闽. 基于MATLAB的信号与系统课程综合演示平台[J]. 南阳师范学院学报,2020, 19(3): 71–74.

[8]张若愚. Python科学计算[M]. 北京:清华大学出版社,2016.

[9]赵广辉. 面向新工科的Python程序设计交叉融合案例教学[J]. 计算机教育,2017(8): 23–27.

[10]陈娟,陈雯,石飞,等.基于Python的信号与系统实验教学改革与实践[J].实验技术与管理,2021,38(05):196-200.

[11]尹园威,马俊涛,史林,等.基于MatLab的IIR数字滤波器设计与应用[J].中国现代教育装备,2021,(21):31-33+42.

[12] 阎群,李擎,崔家瑞,等.大学生解决复杂工程问题能力的培养[J]. 实验技术与管理,2017, 34(11): 178–181, 186.58ED6BB7-FD0E-4E6C-A614-E2BB7A8360B8

猜你喜欢

二进制波形原理
基于SVD的雷达嵌入式通信波形设计方法
正面碰撞车身加速度对乘员腿部损伤的影响
有用的二进制
用Scratch把十进制转为二进制
通用6T系列变速器离合器鼓失效的解决方案
有趣的进度
浅析狭义相对论的建立及其原理
浅析狭义相对论的建立及其原理
任意波形编辑软件中手动任意绘制功能的设计
两个原理的区别及其应用