黃秀麗,周月娥
(南京理工大學紫金學院,江蘇 南京 210023)
隨著信息技術的發展,虛擬仿真在實際應用中越來越廣泛。虛擬仿真實驗教學是信息技術在教育領域的重要應用,是教育信息化的重要組成部分。特別是應對疫情對教學產生的影響時,在線教學成為主要的教學形式。但是,傳統依賴實驗設備的實驗教學形式沒有辦法搬移到互聯網上進行。實驗教學部分就要充分考慮虛擬仿真實驗項目和相關實驗教學資源,積極開展在線實驗教學的探索與實踐,保障實驗課程的內容和質量。
通信原理作為電子信息類專業課程,也面臨著開展虛擬仿真實驗教學的要求。針對硬件實驗設備不易搬移的不足,有借助Matlab/Simulink 虛擬仿真實驗環境對傳統實驗方法進行補充和改革的方案,也有基于SystemView 構建的實驗教學體系。但是,這些虛擬仿真平臺上的仿真結果不能直接應用到實際工程應用中,仿真實驗形成的代碼不具備通用性,離開了仿真平臺就無法運行。尋找一種簡潔方便,與實際工程應用緊密結合的仿真平臺成為通信原理虛擬仿真的當務之急。Python作為近年來發展迅速的人工智能語言,與通信原理的結合越來越緊密,同時也為通信原理虛擬仿真提供了一種新的途徑。
虛擬仿真的實施過程中,需要結合理論知識來進行。結合線上、線下的教學平臺,將多種信息技術手段融為一體,讓學習者在工程應用、原理知識、實踐仿真、技術前沿各方面感知通信原理。讓學習者全方位理解通信原理知識點并掌握通信原理實際工程應用能力。通過多種維度從理論剖析、仿真實驗、實際應用、研究性學習等方面對通信原理進行研究。
Python 做為近年來人工智能比較流行的語言,能夠以更簡潔的語法,更強大的第三方庫強有力地支撐復雜數據分析和智能處理。隨著通信技術的發展,Python 與通信系統相結合成為新的研究方向。結合通信技術的發展方向以及實際工程應用的需要,將Python 與通信原理虛擬仿真相結合,不僅可以提升學習者對實驗原理的理解,更能將虛擬仿真的結果直接對接到實際工程項目,真正做到學以致用。Python 的可視化開發工具有很多,目前應用較為廣泛的是PyCharm。在電腦上安裝了Python 的開發環境和開發工具PyCharm 后就可以進行通信原理的虛擬仿真。
5G 技術的發展,其中關鍵技術之一就是信號調制。目前,應用最廣泛的調制技術是QAM 調制。接下來將以典型的16QAM 調制為例介紹Python 在通信原理虛擬仿真中的應用情況。
M 進制調制中,共有M 種1 和0 的比特組合,分別對應M 種碼元波形,每個碼元波形可傳輸log2M個比特的信息。QAM 調制中不同低頻基帶信號的比特組合對應不同高頻帶通信號的碼元波形。QAM 碼元波形通過幅度或者相位上的不同對應不同的比特組合。
QAM 調制是結合了幅度調制和相位調制的一種調制方式。通過將QAM 調制的公式展開可以發現QAM 可以表示成I 路和Q 路兩路正交載波的幅度鍵控之和。QAM 調制的虛擬仿真就是針對指定的二進制比特流信號給出對應的QAM 調制后的碼元波形。

以16QAM 為例,1個碼元對應4 比特b0b1b2b3。那么就對應前2個比特b0b1,QK 對應后2個比特b2b3。于是將IK 的4個幅度+3A、+A、-A、-3A 與比特b0b1 的4個組合11、10、01、00 相對應。QK 的4個幅度+3A、+A、-A、-3A 與比特b2b3 的4個組合11、10、01、00 相對應。16QAM 中的16 種比特組合分別對應了IK 和QK 的16 種不同排列組合。IK 和QK 的值不同也對應了不同的AK 和θK。比特組合b0b1b2b3 與IK、QK 以及AK、θK之間的對應關系可以用星座圖表示。16QAM 星座圖虛擬仿真的Python 代碼如下:
d i g r a m = {‘1 1’:3,’1 0’:1,’0 1’:-1,’00’:-3}#設置數字和幅度的對應關系
spots = {}#放置點
plt.axis([-5,5,-5,5])#設置坐標的數字范圍
for i in [‘0’,’1’]:
for j in [‘0’,’1’]:
for k in [‘0’,’1’]:
for p in [‘0’,’1’]:
str = ‘’.join([i,j,k,p])#通過循環獲得16個比特組合b0b1b2b3
str1 = ‘’.join([i,j])#前2個比特組合b0b1
a = digram[str1]#獲b0b1 對應的值
str2 = ‘’.join([k,p])
b = digram[str2]#獲取b2b3 對應的QK 值
complexSpot = complex(a,b)#將IK、QK 保存為一個復數的實部和虛部
plt.scatter(a,b,c=’black’)# 將IK、QK 做為橫坐標、縱坐標繪制星座點
plt.text(a,b+0.3,str,horizontalalignment=’center’)#繪制比特組合
tempspot = {str:complexSpot}#獲得數字組合和點的對應
spots.update(tempspot)# 比特組合與點的對應關系存入字典集合
隨著信息技術的發展,我國傳統農業正在向現代化的智慧農業轉化。智慧農業是指依托農業大數據,集物聯網、傳感器、云計算等多種新興技術為一體,實現農業生產中的智能感知、監測、預警、分析等,并提供精準決策。田間害蟲圖像作為農業大數據的重要組成部分,準確對其進行識別,并以此為依據進行害蟲防治,是實現智慧農業的重要環節。
plt.show()
運行Python 代碼后就可以得到16QAM 的星座圖。如圖1 所示。可以發現16QAM 信號有3個不同的幅度,12個不同的相位。相鄰比特需符合格雷碼編碼方式。

