微波通信技术课程设计报告Smith圆图的软件设计.docx
- 文档编号:15610633
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:48
- 大小:543.05KB
微波通信技术课程设计报告Smith圆图的软件设计.docx
《微波通信技术课程设计报告Smith圆图的软件设计.docx》由会员分享,可在线阅读,更多相关《微波通信技术课程设计报告Smith圆图的软件设计.docx(48页珍藏版)》请在冰点文库上搜索。
微波通信技术课程设计报告Smith圆图的软件设计
微波实验课设
姓名:
______王韬_______
班级:
_________通信0803班_________
学号:
________2008010430_________
微波通信技术课程设计报告
---Smith圆图的软件设计
一、简要说明
Smith圆图是P.H.Smith于1939年在贝尔实验室发明的,它主要用于计算微波网络的阻抗、导纳及网络阻抗匹配设计,还可用于设计微波元器件。
Smith圆图软件不仅适用于微波工程设计,亦可用于电磁场、微波技术及天线与电波传播等课程相关内容的教学,该软件通过形象的演示可以深刻理解圆图的应用。
微波网络的正弦稳态分析含有复数计算,运算十分繁琐和耗时。
在计算机运算速度和内存不够发达以前,图解分析法得到长足发展,其中多年来应用最广的是Smith圆图。
在计算微波传输线输入阻抗、导纳及阻抗匹配等问题时,它不仅能避开繁琐的公式及复数运算,使工程设计中相关计算简单便捷,而且图解过程物理概念清晰,所得结果直观形象。
随着计算机技术的飞速发展,图解法在计算精度上的固有缺陷日益显现,因为,圆图的计算精度取决于圆图中必须有足够的圆周数,而过多的圆周会导致图线过于密集,不便将阻抗、反射系数、电压驻波系数(VSWR)及电长度等相关数据从图上直接读出。
通过对圆图构成的基本原理和应用问题的分析,利用现代计算机技术可以解决圆图计算精度等方面存在的问题,为此设计的Smith圆图软件既保留圆图计算直观、便捷的大众性,又满足工程设计中相关参数的计算精度。
在计算机应用日益普及的今天,该软件特别适合电磁场、微波技术与天线等领域的教学和工程设计相关参数计算使用。
二、设计目的
通过具体的软件编程和多媒体制作,进一步加深对微波通信技术的理解和掌握,提高动手能力,提高解决实际问题的综合能力。
三、设计要求
计算结果以图形和数据并行输出,处理包括复数的矩阵运算。
为使程序代码简单,执行运算速度快,计算精度高,选择MATLAB软件作为设计技术平台较为理想(也可利用VC,VB等)。
该软件数学表示、函数集丰富且功能强大、良好的用户界面以及许多函数本身会绘制图形且自动选取坐标刻度等显著优点,特别适用大量计算。
利用MATLAB强大的作图功能容易画出完整的Smith圆图。
整个圆图软件分为用户图形界面模块、圆图计算模块、画图演示模块。
上述:
大模块又进一步分解,其中用户图形界面模块分为:
主页、主菜单;圆图计算模块分为反射系数计算、单支节匹配计算、输入阻抗计算以及整个Smith圆图;画图演示模块分为等归一化电阻圆、等归一化电抗圆、反射系数圆等;确定阻抗值在圆图上的位置、圆图的基本应用、求输入阻抗及其在圆图上的位置以及单支节匹配等问题。
四、实验结果
五、总结
这次课设的题目不简单,对于我来说,计算机语言学的不好,VB还只是在高中学过一些,只会一些简单的语句,所以只有去找有没有相关的资料,然后再研究,把代码的功能搞清楚,尽力去理解,更改了界面。
并且对于微波圆图也进一步加深了印象,对于这种简单的方法产生了兴趣,我认为,每一次课设都能带给我一些新东西,不论最后得到了多少,也都比过去强一些。
学到了新知识同时还得到了更深的知识,感觉很有意思。
极深刻理解了所学的知识又学到了新的知识提高不少,希望以后多锻炼得到更高的提高。
附录:
1.源程序(包括调试程序)
PrivateSubCommand1_Click()
End
EndSub
PrivateSubCommand2_Click()
IfCommand2.Caption="显示波节"Then
Command2.Caption="显示波腹"
Picture1.Line(500,2400)-(2500,2400),RGB(0,0,255)
Else
Command2.Caption="显示波节"
Picture1.Line(2500,2400)-(4500,2400),RGB(0,255,0)
EndIf
EndSub
PrivateSubCommand3_Click()
Picture1.Cls
Picture1.Enabled=False
Dimz0AsDouble
DimrrAsDouble
DimrxAsDouble
DimggAsDouble
DimgbAsDouble
DimradAsDouble
Dimrad1AsDouble
Dimrad2AsDouble
DimtaoAsDouble
DimpiAsDouble
pi=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)
Ifrx>0Then
Picture1.Circle(4500,2400-2000/rx/z0),2000/rx/z0,RGB(0,255,255),3*pi/2-2*Atn(rx/z0),3*pi/2
EndIf
Ifrx<0Then
Picture1.Circle(4500,2400-2000/rx/z0),-2000/rx/z0,RGB(0,255,255),pi/2,pi/2-2*Atn(rx/z0)
Else
Picture1.Line(500,2400)-(4500,2400),RGB(255,255,0)
EndIf
rad1=Atn(rx/(rr-1))
rad2=Atn(rx/(rr+1))
Ifrad1>=0Andrx>=0Then'1,3
rad1=rad1
EndIf
Ifrad1>=0Andrx<0Then
rad1=rad1+pi
EndIf
Ifrad1<0Andrx>=0Then'2,4
rad1=pi+rad1
EndIf
Ifrad1<0Andrx<0Then
rad1=rad1+2*pi
EndIf
rad=rad1-rad2
Ifrad>2*piThen
rad=rad-2*pi
EndIf
Text2.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)
EndSub
PrivateSubCommand4_Click()
IfCommand4.Caption="设定特征阻抗"Then
Command4.Caption="取消阻抗设定"
Text7.Visible=True
Label12.Visible=True
Label9.Visible=True
Else
Command4.Caption="设定特征阻抗"
Text7.Text="1"
Text7.Visible=False
Label9.Visible=False
Label12.Visible=False
EndIf
EndSub
PrivateSubCommand5_Click()
Picture1.Enabled=False
Picture1.Cls
Dimz0AsDouble
DimrrAsDouble
DimrxAsDouble
DimggAsDouble
DimgbAsDouble
DimradAsDouble
Dimrad1AsDouble
Dimrad2AsDouble
DimtaoAsDouble
DimpiAsDouble
gg=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)
Ifrx>0Then
Picture1.Circle(4500,2400-2000/rx/z0),2000/rx/z0,RGB(0,255,255),3*pi/2-2*Atn(rx/z0),3*pi/2
EndIf
Ifrx<0Then
Picture1.Circle(4500,2400-2000/rx/z0),-2000/rx/z0,RGB(0,255,255),pi/2,pi/2-2*Atn(rx/z0)
Else
Picture1.Line(500,2400)-(4500,2400),RGB(255,0,0)
EndIf
rad1=Atn(rx/(rr-1))
rad2=Atn(rx/(rr+1))
Ifrad1>=0Andrx>=0Then'1,3
rad1=rad1
EndIf
Ifrad1>=0Andrx<0Then
rad1=rad1+pi
EndIf
Ifrad1<0Andrx>=0Then'2,4
rad1=pi+rad1
EndIf
Ifrad1<0Andrx<0Then
rad1=rad1+2*pi
EndIf
rad=rad1-rad2
Ifrad>2*piThen
rad=rad-2*pi
EndIf
Text2.Text=Round(rad,7)
Text8.Text=Round((1-tao)/(1+tao),7)
Text9.Text=Round((1+tao)/(1-tao),7)
EndSub
PrivateSubCommand6_Click()
Picture1.Enabled=True
Picture1.Cls
EndSub
PrivateSubCommand7_Click()
Form2.Show
EndSub
PrivateSubDrive1_Change()
EndSub
PrivateSubCommand8_Click()
Form3.Show
EndSub
PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
DimpiAsDouble
pi=4*Atn
(1)
DimaAsDouble
Picture1.Circle(2500,2400),2000,RGB(0,0,128)
a=20
Picture1.Circle(2500,2400),a,RGB(0,0,128)
a=500
Picture1.Circle(2500,2400),a,RGB(0,0,128)
a=1200
Picture1.Circle(2500,2400),a,RGB(0,0,128)
a=300
Picture1.Circle(4500-a,2400),a,RGB(0,0,128)
a=700
Picture1.Circle(4500-a,2400),a,RGB(0,0,128)
a=1300
Picture1.Circle(4500-a,2400),a,RGB(0,0,128)
a=1800
Picture1.Circle(4500-a,2400),a,RGB(0,0,128)
a=500
Picture1.Circle(4500,2400-a),a,RGB(0,0,128),3*pi/2-2*Atn(2000/a),3*pi/2
a=1200
Picture1.Circle(4500,2400-a),a,RGB(0,0,128),3*pi/2-2*Atn(2000/a),3*pi/2
a=3500
Picture1.Circle(4500,2400-a),a,RGB(0,0,128),3*pi/2-2*Atn(2000/a),3*pi/2
a=9000
Picture1.Circle(4500,2400-a),a,RGB(0,0,128),3*pi/2-2*Atn(2000/a),3*pi/2
a=-500
Picture1.Circle(4500,2400-a),-a,RGB(0,0,128),pi/2,pi/2-2*Atn(2000/a)
a=-1200
Picture1.Circle(4500,2400-a),-a,RGB(0,0,128),pi/2,pi/2-2*Atn(2000/a)
a=-3500
Picture1.Circle(4500,2400-a),-a,RGB(0,0,128),pi/2,pi/2-2*Atn(2000/a)
a=-9000
Picture1.Circle(4500,2400-a),-a,RGB(0,0,128),pi/2,pi/2-2*Atn(2000/a)
EndSub
PrivateSubPicture1_Click()
Picture1.Enabled=False
EndSub
PrivateSubPicture1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
DimaAsDouble
Dimz0AsDouble
DimxxAsDouble
DimyyAsDouble
DimpiAsDouble
pi=4*Atn
(1)
DimtaoAsDouble
DimtaouAsDouble
DimtaovAsDouble
DimradAsDouble
DimrrAsDouble
DimrxAsDouble
DimggAsDouble
DimgbAsDouble
Dimmid1AsDouble
Dimmid2AsDouble
z0=Val(Text7.Text)
xx=CDbl(X)
yy=CDbl(Y)
Picture1.Cls
Picture1.Circle(2500,2400),2000,RGB(0,0,128)
a=20
Picture1.Circle(2500,2400),a,RGB(0,0,128)
a=500
Picture1.Circle(2500,2400),a,RGB(0,0,128)
a=1200
Picture1.Circle(2500,2400),a,RGB(0,0,128)
a=300
Picture1.Circle(4500-a,2400),a,RGB(0,0,128)
a=700
Picture1.Circle(4500-a,2400),a,RGB(0,0,128)
a=1300
Picture1.Circle(4500-a,2400),a,RGB(0,0,128)
a=1800
Picture1.Circle(4500-a,2400),a,RGB(0,0,128)
a=500
Picture1.Circle(4500,2400-a),a,RGB(0,0,128),3*pi/2-2*Atn(2000/a),3*pi/2
a=1200
Picture1.Circle(4500,2400-a),a,RGB(0,0,128),3*pi/2-2*Atn(2000/a),3*pi/2
a=3500
Picture1.Circle(4500,2400-a),a,RGB(0,0,128),3*pi/2-2*Atn(2000/a),3*pi/2
a=9000
Picture1.Circle(4500,2400-a),a,RGB(0,0,128),3*pi/2-2*Atn(2000/a),3*pi/2
a=-500
Picture1.Circle(4500,2400-a),-a,RGB(0,0,128),pi/2,pi/2-2*Atn(2000/a)
a=-1200
Picture1.Circle(4500,2400-a),-a,RGB(0,0,128),pi/2,pi/2-2*Atn(2000/a)
a=-3500
Picture1.Circle(4500,2400-a),-a,RGB(0,0,128),pi/2,pi/2-2*Atn(2000/a)
a=-9000
Picture1.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)
Ifmid1<=2000Then'查找功能实现
tao=mid1/2000
Text1.Text="0"+Round(tao,7)'反射系数计算
Picture1.Circle(2500,2400),2000*tao,RGB(255,0,0)
Ifxx<>2500Then
rad=Atn((2400-yy)/(xx-2500))
Else
rad=pi*(2400-yy)/Abs(yy-2400)/2
EndIf
Ifxx>=2500Andyy<2400Then
rad=rad
EndIf
Ifxx<=2500Then
rad=pi+rad
EndIf
Ifxx>=2500Andyy>2400Then
rad=rad+2*pi
EndIf
Ifrad<=0Then
rad=rad+2*pi
EndIf
Text2.Text=Round(rad,7)
taou=tao*Cos(rad)
taov=tao*Sin(rad)
rr=(1-taov^2-taou^2)/((1-taou)^2+taov^2)
Text3.Text=Round(rr*z0,7)
Picture1.Circle(4500-2000/(rr+1),2400),2000/(rr+1),RGB(0,255,255)
rx=2*taov/((1-taou)^2+taov^2)
Text4.Text=Round(rx*z0,7)
IfY<>2400Then
Ifrx<>0Then
Ifrx>0Then
Picture1.Circle(4500,2400-2000/rx),2000/rx,RGB(255,0,255),3*pi/2-2*Atn(rx),3*pi/2
Else
Picture1.Circle(4500,2400-2000/rx),-2000/rx,RGB(255,0,255),pi/2,pi/2-2*Atn(rx)
EndIf
EndIf
Else
Picture1.Line(500,2400)-(4500,2400),RGB(100,100,100)
EndIf
rr=rr*z0
rx=rx*z0
gg=rr/(rr^2+rx^2)
gb=-rx/(rr^2+rx^2)
Text5.Text=Round(gg,7)
Text6.Text=Round(gb,7)
Text8.Text=Round((1-tao)/(1+tao),7)
Iftao=1Then
PSet(4500,2400),RG
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微波 通信 技术 课程设计 报告 Smith 软件设计