散射求導電磁參數(shù)_第1頁
散射求導電磁參數(shù)_第2頁
散射求導電磁參數(shù)_第3頁
散射求導電磁參數(shù)_第4頁
散射求導電磁參數(shù)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、 散射參數(shù)反演材料電磁參數(shù)群延遲方法在無線電頻率范圍內(nèi)測量材料的復介電性能因其應用廣泛從而得到越來越多的重視,尤其是在我們很多熟知的研究領域,如材料科學,微波電路設計,吸收器開發(fā),生物研究等。介電測量的重要性體現(xiàn)在它可以提供材料電或磁的特性,被證明是可用于眾多多研究和發(fā)展領域。許多方法已被開發(fā)來測量這些復雜的屬性,如在時域或頻域的方法;單端口或雙端口的測量方法,但每個方法都受限于特定頻率的性質和應用程序制約因素。隨著新技術的不斷出現(xiàn)和發(fā)展,現(xiàn)在可以將使用矢量網(wǎng)絡分析儀測量的反射和透射系數(shù),通過適當?shù)能浖绦蜻M行計算,將數(shù)據(jù)轉換為復介電常數(shù)性能參數(shù)。矢量矢量本論文目的是描述從使用網(wǎng)絡分析儀測量出

2、的S參數(shù)進行計算從而得出材料的電磁特性的一般程序。 介電性能的測量包括測量材料的復數(shù)相對介電常數(shù)(r)和復數(shù)相對磁導率(<R)。復的介電常數(shù)由其實部和虛部組成。復介電常數(shù)的實部是一個測量的材料從外部電場所獲得能量儲存在材料中的部分。虛部是損耗因子(理想無損材料為零)。它是衡量的是材料由于外部電場而導致的能量損失。ghost也被稱為耗散因子。 與之類似的復磁導率的實部表示材料在外部磁場中儲存的能量,而虛部代表消散由于磁場的能量的量。以上的復磁導率的測量是只適用于磁性材料。大多數(shù)材料是非磁性的,因此,磁導率非常接近的真空磁導率。 S11定義為端口1反射的能量與端口1入射信號之比。S21定義為

3、通過DUT傳輸?shù)蕉丝?的能量與端口1的入射信號之比。S11和S21為前向S-參數(shù),這是因為入射信號來自端口1的射頻源。對于端口2的入射源,S22為端口2反射的能量與端口2入射信號之比,S12為通過DUT傳輸?shù)蕉丝?的能量與端口2入射信號之比。 它們都是反向S-參數(shù)。表征傳輸?shù)腟-參數(shù),如S21,類似于增益、插入損耗、衰減等其它常見術語。 表征反射的S-參數(shù),如S11,對應于電壓駐波比(VSWR)、回波損耗或反射系數(shù)。 S-參數(shù)還具有其他優(yōu)點。 它們被廣泛認可并應用于現(xiàn)代射頻測量。對于互易網(wǎng)絡,有:S12S21;對于對稱網(wǎng)絡,有:S11S22 對于無耗網(wǎng)絡,有:(S11)2(S12)21 ; 且

4、S參數(shù)可輕松轉換成H、Z或其他參數(shù)。 多個設備可進行S-參數(shù)級聯(lián),以生成綜合結果。 更重要的是,S參數(shù)用比率表示。 因此,用戶無需將入射源功率設置為某個絕對值。 DUT的響應會反映輸入信號的任何偏移,且當計算傳輸信號或反射信號與入射信號之比時,會對偏移進行補償。網(wǎng)絡分析儀有四個基本功能模塊,如下圖所示:通過S參數(shù)求導電磁參數(shù)目前方法比較多各有優(yōu)缺點:測量方法試樣所需S參數(shù)可得電磁參數(shù)傳輸/反射法T/R同軸,導波S11, S21r,r開放端口探測液體,生物體,凝膠S11r,自由空間耐高溫材料,氣體,長直扁平固體材料S11, S21r,r諧振方法液體,圓棍樣固體,導波頻率,Q因子r,r傳輸/反射線

