微波通信技術(shù)課程設(shè)計報告-Smith圓圖的軟件設(shè)計.docx_第1頁
微波通信技術(shù)課程設(shè)計報告-Smith圓圖的軟件設(shè)計.docx_第2頁
微波通信技術(shù)課程設(shè)計報告-Smith圓圖的軟件設(shè)計.docx_第3頁
微波通信技術(shù)課程設(shè)計報告-Smith圓圖的軟件設(shè)計.docx_第4頁
微波通信技術(shù)課程設(shè)計報告-Smith圓圖的軟件設(shè)計.docx_第5頁
免費預(yù)覽已結(jié)束,剩余8頁可下載查看

下載本文檔

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

文檔簡介

微波實驗課設(shè)姓 名:_ _ _ _王 韜_ _ _ _班 級:_通信0803班_ _學(xué) 號:_ _2008010430_ _微波通信技術(shù)課程設(shè)計報告 -smith圓圖的軟件設(shè)計一、 簡要說明 smith圓圖是phsmith于1939年在貝爾實驗室發(fā)明的,它主要用于計算微波網(wǎng)絡(luò)的阻抗、導(dǎo)納及網(wǎng)絡(luò)阻抗匹配設(shè)計,還可用于設(shè)計微波元器件。smith圓圖軟件不僅適用于微波工程設(shè)計,亦可用于電磁場、微波技術(shù)及天線與電波傳播等課程相關(guān)內(nèi)容的教學(xué),該軟件通過形象的演示可以深刻理解圓圖的應(yīng)用。微波網(wǎng)絡(luò)的正弦穩(wěn)態(tài)分析含有復(fù)數(shù)計算,運算十分繁瑣和耗時。在計算機運算速度和內(nèi)存不夠發(fā)達(dá)以前,圖解分析法得到長足發(fā)展,其中多年來應(yīng)用最廣的是smith 圓圖。在計算微波傳輸線輸入阻抗、導(dǎo)納及阻抗匹配等問題時,它不僅能避開繁瑣的公式及復(fù)數(shù)運算,使工程設(shè)計中相關(guān)計算簡單便捷,而且圖解過程物理概念清晰,所得結(jié)果直觀形象。隨著計算機技術(shù)的飛速發(fā)展,圖解法在計算精度上的固有缺陷日益顯現(xiàn),因為,圓圖的計算精度取決于圓圖中必須有足夠的圓周數(shù),而過多的圓周會導(dǎo)致圖線過于密集,不便將阻抗、反射系數(shù)、電壓駐波系數(shù)(vswr )及電長度等相關(guān)數(shù)據(jù)從圖上直接讀出。通過對圓圖構(gòu)成的基本原理和應(yīng)用問題的分析,利用現(xiàn)代計算機技術(shù)可以解決圓圖計算精度等方面存在的問題,為此設(shè)計的smith圓圖軟件既保留圓圖計算直觀、便捷的大眾性,又滿足工程設(shè)計中相關(guān)參數(shù)的計算精度。在計算機應(yīng)用日益普及的今天,該軟件特別適合電磁場、微波技術(shù)與天線等領(lǐng)域的教學(xué)和工程設(shè)計相關(guān)參數(shù)計算使用。二、 設(shè)計目的通過具體的軟件編程和多媒體制作,進(jìn)一步加深對微波通信技術(shù)的理解和掌握,提高動手能力,提高解決實際問題的綜合能力。三、 設(shè)計要求 計算結(jié)果以圖形和數(shù)據(jù)并行輸出,處理包括復(fù)數(shù)的矩陣運算。為使程序代碼簡單,執(zhí)行運算速度快,計算精度高,選擇matlab 軟件作為設(shè)計技術(shù)平臺較為理想(也可利用vc,vb等)。該軟件數(shù)學(xué)表示、函數(shù)集豐富且功能強大、良好的用戶界面以及許多函數(shù)本身會繪制圖形且自動選取坐標(biāo)刻度等顯著優(yōu)點,特別適用大量計算。利用matlab強大的作圖功能容易畫出完整的smith 圓圖。整個圓圖軟件分為用戶圖形界面模塊、圓圖計算模塊、畫圖演示模塊。上述: 大模塊又進(jìn)一步分解,其中用戶圖形界面模塊分為:主頁、主菜單;圓圖計算模塊分為反射系數(shù)計算、單支節(jié)匹配計算、輸入阻抗計算以及整個smith圓圖;畫圖演示模塊分為等歸一化電阻圓、等歸一化電抗圓、反射系數(shù)圓等;確定阻抗值在圓圖上的位置、圓圖的基本應(yīng)用、求輸入阻抗及其在圓圖上的位置以及單支節(jié)匹配等問題。四、 實驗結(jié)果五、 總結(jié) 這次課設(shè)的題目不簡單,對于我來說,計算機語言學(xué)的不好,vb還只是在高中學(xué)過一些,只會一些簡單的語句,所以只有去找有沒有相關(guān)的資料,然后再研究,把代碼的功能搞清楚,盡力去理解,更改了界面。并且對于微波圓圖也進(jìn)一步加深了印象,對于這種簡單的方法產(chǎn)生了興趣,我認(rèn)為,每一次課設(shè)都能帶給我一些新東西,不論最后得到了多少,也都比過去強一些。學(xué)到了新知識同時還得到了更深的知識,感覺很有意思。極深刻理解了所學(xué)的知識又學(xué)到了新的知識提高不少,希望以后多鍛煉得到更高的提高。附錄: 1源程序(包括調(diào)試程序)private sub command1_click()endend subprivate sub command2_click()if command2.caption = 顯示波節(jié) thencommand2.caption = 顯示波腹picture1.line (500, 2400)-(2500, 2400), rgb(0, 0, 255)elsecommand2.caption = 顯示波節(jié)picture1.line (2500, 2400)-(4500, 2400), rgb(0, 255, 0)end ifend subprivate sub command3_click()picture1.clspicture1.enabled = falsedim z0 as doubledim rr as doubledim rx as doubledim gg as doubledim gb as doubledim rad as doubledim rad1 as doubledim rad2 as doubledim tao as doubledim pi as doublepi = 4 * atn(1)rr = val(text3.text)rx = val(text4.text)z0 = val(text7.text)tao = sqr(rr - z0) 2 + rx 2) / (rr + z0) 2 + rx 2)text1.text = 0 + round(tao, 7)picture1.circle (2500, 2400), tao * 2000, rgb(0, 255, 255)picture1.circle (4500 - 2000 / (rr / z0 + 1), 2400), 2000 / (rr / z0 + 1), rgb(0, 255, 255)if rx 0 then picture1.circle (4500, 2400 - 2000 / rx / z0), 2000 / rx / z0, rgb(0, 255, 255), 3 * pi / 2 - 2 * atn(rx / z0), 3 * pi / 2 end if if rx = 0 and rx = 0 then 1,3 rad1 = rad1 end ifif rad1 = 0 and rx 0 then rad1 = rad1 + piend ifif rad1 = 0 then 2,4 rad1 = pi + rad1 end ifif rad1 0 and rx 2 * pi thenrad = rad - 2 * piend iftext2.text = round(rad, 7)gg = rr / (rr 2 + rx 2)gb = -rx / (rr 2 + rx 2)text5.text = round(gg, 7)text6.text = round(gb, 7)end subprivate sub command4_click()if command4.caption = 設(shè)定特征阻抗 thencommand4.caption = 取消阻抗設(shè)定text7.visible = truelabel12.visible = truelabel9.visible = trueelsecommand4.caption = 設(shè)定特征阻抗text7.text = 1text7.visible = falselabel9.visible = falselabel12.visible = falseend ifend subprivate sub command5_click()picture1.enabled = falsepicture1.clsdim z0 as doubledim rr as doubledim rx as doubledim gg as doubledim gb as doubledim rad as doubledim rad1 as doubledim rad2 as doubledim tao as doubledim pi as doublegg = round(text5.text, 7)gb = round(text6.text, 7)pi = 4 * atn(1)z0 = val(text7.text)rr = gg / (gg 2 + gb 2)rx = -gb / (gg 2 + gb 2)tao = sqr(rr - z0) 2 + rx 2) / (rr + z0) 2 + rx 2)text1.text = 0 + round(tao, 7)picture1.circle (2500, 2400), tao * 2000, rgb(0, 255, 255)picture1.circle (4500 - 2000 / (rr / z0 + 1), 2400), 2000 / (rr / z0 + 1), rgb(0, 255, 255)if rx 0 then picture1.circle (4500, 2400 - 2000 / rx / z0), 2000 / rx / z0, rgb(0, 255, 255), 3 * pi / 2 - 2 * atn(rx / z0), 3 * pi / 2end ifif rx = 0 and rx = 0 then 1,3 rad1 = rad1 end ifif rad1 = 0 and rx 0 then rad1 = rad1 + piend ifif rad1 = 0 then 2,4 rad1 = pi + rad1 end ifif rad1 0 and rx 2 * pi thenrad = rad - 2 * piend iftext2.text = round(rad, 7)text8.text = round(1 - tao) / (1 + tao), 7)text9.text = round(1 + tao) / (1 - tao), 7)end subprivate sub command6_click()picture1.enabled = truepicture1.clsend subprivate sub command7_click()form2.showend subprivate sub drive1_change()end subprivate sub command8_click()form3.showend subprivate sub form_mousemove(button as integer, shift as integer, x as single, y as single)dim pi as doublepi = 4 * atn(1)dim a as doublepicture1.circle (2500, 2400), 2000, rgb(0, 0, 128)a = 20picture1.circle (2500, 2400), a, rgb(0, 0, 128)a = 500picture1.circle (2500, 2400), a, rgb(0, 0, 128)a = 1200picture1.circle (2500, 2400), a, rgb(0, 0, 128)a = 300picture1.circle (4500 - a, 2400), a, rgb(0, 0, 128)a = 700picture1.circle (4500 - a, 2400), a, rgb(0, 0, 128)a = 1300picture1.circle (4500 - a, 2400), a, rgb(0, 0, 128)a = 1800picture1.circle (4500 - a, 2400), a, rgb(0, 0, 128)a = 500picture1.circle (4500, 2400 - a), a, rgb(0, 0, 128), 3 * pi / 2 - 2 * atn(2000 / a), 3 * pi / 2a = 1200picture1.circle (4500, 2400 - a), a, rgb(0, 0, 128), 3 * pi / 2 - 2 * atn(2000 / a), 3 * pi / 2a = 3500picture1.circle (4500, 2400 - a), a, rgb(0, 0, 128), 3 * pi / 2 - 2 * atn(2000 / a), 3 * pi / 2a = 9000picture1.circle (4500, 2400 - a), a, rgb(0, 0, 128), 3 * pi / 2 - 2 * atn(2000 / a), 3 * pi / 2a = -500picture1.circle (4500, 2400 - a), -a, rgb(0, 0, 128), pi / 2, pi / 2 - 2 * atn(2000 / a)a = -1200picture1.circle (4500, 2400 - a), -a, rgb(0, 0, 128), pi / 2, pi / 2 - 2 * atn(2000 / a)a = -3500picture1.circle (4500, 2400 - a), -a, rgb(0, 0, 128), pi / 2, pi / 2 - 2 * atn(2000 / a)a = -9000picture1.circle (4500, 2400 - a), -a, rgb(0, 0, 128), pi / 2, pi / 2 - 2 * atn(2000 / a)end subprivate sub picture1_click()picture1.enabled = falseend subprivate sub picture1_mousemove(button as integer, shift as integer, x as single, y as single)dim a as doubledim z0 as doubledim xx as doubledim yy as doubledim pi as doublepi = 4 * atn(1)dim tao as doubledim taou as doubledim taov as doubledim rad as doubledim rr as doubledim rx as doubledim gg as doubledim gb as doubledim mid1 as doubledim mid2 as doublez0 = val(text7.text)xx = cdbl(x)yy = cdbl(y)picture1.clspicture1.circle (2500, 2400), 2000, rgb(0, 0, 128)a = 20picture1.circle (2500, 2400), a, rgb(0, 0, 128)a = 500picture1.circle (2500, 2400), a, rgb(0, 0, 128)a = 1200picture1.circle (2500, 2400), a, rgb(0, 0, 128)a = 300picture1.circle (4500 - a, 2400), a, rgb(0, 0, 128)a = 700picture1.circle (4500 - a, 2400), a, rgb(0, 0, 128)a = 1300picture1.circle (4500 - a, 2400), a, rgb(0, 0, 128)a = 1800picture1.circle (4500 - a, 2400), a, rgb(0, 0, 128)a = 500picture1.circle (4500, 2400 - a), a, rgb(0, 0, 128), 3 * pi / 2 - 2 * atn(2000 / a), 3 * pi / 2a = 1200picture1.circle (4500, 2400 - a), a, rgb(0, 0, 128), 3 * pi / 2 - 2 * atn(2000 / a), 3 * pi / 2a = 3500picture1.circle (4500, 2400 - a), a, rgb(0, 0, 128), 3 * pi / 2 - 2 * atn(2000 / a), 3 * pi / 2a = 9000picture1.circle (4500, 2400 - a), a, rgb(0, 0, 128), 3 * pi / 2 - 2 * atn(2000 / a), 3 * pi / 2a = -500picture1.circle (4500, 2400 - a), -a, rgb(0, 0, 128), pi / 2, pi / 2 - 2 * atn(2000 / a)a = -1200picture1.circle (4500, 2400 - a), -a, rgb(0, 0, 128), pi / 2, pi / 2 - 2 * atn(2000 / a)a = -3500picture1.circle (4500, 2400 - a), -a, rgb(0, 0, 128), pi / 2, pi / 2 - 2 * atn(2000 / a)a = -9000picture1.circle (4500, 2400 - a), -a, rgb(0, 0, 128), pi / 2, pi / 2 - 2 * atn(2000 / a)mid1 = sqr(xx - 2500) 2 + (yy - 2400) 2)if mid1 = 2000 then 查找功能實現(xiàn)tao = mid1 / 2000text1.text = 0 + round(tao, 7) 反射系數(shù)計算picture1.circle (2500, 2400), 2000 * tao, rgb(255, 0, 0)if xx 2500 then rad = atn(2400 - yy) / (xx - 2500) else rad = pi * (2400 - yy) / abs(yy - 2400) / 2end ifif xx = 2500 and yy 2400 then rad = radend ifif xx = 2500 and yy 2400 thenrad = rad + 2 * piend ifif rad = 0 thenrad = rad + 2 * piend iftext2.text = round(rad, 7)taou = tao * cos(rad)taov = tao * sin

溫馨提示

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

評論

0/150

提交評論