李建平,王 坦,劉艷潔
(國家無線電監(jiān)測中心陜西監(jiān)測站,陜西 西安 712000)
電磁兼容性(EMC)是指設備或者系統(tǒng)在其電磁環(huán)境中符合要求運行并不對其環(huán)境中的任何設備產生無法忍受的電磁干擾的能力。國際電工委員會標準IEC對電磁兼容的定義是:系統(tǒng)或設備在所處的電磁環(huán)境中能正常工作,同時不對其他系統(tǒng)和設備造成干擾。EMC可以分為設備間的和系統(tǒng)間的。系統(tǒng)間的EMC分析主要是指兩種業(yè)務系統(tǒng)(如IMT系統(tǒng)和射電天文系統(tǒng))之間的兼容問題,研究的目標是獲取兩種業(yè)務系統(tǒng)能夠共存的參數(shù)。作為無線電管理部門,日常工作涉及的EMC分析主要是指系統(tǒng)間的EMC分析,下文所涉及的EMC分析均指是的系統(tǒng)間的。
Matlab[1]是數(shù)值計算領域的主流工具,其提供了大量的數(shù)值計算模塊和豐富的數(shù)據(jù)顯示模式,便于用戶快速進行算法研究和科學建模仿真,而且由于擁有友好的工作平臺和簡單易用的編程語言,因此很快成為EMC分析最常用工具。但是在實際工作中,常常會遇到比較復雜的EMC分析場景,這種場景的仿真計算量很大,在使用Matlab仿真時,程序的耗時特別長,極大地影響了EMC分析工作的效率。
為了解決上述問題,筆者分析了Matlab運行效率低的原因主要是由Matlab屬于解釋器語言的性質造成的,這種性質決定了Matlab語言自身運行效率不高。因此,筆者想到平時使用比較多的C++語言,該編程語言屬于編譯性語言,自身運行效率很高,是否可以將C++語言用于EMC分析以此來提高分析效率以及C++語言在EMC分析使用中是否會遇到新的問題,這是本文要討論的兩個主要內容。
本文的主要思路是,以EMC分析中很重要的一個環(huán)節(jié),電波傳播損耗計算為切入點,用Matlab和C++分別仿真一個實際的傳播模型ITU-R P.2108,然后對比兩種實現(xiàn)方式在仿真效率上的區(qū)別以及C++在實現(xiàn)仿真過程中遇到的問題,最后做出總結。
ITU-R P.2108傳播模型[2]是國際電聯(lián)以建議書的形式推出的,基主要內容介紹了30 MHz~100 GHz頻率范圍內通過地物模型估算損耗的多種方法。地物指的是地球表面的各種物體,如建筑物或植被,而不是實際的地形。無線電發(fā)射機或者接收機終端周圍的地物會對整體傳播效果產生重大的影響,并且最靠近終端的地物對傳播效果的影響最大。建議書主要給出了兩種情況下的地物統(tǒng)計模型,一種是地面路徑的統(tǒng)計模型,另外一種是地空路徑的統(tǒng)計模型。下面對兩種模型進行詳細介紹。
地面路徑統(tǒng)計模型的適用范圍為城市和郊區(qū)地物損耗建模,具體的參數(shù)和范圍如表1所示。
表1 地面路經統(tǒng)計模型的輸入?yún)?shù)表
詳細的計算過程如下,對地面到地面的路徑,不超過p%位置的地物損耗由式(1)給出。
式中,d為總的路徑長度。
地空路徑統(tǒng)計模型使用的場景是,其中干擾路徑的一端在人造地物內,另一端為地面上的衛(wèi)星、飛機或其他平臺,具體的參數(shù)和范圍如表2所示。
表2 地空路經統(tǒng)計模型的輸入?yún)?shù)表
詳細的計算過程如下,對地面到機載平臺或衛(wèi)星的路徑,不超過 位置的地物損耗由式(2)給出。
為了進行兩種仿真方式效率的對比,筆者按照ITU-R P.2108傳播模型的特點設置了兩個場景分別進行對比。
場景一:EMC分析案例的傳播方式為地面路徑,并且選擇ITU-R P.2108作為地物損耗的計算模型。頻率為4.5 GHz,位置百分比為50%,仿真中的距離d為一個可變參數(shù),仿真變化范圍為0.25~100 km,并且假設i為變化間隔,改變i就可以實現(xiàn)對1次仿真循環(huán)次數(shù)的變化。
場景二:EMC分析案例中的傳播方式為地空路徑,并且選擇P.2108作為地物損耗的計算模型。頻率為25 GHz,位置百分比為50%,仿真中的仰角θ為一個可變參數(shù),仿真變化范圍為0°~90°,并且假設j為變化間隔,改變j就可以實現(xiàn)對1次仿真循環(huán)次數(shù)的變化。
仿真實驗中采用的i5-4200的雙核處理器,內存為8 GB,操作系統(tǒng)為Windows7,結果如表3和表4所示。
表3 場景一仿真計算結果表
表4 場景二仿真計算結果表
仿真結果分析:從場景一和場景二的仿真計算結果表可以看出,當仿真循環(huán)次數(shù)不大時,Matlab和C++耗時差不多;隨著仿真循環(huán)次數(shù)的增加,耗時的差距越來越明顯,當循環(huán)次數(shù)到100 000級別時,Matlab耗時差不多是C++耗時的3倍之多。因此,在仿真量較大時,C++語言能夠明顯提升EMC仿真效率,節(jié)省EMC仿真時間。
假設,隨機變量X服從位置參數(shù) 、尺度參數(shù) 的概率分布,并且其概率密度函數(shù)為
則這個隨機變量就稱為正態(tài)隨機變量,正態(tài)隨機變量服從的分布就稱為正態(tài)分布,記作。
Q函數(shù)又稱為標準正態(tài)分布的右尾函數(shù)
因為
所以
問題轉化為求解標準正態(tài)分布函數(shù)的反函數(shù)。標準正態(tài)分布函數(shù)的反函數(shù)沒法用簡單的公式表示,因此工程上經常采用有理近似的方法求解,下面介紹求解過程[4]。
step1:初始化常量兩個數(shù)值常量LOW,HIGH以及4個系數(shù)數(shù)組分別是數(shù)組a,b,c,d,p為輸入?yún)?shù),q,r定位為臨時變量;
step2:如果p<0或者p>1,返回錯誤,程序結束;否則進入step3;
step3:如果p==0 返回-∞,程序結束;否則進入step4;
step4:如果p==1 返回∞,程序結束;否則進入step5;
step5:如果p step6:如果p>HIGH, q=sqrt(-2*log(1-p)),返回-(((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q +c[4]) * q + c[5]) /((((d[0] * q + d[1]) * q + d[2]) * q +d[3]) * q + 1),程序結束;否則進入step7; step7:q=p-0.5,r=q*q,返回(((((a[0] * r + a[1]) * r+ a[2]) * r + a[3]) * r + a[4]) * r + a[5]) * q /(((((b[0] *r + b[1]) * r + b[2]) * r + b[3]) * r + b[4]) * r + 1),程序結束。 上述step1~step7偽代碼詳細介紹了標準正態(tài)分布函數(shù)的反函數(shù)求解過程,進而可以求解出函數(shù)。 本文通過采用Matlab和C++語言對I T U-R P.2108傳播模型兩種場景的模擬仿真實現(xiàn),統(tǒng)計對比不同仿真次數(shù)所用的時間,結果表明,C++語言在實現(xiàn)EMC仿真過程中確實能夠提高運行效率,節(jié)約仿真時間。 本文最后還介紹了C++在實現(xiàn)EMC仿真過程中遇到的難點問題以及解決方案,通過對C++仿真過程中問題的介紹可以看出,雖然C++語言運行效率比較高,但是由于自身的函數(shù)庫沒有Matlab完善,所以在仿真編程過程中開發(fā)效率不高,對于開發(fā)人員技術水平要求較高。所以,在日常的EMC仿真分析的場景中,應該根據(jù)仿真場景的復雜程度和編程開發(fā)人員的技術水平選擇合適的仿真工具以提高仿真效率,節(jié)約仿真時間。■4 結束語