5、法是一種流行的寬帶測量方法。在該方法中,只有基本波導模式(TEM模式在同軸線路和TE在波導模式)被假定為傳播。 傳輸/反射線法的優(yōu)點同軸線和波導通常用于測量中高損耗樣品。可同時確定被測材料的介電常數(shù)和導磁率傳輸/反射線法的缺點由于空氣間隙的存在,測量精度相對不高。當樣品長度的半波長的倍數(shù),氣測量結果精度低。 開放端口共軸探針法是一種非破壞性的方法,該方法假定只有TEM或TE模式傳播。開放式同軸探針法的優(yōu)點不需要加工樣品,樣品制備容易。儀器校準后,在很短的時間可測得大量的樣品的介電性質。在溫度嚴格控制的環(huán)境中,可進行測定。開放式同軸探針法的缺點只能測得反射參數(shù)S11。由于空氣間隙的存在

6、,測量精度相對不高。 諧振的方法提供了高精度結果并可選擇TE或TM傳播模式。諧振法的優(yōu)點能夠測量非常小的MUT。近只需要樣品和空腔的粗略值。共振法的缺點需要高頻率方案的VNA。頻率范圍比較窄。 自由空間的方法是為寬帶應用但只能用于TEM傳播模式。自由空間法的優(yōu)點可用于高頻率測量。允許非破壞性測量。在惡劣環(huán)境中測量MUT。可同時確定被測材料的介電常數(shù)和導磁率。自由空間法的缺點需要大而扁平的MUT。多次天線和樣品表面之間的反射。在樣品的邊緣有衍射效應。由S參數(shù)計算電磁參數(shù)的主要方法如下所示:計算方法所需S參數(shù)電磁參數(shù)NRWS11, S21, S12, S22 or S11, S

7、21r,rNIST iterativeS11, S21, S12, S22 or S11, S21r,r = 1New non-iterativeS11, S21, S12, S22 or S11, S21r,r = 1SCLS11r,在此處鍵入公式。Nicholson-Ross-Weir (NRW) 方法提供了一種直接用S參數(shù)計算出材料介電常數(shù)和導磁率。這是最常用的對S參數(shù)進行計算的方法。反射系數(shù)的測量和傳輸系數(shù)要求所有四個(S11,S21,S12,S22)或者一對(S11,S21)要測量被測材料的S-參數(shù)。然而,該方法分支對應于頻率低損耗材料樣品中的半波長的整數(shù)倍,這是由于相歧義。因此,它

8、被限制到最佳的樣品厚度的1/ 4波長并要求樣品長度短。NRW方法當樣品中的波長為樣品長度半波整數(shù)倍數(shù)時所采集到數(shù)據(jù)發(fā)散。這是由因為即在這些點相對應的S參數(shù)(S11)變得非常小。對于一個小的S參數(shù)(S11)的值的不確定性在VNA上是很大。因此造成的不確定性在這些頻率上的發(fā)散。這些可以通過減少樣品的長度,避免數(shù)據(jù)發(fā)散,但是在未知樣品電磁參數(shù)時很難確定合適的樣品長度。下圖為一NRW方法的計算結果圖。可清晰的看出半波長是的數(shù)據(jù)發(fā)散。NRW方法的優(yōu)點快速,非迭代。適用于波導和同軸線。NRW方法的缺點半波長的倍數(shù)相對應的頻率發(fā)散。樣本長度應盡可能短。不適合低損耗材料。NIST的迭代方法進行計算,使用New

9、ton-Raphson數(shù)值計算方法但適于僅介電常數(shù)的計算。它使用所有四個(S11,S21,S 12,S22)或者一對(S11,S21)MUT的S-參數(shù)計算反射和透射系數(shù)。它運作良好,如果一個好的初始猜測是可用的。該方法繞過NRW方法中存在當樣品厚度是一個半波長的整數(shù)倍的誤差峰。它是適用于長樣品和表征低損耗材料。下圖為一NIST迭代法的計算結果圖??梢姳荛_了半波長的數(shù)據(jù)發(fā)散。通過使用該方法從S-參數(shù)可以計算出頻譜穩(wěn)定的介電常數(shù),并且它允許測量任意長度的樣品。該方法可以最大限度地減少NRW方法的數(shù)據(jù)發(fā)散,但只有非磁性材料(r = 1)可以使用這個方法測量。NIST的優(yōu)點迭代法平滑介電常數(shù)的結果,沒

