home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / ant / antdesgn / horn.bas < prev    next >
BASIC Source File  |  1979-12-31  |  8KB  |  300 lines

  1. 10 REM RECTANGULAR HORN ANTENNA PROGRAM
  2. 20 REM "ANTENNA DESIGN USING PERSONAL COMPUTERS"
  3. 30 DIM A(12),B(12),C(12),D(12),F(91)
  4. 40 DATA 1.59577,3.3E-8,0,.199471,-1.702E-6,4.25539,-.0249339,2.3E-8,-6.80856
  5. 50 DATA -9.281E-5,3.936E-6,-9.35134E-3,-5.76361E-4,-7.78002,5.77096E-3
  6. 60 DATA 2.3006E-5,6.92069,-9.52089E-3,6.89892E-4,4.85146E-3,-.0168986
  7. 70 DATA 5.07516,-9.49714E-3,1.90322E-3,-3.05048,-.138342,.0119488,-.0171229
  8. 80 DATA -.0757524,-1.36373,-6.74887E-3,.029064,.850664,-.403349,2.4642E-4
  9. 90 DATA -.0279289,-.025639,.702222,2.10297E-3,.0164973,-.150231,-.216196
  10. 100 DATA -1.2173E-3,-5.59852E-3,.0344048,.019547,2.33939E-4,8.38386E-4
  11. 110 GOSUB 1180
  12. 120 PI=3.141593
  13. 130 ROD=PI/180
  14. 140 DEF FNLOG10(X)=.4343*LOG(X)
  15. 150 KEY OFF
  16. 160 SCREEN 0,1
  17. 170 CLS
  18. 180 COLOR 1,0
  19. 190 PRINT "RECTANGULAR HORN ANTENNA GAIN AND PATTERNS"
  20. 200 COLOR 4,0
  21. 210 PRINT
  22. 220 PRINT "SELECT OPTION:"
  23. 230 PRINT "               1- E-PLANE SECTORAL HORN ANALYSIS"
  24. 240 PRINT "               2- H-PLANE SECTORAL HORN ANALYSIS"
  25. 250 PRINT "               3- PYRAMIDAL HORN ANALYSIS"
  26. 260 PRINT "               4- PYRAMIDAL HORN DESIGN"
  27. 270 PRINT "               5- EXIT"
  28. 280 INPUT IOP
  29. 290 IF IOP<1 OR IOP>5 THEN GOTO 210
  30. 300 IF IOP=5 THEN GOTO 2960
  31. 310 CLS
  32. 320 COLOR 14,0
  33. 330 IF IOP=4 THEN GOTO 2600
  34. 340 IF IOP=1 THEN PRINT "E-PLANE SECTORAL HORN ANALYSIS"
  35. 350 IF IOP=2 THEN PRINT "H-PLANE SECTORAL HORN ANALYSIS"
  36. 360 IF IOP=3 THEN PRINT "PYRAMIDAL HORN ANALYSIS"
  37. 370 PRINT
  38. 380 COLOR 4,0
  39. 390 INPUT "WHAT IS THE FREQUENCY(MHz)";FMC
  40. 400 INPUT "WHAT IS THE E-PLANE APERTURE DIMENSION(meters)";AE
  41. 410 INPUT "WHAT IS THE H-PLANE APERTURE DIMENSION(meters)";AH
  42. 420 INPUT "WHAT IS THE HORN LENGTH (TO APEX)(meters)";R
  43. 430 COLOR 14,0
  44. 440 PRINT
  45. 450 WL=300/FMC
  46. 460 AEOL=AE/WL
  47. 470 AHOL=AH/WL
  48. 480 IF IOP=1 OR IOP=3 THEN GOSUB 1530
  49. 490 IF IOP=2 OR IOP=3 THEN GOSUB 1620
  50. 500 AEOP=SQR(2*WL*R)
  51. 510 AHOP=SQR(3*WL*R)
  52. 520 IF IOP=1 THEN PRINT USING "THE OPTIMUM E-PLANE DIMENSION IS #.### m";AEOP
  53. 530 IF IOP=2 THEN PRINT USING "THE OPTIMUM H-PLANE DIMENSION IS #.### m";AHOP
  54. 540 IF IOP=1 THEN DR=DE
  55. 550 IF IOP=2 THEN DR=DH
  56. 560 IF IOP=3 THEN DR=PI*WL*WL*DE*DH/(32*AE*AH)
  57. 570 DDB=10*FNLOG10(DR)
  58. 580 PRINT USING "THE DIRECTIVITY IS ###.# OR ##.# dB";DR,DDB
  59. 590 PRINT
  60. 600 COLOR 4,0
  61. 610 INPUT "PLOT PATTERNS(Y,N)";IS$
  62. 620 IF IS$="N" THEN GOTO 160
  63. 630 INPUT "E-PLANE(E), OR H-PLANE(H)";POP$
  64. 640 IF POP$="E" THEN GOTO 670
  65. 650 IF POP$="H" THEN GOTO 670
  66. 660 GOTO 630
  67. 670 IF IOP=1 AND POP$="E" THEN GOSUB 1790
  68. 680 IF IOP=1 AND POP$="H" THEN GOSUB 1990
  69. 690 IF IOP=2 AND POP$="E" THEN GOSUB 2110
  70. 700 IF IOP=2 AND POP$="H" THEN GOSUB 2200
  71. 710 IF IOP=3 AND POP$="E" THEN GOSUB 1790
  72. 720 IF IOP=3 AND POP$="H" THEN GOSUB 2200
  73. 730 SCREEN 0,1
  74. 740 CLS
  75. 750 REM CONVERT FIELD TO DB
  76. 760 FOR I=0 TO 90
  77. 770 IF F(I)<.0316 THEN F(I)=.0316
  78. 780 F(I)=20*FNLOG10(F(I))
  79. 790 NEXT I
  80. 800 REM COMPUTE BEAMWIDTH
  81. 810 TH=0
  82. 820 TH=TH+1
  83. 830 IF F(TH)>-3 THEN GOTO 820
  84. 840 TH0=(-3-F(TH-1)+(TH-1)*(F(TH)-F(TH-1)))/(F(TH)-F(TH-1))
  85. 850 BW=2*TH0
  86. 860 SCREEN 2,0
  87. 870 VIEW (262,9)-(638,187)
  88. 880 WINDOW (-2,-35)-(92,2)
  89. 890 FOR J=0 TO 90 STEP 10
  90. 900 LINE (J,-30)-(J,-30.6)
  91. 910 NEXT J
  92. 920 LINE (90,-30)-(0,-30)
  93. 930 FOR J=0 TO -30 STEP -1
  94. 940 PSET (-1,J)
  95. 950 IF INT(J/10)=J/10 THEN PSET (-2,J)
  96. 960 LINE -(0,J)
  97. 970 NEXT J
  98. 980 LINE (0,0)-(0,-30)
  99. 990 LOCATE 23,55
  100. 1000 PRINT "THETA"
  101. 1010 FOR I=0 TO 3
  102. 1020 LOCATE 3+6*I,30
  103. 1030 PRINT USING "###";-10*I
  104. 1040 NEXT I
  105. 1050 LOCATE 12,29: PRINT "dB"
  106. 1060 LOCATE 22,35
  107. 1070 PRINT "0   10   20   30   40   50   60   70   80   90"
  108. 1080 LOCATE 1,1
  109. 1090 IF POP$="E" THEN PRINT "E-PLANE"
  110. 1100 IF POP$="H" THEN PRINT "H-PLANE"
  111. 1110 PSET (0,0)
  112. 1120 FOR I=0 TO 90
  113. 1130 LINE -(I,F(I))
  114. 1140 NEXT I
  115. 1150 LOCATE 2,1
  116. 1160 PRINT USING "BEAMWIDTH=###.# deg.";BW
  117. 1170 GOTO 610
  118. 1180 REM SUBROUTINE FOR FRESNEL INTEGRALS
  119. 1190 REM INPUT XI, OUTPUT CX,SX
  120. 1200 FOR I=1 TO 12
  121. 1210 READ A(I),B(I),C(I),D(I)
  122. 1220 NEXT I
  123. 1230 RETURN
  124. 1240 REM ENTER HERE AFTER FIRST CALL TO READ IN DATA
  125. 1250 X=ABS(XI)
  126. 1260 X=PI*X*X/2
  127. 1270 FR=0
  128. 1280 FI=0
  129. 1290 K=13
  130. 1300 IF X>=4 THEN GOTO 1410
  131. 1310 Y=X/4
  132. 1320 K=K-1
  133. 1330 FR=(FR+A(K))*Y
  134. 1340 FI=(FI+B(K))*Y
  135. 1350 IF K>2 THEN GOTO 1320
  136. 1360 FR=FR+A(1)
  137. 1370 FI=FI+B(1)
  138. 1380 CX=(FR*COS(X)+FI*SIN(X))*SQR(Y)
  139. 1390 SX=(FR*SIN(X)-FI*COS(X))*SQR(Y)
  140. 1400 GOTO 1500
  141. 1410 Y=4/X
  142. 1420 K=K-1
  143. 1430 FR=(FR+C(K))*Y
  144. 1440 FI=(FI+D(K))*Y
  145. 1450 IF K>2 THEN GOTO 1420
  146. 1460 FR=FR+CC(1)
  147. 1470 FI=FI+D(1)
  148. 1480 CX=.5+(FR*COS(X)+FI*SIN(X))*SQR(Y)
  149. 1490 SX=.5+(FR*SIN(X)-FI*COS(X))*SQR(Y)
  150. 1500 IF XI<0 THEN CX=-CX
  151. 1510 IF XI<0 THEN SX=-SX
  152. 1520 RETURN
  153. 1530 REM PHASE ERROR AND GAIN FOR E-PLANE HORN
  154. 1540 SE=AE*AE/(8*WL*R)
  155. 1550 PE=SE*360
  156. 1560 Q=AE/SQR(2*WL*R)
  157. 1570 XI=Q
  158. 1580 GOSUB 1240
  159. 1590 DE=32*AH*AE*(CX*CX+SX*SX)/(PI*WL*WL*Q)
  160. 1600 PRINT USING "THE MAX. E-PLANE PHASE ERROR IS ###.# degrees";PE
  161. 1610 RETURN
  162. 1620 REM PHASE ERROR AND GAIN FOR H-PLANE HORN
  163. 1630 SH=AH*AH/(8*WL*R)
  164. 1640 PE=SH*360
  165. 1650 C1=SQR(R/WL)
  166. 1660 C2=AH/WL
  167. 1670 P1=.707*(C1/C2+C2/C1)
  168. 1680 P2=.707*(C1/C2-C2/C1)
  169. 1690 XI=P1
  170. 1700 GOSUB 1240
  171. 1710 C1=CX
  172. 1720 S1=SX
  173. 1730 XI=P2
  174. 1740 GOSUB 1240
  175. 1750 DH=(C1-CX)^2+(S1-SX)^2
  176. 1760 DH=DH*4*PI*AE*R/(WL*AH)
  177. 1770 PRINT USING "THE MAX. H-PLANE PHASE ERROR IS ###.# degrees";PE
  178. 1780 RETURN
  179. 1790 REM E-PLANE HORN, E-PLANE PATTERN
  180. 1800 S2S=2*SQR(SE)
  181. 1810 FOR I=0 TO 90
  182. 1820 TH=I*ROD
  183. 1830 STH=SIN(TH)
  184. 1840 C1=AEOL*STH/(4*SE)
  185. 1850 R3=S2S*(-1-C1)
  186. 1860 R4=S2S*(1-C1)
  187. 1870 XI=R3
  188. 1880 GOSUB 1240
  189. 1890 C1=CX
  190. 1900 S1=SX
  191. 1910 XI=R4
  192. 1920 GOSUB 1240
  193. 1930 FT=(CX-C1)^2+(SX-S1)^2
  194. 1940 XI=S2S
  195. 1950 GOSUB 1240
  196. 1960 F(I)=.25*(1+COS(TH))*SQR(FT/(CX*CX+SX*SX))
  197. 1970 NEXT I
  198. 1980 RETURN
  199. 1990 REM E-PLANE HORN, H-PLANE PATTERN
  200. 2000 C1=PI*AHOL
  201. 2010 C2=2*AHOL
  202. 2020 FOR I=0 TO 90
  203. 2030 TH=I*ROD
  204. 2040 STH=SIN(TH)
  205. 2050 DEN=1-(C2*STH)^2
  206. 2060 IF ABS(DEN)<.01 THEN FT=PI/4
  207. 2070 IF ABS(DEN)>=.01 THEN FT=COS(C1*STH)/DEN
  208. 2080 F(I)=.5*(1+COS(TH))*FT
  209. 2090 NEXT I
  210. 2100 RETURN
  211. 2110 REM H-PLANE HORN, E-PLANE PATTERN
  212. 2120 C1=AEOL*PI
  213. 2130 F(0)=1
  214. 2140 FOR I=1 TO 90
  215. 2150 TH=I*ROD
  216. 2160 STH=SIN(TH)
  217. 2170 F(I)=.5*(1+COS(TH))*SIN(C1*STH)/(C1*STH)
  218. 2180 NEXT I
  219. 2190 RETURN
  220. 2200 REM H-PLANE HORN, H-PLANE PATTERN
  221. 2210 S2S=2*SQR(SH)
  222. 2220 PO8T=PI/(8*SH)
  223. 2230 I0=1
  224. 2240 FOR I=0 TO 90
  225. 2250 TH=I*ROD
  226. 2260 STH=SIN(TH)
  227. 2270 C1=PO8T*(AHOL*STH+.5)^2
  228. 2280 ER1=COS(C1)
  229. 2290 EI1=SIN(C1)
  230. 2300 C1=PO8T*(AHOL*STH-.5)^2
  231. 2310 ER2=COS(C1)
  232. 2320 EI2=SIN(C1)
  233. 2330 C1=AHOL*STH/(4*SH)
  234. 2340 S1=S2S*(-1-C1-.125/SH)
  235. 2350 S2=S2S*(1-C1-.125/SH)
  236. 2360 T1=S2S*(-1-C1+.125/SH)
  237. 2370 T2=S2S*(1-C1+.125/SH)
  238. 2380 XI=S1
  239. 2390 GOSUB 1240
  240. 2400 C1=CX
  241. 2410 S1=SX
  242. 2420 XI=S2
  243. 2430 GOSUB 1240
  244. 2440 C2=CX
  245. 2450 S2=SX
  246. 2460 XI=T1
  247. 2470 GOSUB 1240
  248. 2480 C3=CX
  249. 2490 S3=SX
  250. 2500 XI=T2
  251. 2510 GOSUB 1240
  252. 2520 IR=ER1*(C2-C1)+EI1*(S2-S1)+ER2*(CX-C3)+EI2*(SX-S3)
  253. 2530 II=ER1*(S1-S2)+EI1*(C2-C1)+ER2*(S3-SX)+EI2*(CX-C3)
  254. 2540 IFF=SQR(IR*IR+II*II)
  255. 2550 F(I)=.5*(1+COS(TH))*IFF/I0
  256. 2560 IF I=0 THEN I0=IFF
  257. 2570 NEXT I
  258. 2580 F(0)=1
  259. 2590 RETURN
  260. 2600 REM PYRAMIDAL HORN DESIGN
  261. 2610 PRINT "OPTIMUM HORN DESIGN"
  262. 2620 PRINT
  263. 2630 COLOR 4,0
  264. 2640 INPUT "WHAT IS THE DESIRED GAIN(dB)";GDB
  265. 2650 G=10^(GDB/10)
  266. 2660 INPUT "WHAT IS THE FREQUENCY(MHz)";FMC
  267. 2670 INPUT "WHAT IS THE H-PLANE WAVEGUIDE DIMENSION(meters)";AW
  268. 2680 INPUT "WHAT IS THE E-PLANE WAVEGUIDE DIMENSION(meters)";BW
  269. 2690 COLOR 14,0
  270. 2700 REM SOLVE FOR SIG
  271. 2710 WL=300/FMC
  272. 2720 SIG=(G/15.4)/1.3
  273. 2730 DSIG=SIG/100
  274. 2740 FTO=0
  275. 2750 FT=(G/(8.885801*SQR(SIG))-AW/WL)^2*(G*G/(177.65*SIG)-1)
  276. 2760 FT=FT-(2*SIG-1)*(SQR(2*SIG)-BW/WL)^2
  277. 2770 IF FT*FTO<0 THEN GOTO 2820
  278. 2780 SIG=SIG+DSIG
  279. 2790 IF SIG>G/7 THEN GOTO 2950
  280. 2800 FTO=FT
  281. 2810 GOTO 2750
  282. 2820 SIG=SIG-DSIG/2
  283. 2830 AE=SQR(2*SIG)*WL
  284. 2840 AH=G*WL*WL/(2*PI*AE)
  285. 2850 R=(AE-BW)*SQR((SIG*WL/AE)^2-.25)
  286. 2860 PRINT
  287. 2870 PRINT USING "E-PLANE APERTURE DIMENSION=##.### meters";AE
  288. 2880 PRINT USING "H-PLANE APERTURE DIMENSION=##.### meters";AH
  289. 2890 PRINT USING "RADIUS TO APEX=##.### meters";R
  290. 2900 PRINT
  291. 2910 COLOR 4,0
  292. 2920 INPUT "CONTINUE(Y,N)";POP$
  293. 2930 IF POP$="N" THEN GOTO 2960
  294. 2940 GOTO 160
  295. 2950 PRINT "ERROR IN FINDING SIG ROOT."
  296. 2960 SCREEN 0,1
  297. 2970 COLOR 7,0
  298. 2980 KEY ON
  299. 2990 END
  300.