王一楠 韋峻峰
【摘要】? ? 《通信原理》是一門理論性很強的課程,傳統(tǒng)教學(xué)方式學(xué)生對復(fù)雜抽象的知識掌握程度有限。針對教材中難以展示信號傳輸過程中時域波形和頻譜結(jié)構(gòu),通過實驗操作需要花費較多的時間且不易調(diào)整信號的時、頻參數(shù),提出了以二進制數(shù)字調(diào)制系統(tǒng)為例,采用了Python語言實現(xiàn)了在線通信原理仿真實驗平臺。該平臺前后端使用了Django框架和Sqlite數(shù)據(jù)庫,仿真部分采用NumPy、Scipy庫,并將結(jié)果用Matplotlib渲染成圖片,可以部署于互聯(lián)網(wǎng)或局域網(wǎng)。該平臺可提供多個用戶賬戶,可隨時修改仿真參數(shù)、實時觀察實驗結(jié)果,是傳統(tǒng)實驗教學(xué)的有力補充。
【關(guān)鍵字】? ? 在線通信仿真? ? 數(shù)字調(diào)制系統(tǒng)? ? Django? ? Python
引言:
《通信原理》不僅是通信專業(yè)和電子信息工程類專業(yè)的學(xué)生的專業(yè)必修課,也是網(wǎng)絡(luò)工程、物聯(lián)網(wǎng)工程等專業(yè)的重要學(xué)科。該課程與前期的基礎(chǔ)課程聯(lián)系緊密,又是后續(xù)課程的重要基礎(chǔ)。因此學(xué)好這門課對學(xué)生進行更深層次的學(xué)習(xí)研究有著重要影響。
該門課程綜合了電路、高等數(shù)學(xué)、隨機過程、信號與系統(tǒng)的相關(guān)知識,理論性強,抽象概念較多,導(dǎo)致了學(xué)生學(xué)習(xí)起來比較困難,基礎(chǔ)概念不易理解。針對以上存在的問題,由Python作為前后端而開發(fā)出來的網(wǎng)站式數(shù)字帶通虛擬仿真實驗在教學(xué)中具有重要的意義。該平臺采用Web設(shè)計風(fēng)格,操作簡單,可通過點擊框圖修改仿真參數(shù),快速直觀地看到仿真結(jié)果,幫助學(xué)生理解和掌握課程中的重要概念和知識點,激發(fā)學(xué)生的學(xué)習(xí)興趣,提升學(xué)生的學(xué)習(xí)質(zhì)量。[1-3]
一、現(xiàn)有的通信原理課程虛擬仿真實驗教學(xué)方案
(一)基于實驗箱的實驗教學(xué)
目前許多學(xué)校采用實驗箱進行通信原理實驗教學(xué)。該方式要求學(xué)生根據(jù)模塊圖或電路圖進行線路連接,使用示波器、計算機或頻率分析儀等設(shè)備觀察各個信號接口處的波形或頻譜。這種教學(xué)方式的優(yōu)點是可以鍛煉學(xué)生的實際操作動手能力,但可能存在設(shè)備成本和維護成本較高、連接線路耗時較長、參數(shù)調(diào)整不便、做實驗會受到時間地點的限制等問題。[4]
(二) 基于Matlab或Simulink的仿真實驗教學(xué)
Matlab是科學(xué)研究和教育行業(yè)常用的數(shù)值仿真軟件,其軟件經(jīng)歷了多年演化功能豐富,對計算機硬件要求較高,且許可證費用高昂。使用Matlab編寫程序需要一定的編程基礎(chǔ),學(xué)生熟練掌握編程之前可能會遇到較多的問題,因而更適合于在高年級本科生或研究生中使用。
Simulink是Matlab中的一種可視化仿真工具,它提供圖形編輯器、可自定義的模塊庫以及求解器,能夠進行動態(tài)系統(tǒng)建模和仿真,常被用于通信仿真的教學(xué)中。[5-7]
(三) 基于Python的仿真實驗教學(xué)
Python是一種面向?qū)ο蟮?、解釋型的、通用的、開源的腳本編程語言。程序編寫簡潔快速,代碼的開發(fā)效率較高。良好的圖形功能和強大的后臺Python 標(biāo)準(zhǔn)庫和第三庫眾多,功能強大,既可以開發(fā)小工具,也可以開發(fā)企業(yè)級應(yīng)用。因此,適用于大學(xué)通信原理教學(xué)仿真實驗平臺的開發(fā)。[8-9]
二、仿真實驗平臺的設(shè)計與實現(xiàn)
為了更加的方便學(xué)生進行通信仿真實驗,方便學(xué)生的操作,嘗試開發(fā)出了基于Python的在線通信原理仿真實驗平臺,該平臺的使用學(xué)生只需要登錄網(wǎng)站的首頁,輸入仿真的信號以及信號的相關(guān)參數(shù),就可以得到相應(yīng)的仿真結(jié)果。如需參數(shù)的更改,則直接對參數(shù)修改,再次進行仿真即可,操作方便快捷。大大方便了學(xué)生的操作,節(jié)省了師生的時間。
(一)平臺架構(gòu)
平臺由一個主界面構(gòu)成,所有的仿真實驗皆可在該主界面上完成。主界面由四個實驗?zāi)K組成,四個固定的實驗?zāi)K涵蓋了通信原理數(shù)字調(diào)制的四種鍵控,分別是二進制振幅鍵控(2ASK)、二進制頻移鍵控(2FSK)、二進制相移鍵控(2PSK)等,二進制差分相移鍵控(2DPSK)。四大鍵控按鈕對應(yīng)四個子界面,每個子界面相互獨立,可以在子界面中輸入相應(yīng)的參數(shù),然后進行實驗仿真。實驗平臺相應(yīng)框圖如圖1所示。[10]
(二)平臺的功能模塊
結(jié)合通信原理的實驗課程,需要安裝用于科學(xué)計算的 NumPy、SciPy 擴展庫和實現(xiàn)繪圖與可視化的Matplotlib 擴展庫。數(shù)值計算庫 NumPy 以數(shù)組為數(shù)據(jù)處理對象。SciPy是數(shù)學(xué)、科學(xué)和工程計算包,在 NumPy 基礎(chǔ)上添加了科學(xué)計算所需要的各種工具,如:線性方程組求解、特征值和特征向量求解等與線性代數(shù)相關(guān)問題使用的 LAPACK 庫、快速傅里葉變換使用的 FFTPACK 庫、常微分方程求解使用的 ODEPACK 庫、 非線性方程組求解和最小值求解等使用的 MINPACK 庫等。SciPy 中signal 模塊提供了信號處理方面的很多函數(shù),包括卷積運算、濾波及濾波器設(shè)計等方面的內(nèi)容。本平臺的涉及用到了signal模塊中的firwin、lfilter、lfilter_zi、freqz,從而對信號進行處理。
(三)平臺的主界面
數(shù)字帶通虛擬仿真實驗是《通信原理》中的重要章節(jié),包含二進制振幅鍵控(2ASK)、二進制頻移鍵控(2FSK)、二進制相移鍵控(2PSK)等,二進制差分相移鍵控(2DPSK)。仿真平臺實現(xiàn)了這四種調(diào)制解調(diào)方式的在線仿真,在這四個模塊下分別可以實現(xiàn)信源、載波、信道、解調(diào)、抽判的參數(shù)調(diào)整和波形查看。平臺首頁展示如圖2所示。
頂部提供用戶注冊和登錄功能,在其下方有四個按鈕,對應(yīng)的是四種數(shù)字帶通鍵控方式。默認使用振幅鍵控(ASK)方式進行仿真。發(fā)送文本框內(nèi)可填入文本作為信源,經(jīng)編碼、調(diào)制、信道傳輸、解調(diào)、抽樣判決等模塊的仿真計算后,將在接收文本框中顯示出接收端得到的文本信息。58ED6BB7-FD0E-4E6C-A614-E2BB7A8360B8
當(dāng)點擊不同的調(diào)制方式時,下方框圖將變更為所選制式的框圖。點擊框圖中某個環(huán)節(jié),在框圖之下的參數(shù)列表將顯示該環(huán)節(jié)相關(guān)的仿真參數(shù)。圖中展示了信源{an}部分的參數(shù)。學(xué)生可根據(jù)需要修改碼元速率,而后在右側(cè)“波形展示”板塊看到不同碼元速率下s(t)波形的變化,整體操作簡單直觀。[11]
(四)仿真教學(xué)流程
選中2FSK(二進制頻移鍵控)按鈕,輸入“大家好”,點擊“調(diào)制解調(diào)原理框圖”中的{an},在“參數(shù)列表”可見默認碼元速率為1600。使用“查看信源信號”按鈕可以看到已輸入的文字作為信源的實際波形,如圖3所示。在“調(diào)制解調(diào)原理框圖”中點擊n(t)可以修改信道中的噪聲幅度,并可使用“信道波形”按鈕觀察波形被噪聲干擾的情況。在接收端使用了相干解調(diào),其時域波形、頻譜、抽樣判決門限和判決結(jié)均可以用圖形方式展現(xiàn)出來,使學(xué)生在仿真實驗初期能夠先建立系統(tǒng)各個環(huán)節(jié)的參數(shù)對通信系統(tǒng)的影響。以此為基礎(chǔ),對于部分學(xué)有余力的學(xué)生還可以結(jié)合平臺,講解其中模塊的具體實現(xiàn)。
將白噪聲幅度從0調(diào)到0.5,判決門限設(shè)為0.25,此時出現(xiàn)誤碼,誤碼率為2%,仿真結(jié)果由“大家好”變?yōu)椤按蠹?”。抽樣與判決結(jié)果如圖4所示,誤碼結(jié)果如圖5所示。調(diào)整判決門限,將0.25調(diào)整到0.1,此時誤碼率變?yōu)?,輸出為“大家好”,正確的抽樣與判決波形如圖6所示。
(五)教學(xué)管理
學(xué)生的使用情況老師可以通過后臺進行管理,老師可以清晰地通過后端進行查詢。如圖7所示。
三、結(jié)束語
該仿真平臺基于Python開發(fā)出來的仿真網(wǎng)站。針對應(yīng)用型本科院校通信原理教學(xué)問題,采用該系統(tǒng)與理論教學(xué)相結(jié)合,簡單明了地將可視化的仿真結(jié)果展示在學(xué)生面前。由于該系統(tǒng)操作簡單,上手快,適合初學(xué)者使用等優(yōu)點,大大提高了學(xué)生的實踐能力和教學(xué)質(zhì)量,推動了應(yīng)用型人才培養(yǎng)。此教學(xué)模式已在我校通信工程、電子信息、網(wǎng)絡(luò)工程(移動通信)、物聯(lián)網(wǎng)工程等專業(yè)試用和實踐,取得了較好的效果,獲得了廣大師生的一致好評。[12]
作者單位:王一楠? ? ?韋峻峰? ? 廣西民族大學(xué)
參? 考? 文? 獻
[1]翟雙,劉麗偉,王昕.《通信原理》實驗教學(xué)改革與探索[J].才智,2019(29):13.
[2]肖力.基于Python的航空發(fā)動機仿真平臺開發(fā)[J].計算機應(yīng)用與軟件,2021,38(06):9-13+38.
[3]楊丞.通信原理課程實驗教學(xué)模式的研究與實踐[J].教育教學(xué)論壇,2019(31):279-280.
[4]劉美玲,張志巖.通信原理實驗箱數(shù)字信號源模塊的改進設(shè)計[J].實驗室科學(xué),2019,22(03):87-92+98.
[5]田瑩,盧金玉,劉宴濤.基于Matlab/Simulink的通信原理虛擬仿真實驗教學(xué)方法研究[J]. 現(xiàn)代電子技術(shù), 2015,(14).
[6]張鳴,李白萍.Matlab仿真在通信原理課程中的應(yīng)用[J].實驗技術(shù)與管理,2012(11):87-89.
[7]王志鵬,謝渝閩. 基于MATLAB的信號與系統(tǒng)課程綜合演示平臺[J]. 南陽師范學(xué)院學(xué)報,2020, 19(3): 71–74.
[8]張若愚. Python科學(xué)計算[M]. 北京:清華大學(xué)出版社,2016.
[9]趙廣輝. 面向新工科的Python程序設(shè)計交叉融合案例教學(xué)[J]. 計算機教育,2017(8): 23–27.
[10]陳娟,陳雯,石飛,等.基于Python的信號與系統(tǒng)實驗教學(xué)改革與實踐[J].實驗技術(shù)與管理,2021,38(05):196-200.
[11]尹園威,馬俊濤,史林,等.基于MatLab的IIR數(shù)字濾波器設(shè)計與應(yīng)用[J].中國現(xiàn)代教育裝備,2021,(21):31-33+42.
[12] 閻群,李擎,崔家瑞,等.大學(xué)生解決復(fù)雜工程問題能力的培養(yǎng)[J]. 實驗技術(shù)與管理,2017, 34(11): 178–181, 186.58ED6BB7-FD0E-4E6C-A614-E2BB7A8360B8