10、有分歧。準確??梢允褂萌我忾L度的樣品。強大的低損耗和高損耗材料。NIST的缺點迭代法適用于僅介電常數(shù)測量。需要介電常數(shù)值的初始猜測。新的非迭代法和NRW方法是相當類似的,但計算公式和NRW方法不同,它適于計算非磁性材料(r = 1)的介電常數(shù)。它使用所有四個(S11,S21,S12,S22)S-參數(shù)或兩個(S11,S21)MUT的反射和透射系數(shù)進行計算。該方法的優(yōu)點全頻穩(wěn)定可以采樣任意長度。該方法是基于對NRW方法的簡化版本沒有觀察到半波長倍數(shù)所出現(xiàn)的數(shù)據(jù)發(fā)散。它并不需要一個初始估計的介電常數(shù),并能執(zhí)行計算速度非???。精度可比迭代方法。該方法使用的部分不同的計算程式從NRW方法可以很容易地擴展

11、到其他的測量樣本,例如微帶共面線。它也有出現(xiàn)的介電常數(shù)和導磁率中的表達有效的電磁參數(shù)。有效的電磁參數(shù)代表的傳播模式。如下圖所示未出現(xiàn)半波長的數(shù)據(jù)發(fā)散。新的非迭代方法的優(yōu)點平滑介電常數(shù)的結果,沒有發(fā)散。準確。可以使用任意長度的樣品。快速,非迭代。沒有最初的猜測需要。新的非迭代方法的缺點適用于僅介電常數(shù)測量。Short circuit line (SCL) 方法是一個同軸端口測量線或波導。它執(zhí)行的計算使用與NIST的迭代法相同的Newton-Raphson數(shù)值計算方法但僅適合于計算介電常數(shù)。它利用的S11 參數(shù)計算反射系數(shù)。該方法要求具有良好的初始猜測,才可獲得準確的結果。該方法還需要輸

12、入樣品長度和位置的精確測量。下圖為顯示通過SCL計算方法得到的數(shù)據(jù)SCL方法的優(yōu)點平滑介電常數(shù)的結果,沒有分歧。準確。可以使用任意長度的樣品。對于寬帶測量,最好使用長低損耗樣品材料。SCL方法的缺點需要初始猜測。迭代。需要準確的樣品長度。最后,用戶需要知道合適的測量和轉換的方法,以便測量其介電性能的材料。因為只有使用正確的方法于特定的材料才能得到可信的測量和計算結果。如果使用了錯誤的方法測量,計算,結果不會令人滿意。下圖總結了不同試樣推薦的測量和計算方法:試樣長,磁性測量方法轉換計算方法計算速度準確度高損耗固體 + 短 + 非磁性傳輸/反射NRW快中等高損耗固體 + 短 +磁性傳輸/反射NRW

13、快中等低損耗固體 + 長 + 非磁性傳輸/反射NIST iterative慢好低損耗固體 + 長 + 非磁性傳輸/反射New non-iterative快好生物樣本開放端口RFM快好液體開放端口RFM / Reference liquids快好/中等半固體開放端口RFM快好高溫固體 + 大/平 + 非磁性開放空間NIST iterative / New non iterative慢/快好高溫固體 + 大/平 + 非磁性開放空間NRW快中等低損耗固體 + 小 + 磁性諧振法Frequency & Q-factors慢好低損耗固體 + 校 + 非磁性諧振法Frequency & Q

14、-factors慢好除了測量和轉換方法,速度和精度是最重要的特性。速度有多快涉及的測量方法能夠提取S-參數(shù)轉換方法的速度。精度取決于校準方法和使用的轉換方法。材料電磁參數(shù)的測量技術一直是材料科學、微波電路設計、生物電磁效應、吸波隱身技術等領域的重要研究課題。在射頻吸波材料吸收性能的仿真計算和干擾抑制用磁性材料的研究等活動中, 相對復介電常數(shù)和相對復磁導率的測量對于合理的選擇材料、設計器件同樣至關重要。根據(jù)被測材料的形態(tài)、損耗或色散特性及其應用的頻段, 電磁參數(shù)的測量方法也多種多樣。NRW傳輸/反射法是由Nicolson、Ross Weir等人于20世紀70年代提出的一種通過傳輸線測量材料電磁參