圖1 結合Python 的16QAM 星座圖虛擬仿真
通過星座圖可以得到比特組合對應的IK 和QK 值。每個比特組合對應一個復數,復數的實部對應IK 的值,復數的虛部對應QK 的值。比特組合和復數的對應關系保存在字典對象spots 中。根據spots 中比特組合與復數的對應關系就可以進行16QAM 調制波形的仿真。具體實現代碼如下:
# 基帶信號
plt.subplot(2, 1, 1)
y1 = [0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1,1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1]
plt.plot(t, y1, drawstyle=’steps-post’) #將16個比特每隔0.5 繪制到坐標系上
plt.xlim(0, 12)
# 串并變換
l4 = int(len(y1) / 4) # 獲取比特流的長度除以4,4個比特為一組
a = np.asarray(y1) # 將基帶信號轉換為numpy 格式
y2 = a.reshape(l4, 4) # 將一維數組轉置為二維數組,每一行有4個比特
plt.subplot(2, 1, 2)
t = np.arange(0, 12., 0.01) # 橫坐標的數據列表,每隔0.01 繪制一個點
rectwav = [] # 用來存儲縱坐標值的列表
# i 表示第i個碼元,繪制碼元波形
for i in range(l4):
b = y2[i] # 取出第i 組比特組合b0b1b2b3
str4Bits = str(b).strip(‘[‘).strip(‘]’).replace(‘ ‘,‘’) # 轉換為字符串并且去掉[ ] 和空格
complexWave = spots[str4Bits] #得到IK 和QK 的值
xWave = complexWave.real # 取出實部IK 的值
yWave = complexWave.imag # 取出虛部QK 的值
t_tmp = t[(i * 200):((i + 1) * 200)] #每段波形長度應該是0.5 的4 倍,也就是2
xI_tmp = xWave * np.ones(200) #IK
yQ_tmp = yWave * np.ones(200) # QK
wav_tmp = xI_tmp * np.cos(2 * np.pi * 5 * t_tmp) - yQ_tmp * np.sin(2 * np.pi * 5 * t_tmp) #IK 和QK 分別與2個正交載波相乘求和
rectwav.append(wav_tmp) # 將調制后的點加到總的波形列表中
plt.plot(t, np.array(rectwav).flatten())
plt.xlim(0, 12)
plt.ylim(-5, 5)
plt.tight_layout()
plt.show()
在16QAM 調制波形仿真中,首先將基帶信號的比特流進行串并變換,放在1個二維數組中,二維數組的每行對應1個比特組合b0b1b2b3。在for 循環中對每行比特組合進行遍歷,通過spots 字典查詢比特組合對應的IK、QK 值,將IK、QK 分別與2個正交載波相乘求和。運行程序就得到了16QAM 的波形圖,如圖2 所示。

圖2 結合Python 的16QAM 波形調制虛擬仿真
通過虛擬仿真的結果可以看到Python 十分適合應用在通信原理虛擬仿真中。Python 代碼簡潔易懂,仿真結果清晰直觀,同時可以直接應用于實際工程項目中,與實際通信系統無縫連接。
結合Python 的通信原理虛擬仿真不僅為在線實驗教學提供了更多的可能,也促進了人工智能技術在通信原理中的應用,符合通信技術發展的方向。Python 作為人工智能的主要語言,為通信原理虛擬仿真提供了更加便捷開放的平臺,促進了通信原理虛擬仿真與實際工程應用的結合。通過Python 進行通信原理的虛擬仿真需要同時掌握通信原理理論知識和Python 編程規則,廣泛深入地實施結合Python 的通信原理虛擬仿真還需要進一步發展。