15、數(shù)(復介電常數(shù)與復磁導率)的方法。該方法將待測材料樣品置入空氣傳輸線(波導或者同軸線)中構成一個互易二端口網(wǎng)絡, 通過矢量網(wǎng)絡分析儀(VNA, vector networkanalyzer)測量該傳輸線的二端口網(wǎng)絡S參數(shù)( Sparameters), 繼而由散射方程推算得到被測材料的電磁參數(shù)。NRW傳輸/反射法具有頻帶寬( 1MHz30GHz)、易操作、精度高且僅需一次測量即可同時得到材料復介電常數(shù)與復磁導率等特點, 因而在測量不同損耗、磁性或非磁性材料電磁參數(shù)方面得到了廣泛的應用。然而, 傳統(tǒng)的NRW傳輸/反射法同時也存在半波諧振和多值性兩個主要問題。減小試樣厚度使其小于諧振波長的一半可以同

16、時解決這兩個問題, 然而, 由于材料電磁參數(shù)未知, 無法確定合適的試樣厚度, 且過小厚度的試樣給加工和裝夾帶來了麻煩和誤差。因此國內(nèi)外研究人員主要是通過算法的研究來解決以上兩個問題。Jarvis等人提出一種迭代的方法來解決半波諧振問題, 但是對于未知性能的待測材料, 正確預估其電磁參數(shù)是很困難的; 更多的研究者對求解方程式進行改寫, 使得求解過程不會包含分母趨近于0的計算式, 從理論上消除了半波諧振問題。多值性問題的解決方法目前有冗余比較法,虛部補償法等。第一種方法計算操作比較復雜繁瑣 第2種方法則需要足夠低的起始測試頻率且沒有給出確切的理論依據(jù)。所以本文在前人研究的基礎上,采用是群延遲方法來

17、計算材料復介電常數(shù)與復磁導率。T/ R法測量原理該方法通過測量填充有被測介質的傳輸線( 波導或同軸線) 的反射與傳輸響應, 即兩端口的S11、S21 參數(shù), 推算出材料的電磁參數(shù)。假設被測材料( 相對復介電常數(shù)為r = r - jr , 相對復數(shù)磁導率為r = r - jr) 厚度為d, 填充于特性阻抗為50 的圓形同軸線的內(nèi)、外導體之間, 如圖1所示。平面波由自由空間投射到無限厚度的介質( 假設其電磁參數(shù)為r, ) 表面時, 會發(fā)生能量的反射, 反射系數(shù)為 但當介質的厚度有限時, 在空氣- 介質的兩個界面上將發(fā)生多次反射透射現(xiàn)象; 而且電磁波在穿圖1 傳輸/反射法測量原理示意圖越介質層時,

18、同時伴隨有能量的衰減和相移。矢量網(wǎng)絡分析儀采用掃頻方式在傳輸線兩端口測得的反射系數(shù)S11 與傳輸系數(shù)S21 應該是電磁波經(jīng)多次反射( !1、!2、!3 #!n) 和透射( T1、T2、Tn) 后的疊加。由電磁場基礎理論可以推出, 兩端口的S參數(shù)與反射系數(shù)!及傳輸系數(shù)T之間的關系如下:S11 = VrflVin = (1 - T2)1 - 2T2S21 = VtrsVin = (1 - 2)T1 - 2T2T=exp(-l)= Zc- Z0Zc+ Z0= 0rrZc = Z0rr0=j00Z0= 1200 lnba式中, S11與S21為散射參數(shù); 、T分別為反射和傳輸系數(shù); l為試樣厚度; 0

19、、分別為空氣與樣品區(qū)的傳播常數(shù); Z0、ZC 分別為空氣和樣品段同軸線的特性阻抗;0、 0分別為空氣的介電常數(shù)和磁導率; r= r'- j r", r= r'- j r"分別為待測材料的相對復介電常數(shù)和相對復磁導率; =2f 為工作角頻率; j為虛數(shù)單位。S參數(shù)轉換假定l1段與l2 段空氣同軸線無損耗, 則可測的基于校準端面(圖1中面1與面4)的S參數(shù)(記為Sm)與試樣端面(圖1中面2和面3)的S參數(shù)之間的轉換式為 (式中的ltotal = l1+ l+ l2為校準端面之間的距離):S11=S11m exp(20 l1)S21=S21mexp0 l1+ l2

20、 =S21mexp0 ltotal - l傳輸反射系數(shù)的計算公式:K= S11 2- S212+ 12S11=K ± K2- 1T= S11 + S21- 1 - (S11 + S21) 其中取| < 1 的解。電磁參數(shù)的確定:= lnT/lrr = 0rr= 1+ 1- r= 0 × 1+ 1- r= 0 × 1- 1+ 在這些計算公式中我們可以看到S參數(shù)和T都是復數(shù)值,進一步分析公式 = lnT/l中我們可以得到(T = |T|ej):= - lnT+ j( ±2n)l因此必然不是單值的,這就是NRW方法中遇到的多值性問題。圍繞多值性的問題最近

21、有提出用虛部補償法來解決多值性問題,但此方法要求掃頻測試有較低的起始頻率和較小的頻率間隔, 以保證觀察到所有虛部的跳變, 即n是以0為起始值, 且以1為間隔增加的。并且缺乏理論基礎,因此本文利用群延遲的計算來解決這一問題。這種方法的思想是測量的具體頻率間隔足夠小, 使得傳輸參數(shù)的相位改變小于360度。對每一個頻率的群延遲可以通過假定r 和r , 在頻率增長很小的時候, 可以忽略r 和r 的變化。具體思路是由于試樣引起的群延遲是關于試樣長度的函數(shù),因此延遲通過該材料是一種可以使用群延遲的函數(shù)計算來解決多值性。計算出正確的r和r,采用的方法就是比較的測得的群延遲和計算出的群延時找到一個正確的n值。

22、計算群延遲的公式:cal =lddf rrf2C2-1c2 =l ×1C2 × frr + f212drrdfrrf2C2-1c2f 為頻率,C為真空中光速測量群延遲的公式為:meas = -12ddf用不同的n值計算出的n個計算群延遲于測量群延遲進行比較當:cal - meas 0也就是計算群延遲最接近測量群延遲時,此時的n值為計算電磁參數(shù)公式中應采用的值,由此消除了n值得不確定的問題。從而可以計算出準確的電磁參數(shù)。具體計算中的數(shù)值微分:df=frequency2-frequency1d=2- 1drr=r*r*- rr 既使用前后頻率差來表示df,前后S參數(shù)的幅角差值來

23、表示d,drr則代入不同n值而計算出的r*r*減去前一已經(jīng)計算出的數(shù)值得出。當然初始頻率的電磁參數(shù)計算與其后的計算方式不同,由于采用了足夠小的頻率差,因此可以假設初始頻率及緊隨其后的數(shù)值在同一周期中,可以假設為同一n值同時代入用上述公式進行計算。既drr=2r*2r*- 1r*1r*具體計算的編程具體的數(shù)據(jù)計算采用的是python編程,使用了math包,cmath包,以及附加的科學計算程序numpython,繪圖程序matplotlib。python簡介Python的創(chuàng)始人為吉多·范羅蘇姆(Guido van Rossum)。Python(英國發(fā)音:/pan/ 美國發(fā)音:/pan/)

24、,是一種面向對象、直譯式電腦編程語言,具有近二十年的發(fā)展歷史,成熟且穩(wěn)定。它包含了一組完善而且容易理解的標準庫,能夠輕松完成很多常見的任務。它的語法簡捷和清晰,盡量使用無異義的英語單詞,與其它大多數(shù)程序設計語言使用大括號不一樣,它使用縮進來定義語句塊。與Scheme、Ruby、Perl、Tcl等動態(tài)語言一樣,Python具備垃圾回收功能,能夠自動管理存儲器使用。它經(jīng)常被當作腳本語言用于處理系統(tǒng)管理任務和網(wǎng)絡程序編寫,然而它也非常適合完成各種高級任務。Python虛擬機本身幾乎可以在所有的作業(yè)系統(tǒng)中運行。使用一些諸如py2exe、PyPy、PyInstaller之類的工具可以將Python源代碼

25、轉換成可以脫離Python解釋器運行的程序。Python的官方解釋器是CPython,該解釋器用C語言編寫,是一個由社區(qū)驅動的自由軟件,目前由Python軟件基金會管理。Python支持命令式程序設計、面向對象程序設計、函數(shù)式編程、面向側面程序設計、泛型編程多種編程范式。Python的設計哲學是“優(yōu)雅”、“明確”、“簡單”。因此其對手Perl語言中“總是有多種方法來做同一件事”的理念在Python開發(fā)者中通常是難以忍受的。Python開發(fā)者的哲學是“用一種方法,最好是只有一種方法來做一件事”。在設計Python語言時,如果面臨多種選擇,Python開發(fā)者一般會拒絕花俏的語法,而選擇明確的沒有或

26、者很少有歧義的語法。由于這種設計觀念的差異,Python源代碼通常被認為比Perl具備更好的可讀性,并且能夠支撐大規(guī)模的軟件開發(fā)。這些準則被稱為Python格言。在Python解釋器內(nèi)運行import this可以獲得完整的列表。Python是完全面向對象的語言。函數(shù)、模塊、數(shù)字、字符串都是對象。并且完全支持繼承、重載、派生、多繼承,有益于增強源代碼的復用性。Python支持重載運算符,因此Python也支持泛型設計。相對于Lisp這種傳統(tǒng)的函數(shù)式編程語言,Python對函數(shù)式設計只提供了有限的支持。有兩個標準庫(functools, itertools)提供了Haskell和Standard

27、 ML中久經(jīng)考驗的函數(shù)式程序設計工具。雖然Python可能被粗略地分類為“腳本語言”(script language),但實際上一些大規(guī)模軟件開發(fā)計劃例如Zope、Mnet及BitTorrent,Google也廣泛地使用它。Python的支持者較喜歡稱它為一種高級動態(tài)編程語言,原因是“腳本語言”泛指僅作簡單程序設計任務的語言,如shell script、VBScript等只能處理簡單任務的編程語言,并不能與Python相提并論。Python本身被設計為可擴充的。并非所有的特性和功能都集成到語言核心。Python提供了豐富的API和工具,以便程序員能夠輕松地使用C語言、C+、Cython來編寫擴

28、充模塊。Python編譯器本身也可以被集成到其它需要腳本語言的程序內(nèi)。因此,很多人誰?還把Python作為一種“膠水語言”(glue language)使用。使用Python將其他語言編寫的程序進行集成和封裝。在Google內(nèi)部的很多項目,例如Google Engine使用C+編寫性能要求極高的部分,然后用Python或Java/Go調用相應的模塊。2Python技術手冊的作者馬特利(Alex Martelli)說:“這很難講,不過,2004 年,Python 已在 Google 內(nèi)部使用,Google 召募許多 Python 高手,但在這之前就已決定使用Python,他們的目的是 Pytho

29、n where we can, C+ where we must,在操控硬件的場合使用 C+,在快速開發(fā)時候使用 Python?!盤ython開發(fā)人員盡量避開不成熟或者不重要的優(yōu)化。一些針對非重要部位的加快運行速度的補丁通常不會被合并到Python內(nèi)。所以很多人認為Python很慢。不過,根據(jù)二八定律,大多數(shù)程序對速度要求不高。在某些對運行速度要求很高的情況,Python設計師傾向于使用JIT技術,或者用使用C/C+語言改寫這部分程序。目前可用的JIT技術是PyPy。在很多作業(yè)系統(tǒng)里,Python是標準的系統(tǒng)組件。大多數(shù)Linux發(fā)布版以及NetBSD、OpenBSD和Mac OS X都集成了

30、Python,可以在終端機下直接運行Python。有一些Linux發(fā)布版的安裝器使用Python語言編寫,比如Ubuntu的Ubiquity安裝器、Red Hat Linux和Fedora的Anaconda安裝器。Gentoo Linux使用Python來編寫它的Portage包管理系統(tǒng)。Python標準庫包含了多個調用作業(yè)系統(tǒng)功能的庫。通過pywin32這個第三方軟件包,Python能夠訪問Windows的COM服務及其它Windows API。使用IronPython,Python程序能夠直接調用 .Net Framework。一般說來,Python編寫的系統(tǒng)管理腳本在可讀性、性能、源代碼

31、重用度、擴展性幾方面都優(yōu)于普通的shell腳本。Python的3.0版本,常被稱為Python 3000,或簡稱Py3k5。相對于Python的早期版本,這是一個較大的升級。為了不帶入過多的累贅,Python 3.0在設計的時候沒有考慮向下兼容。許多針對早期Python版本設計的程序都無法在Python 3.0上正常運行。為了照顧現(xiàn)有程序,Python 2.6作為一個過渡版本,基本使用了Python 2.x的語法和庫,同時考慮了向Python 3.0的遷移,允許使用部分Python 3.0的語法與函數(shù)?;谠缙赑ython版本而能正常運行于Python 2.6并無警告的程序可以通過一個2 to

32、 3的轉換工具無縫遷移到Python 3.06。新的Python程序建議使用Python 3.0版本的語法7。除非運行環(huán)境無法安裝Python 3.0或者程序本身使用了不支持Python 3.0的第三方庫。目前不支持Python 3.0的第三方庫有Twisted, py2exe, PIL等。大多數(shù)第三方庫都正在努力地兼容Python 3.0版本。即使無法立即使用Python 3.0,也建議編寫兼容Python 3.0版本的程序,然后使用Python 2.6, Python 2.7來運行。Python 2.7被確定為最后一個Python 2.x版本,它除了支持Python 2.x語法外,還支持部

33、分Python 3.1語法。適用于Python的集成開發(fā)環(huán)境(IDE)軟件,除了標準二進制發(fā)布包所附的IDLE之外,還有許多其他選擇。其中有些軟件設計有語法著色、語法檢查、運行調試、自動補全、智能感知等便利功能。由于Python的跨平臺出身,這些軟件往往也具備各種操作系統(tǒng)的版本或一定的移植性。numpython簡介的是Python編程語言的擴展,加入對龐大的多維數(shù)組和矩陣的支持,以及在這些陣列上運行大量高層次的數(shù)學函數(shù)庫。Jim Hugunin 于幾位開發(fā)者共同編寫了的前身。2005年包括:1、一個強大的N維數(shù)組對象Array;2、比較成熟的(廣播)函數(shù)庫;3、用于整合C/C+和Fortran

34、代碼的工具包;4、實用的線性代數(shù)、傅里葉變換和隨機數(shù)生成函數(shù)。5、numpy和稀疏矩陣運算包scipy配合使用更加方便。繪圖程序matplotlibmatplotlib它不僅提供一個非??旖莸挠胮ython可視化數(shù)據(jù)的方法,而且提供了出版質量的多種格式圖像。需要安裝numpy。程序由數(shù)據(jù)讀取,數(shù)據(jù)計算,繪圖三個主要模塊構成:數(shù)據(jù)讀取模塊進行數(shù)據(jù)的讀取和預處理,并將處理后的數(shù)據(jù)傳遞給數(shù)據(jù)計算模塊進行計算出相應的電磁參數(shù),主要內(nèi)容如下:import os, sys, caculstep = 160000000if len(sys.argv) > 1: sdatafile = 'sys

35、.argv1'else : sdatafile = r'E:nrwgd5911data.txt'#print(sdatafile, gddatafile)with open(sdatafile, 'r') as sdata: while 1: line = sdata.readline() if not line: break while(not line.startswith("#") and (not line.startswith("!") and (not line.startswith("&qu

36、ot;"): ls = line.split() frequency = float(ls0) Res11 = float(ls1) Ims11 = float(ls2) Res21 = float(ls3) Ims21 = float(ls4) cacul.gdcaculate(frequency,Res11,Ims11,Res21,Ims21,step) break數(shù)據(jù)計算模塊主要是通過文件讀取模塊來的數(shù)據(jù)進行計算群延遲和測量群延遲的計算,并通過比較兩者之值來確定正確的n值,從而得出正確的電磁參數(shù)。主要內(nèi)容如下:import math, cmath, ng#static n =

37、0def gdcaculate(frequency,Res11,Ims11,Res21,Ims21,step): c = 299792458 L = 3.5e-3 L1 = 2.85e-2 LT = 9.9898e-2 v0 =complex(0, (2 * math.pi * frequency)/c) s11m = complex(Res11, Ims11) s21m = complex(Res21, Ims21) s21 = s21m * cmath.exp( v0 * (LT-L) s11 = s11m * cmath.exp( 2 * v0 * L1) X = (s11*s11 -

38、s21*s21 + 1)/(2*s11) plusR = X + cmath.sqrt(X*X -1) minusR = X - cmath.sqrt(X*X -1) if abs(plusR) < 1: R = plusR else : R = minusR T = (s11 + s21 -R)/(1-(s11 + s21)*R) modulusT = abs(T) phaseT = cmath.phase(T) initialfq = 2E9 if (frequency > (initialfq +100): compare = 1000.0 measuregd = -(cma

39、th.phase(s21) - ng.angle)/(2 * math.pi * step) print(measuregd,ng.angle) ng.angle = cmath.phase(s21) print(ng.Ur,ng.Er) for n in range(0,100): supposev = complex(math.log(modulusT),(phaseT - 2*(math.pi)*n)/(-1 * L) supposeUr = (supposev/v0) * (1 + R)/(1 - R) supposeEr = (supposev/v0) * (1 - R)/(1 +

40、R) tcal = L * (frequency*supposeUr*supposeEr + 0.5*frequency*frequency*(supposeUr*supposeEr) - (ng.Ur*ng.Er)/step)/ (c*c*cmath.sqrt(frequency*frequency*supposeUr*supposeEr)/(c*c) #print(abs(tcal) if (abs(tcal - measuregd) < compare): compare = abs(tcal -measuregd) Ur = supposeUr Er = supposeEr N

41、= n ng.Ur = Ur ng.Er = Er ng.n = N with open('UrErresult.txt', 'a') as result: result.write(str(frequency) result.write(' ') result.write(str(ng.Ur.real) result.write(' ') result.write(str(ng.Ur.imag) result.write(' ') result.write(str(ng.Er.real) result.write

42、(' ') result.write(str(ng.Er.imag) result.write(' ') result.write(str(N) result.write('n') else : compare = 1000.0 ms11m = complex(0.22043, 0.44928) ms21m = complex(0.45446, 0.51653) ms21 = ms21m * cmath.exp( v0 * (LT-L1) ms11 = ms11m * cmath.exp( 2 * v0 * L1) mX = (ms11*ms11

43、 - ms21*ms21 + 1)/(2*ms11) mplusR = mX + cmath.sqrt(mX*mX -1) mminusR = mX - cmath.sqrt(mX*mX -1) if abs(mplusR) < 1: mR = mplusR else : mR = mminusR mT = (ms11 + ms21 -mR)/(1-(ms11 + ms21)*mR) mmodulusT = abs(mT) mphaseT = cmath.phase(mT) measuregd = -(cmath.phase(ms21) - cmath.phase(s21)/(2 * m

44、ath.pi * step) ng.angle = cmath.phase(s21) for n in range(-100,100): msupposev = complex(math.log(mmodulusT),(mphaseT - 2*(math.pi)*n)/(-1 * L) supposev = complex(math.log(modulusT),(phaseT - 2*(math.pi)*n)/(-1 * L) msupposeUr = (msupposev/v0) * (1 + R)/(1 - R) msupposeEr = (msupposev/v0) * (1 - R)/

45、(1 + R) supposeUr = (supposev/v0) * (1 + R)/(1 - R) supposeEr = (supposev/v0) * (1 - R)/(1 + R) tcal = L * (frequency*msupposeUr*msupposeEr + 0.5*frequency*frequency*(msupposeUr*msupposeEr) - (supposeUr*supposeEr)/step)/ (c*c*cmath.sqrt(frequency*frequency*msupposeUr*msupposeEr)/(c*c) if (abs(tcal -

46、 measuregd) < compare): compare = abs(tcal -measuregd) Ur = supposeUr Er = supposeEr N = n ng.Ur = Ur ng.Er = Er with open('UrErresult.txt', 'a') as result: result.write(str(frequency) result.write(' ') result.write(str(ng.Ur.real) result.write(' ') result.write(str(ng.Ur.imag) result.write(' ') result.write(str(ng.Er.real) result.write(' ') result.write(str(ng.Er.imag) result.write(' ') result.write(str(N) result.write(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論