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

  1. 10 REM TAYLOR ARRAY SYNTHESIS
  2. 20 REM "ANTENNA DESIGN USING PERSONAL COMPUTERS"
  3. 30 DIM IA(50),INR(50),INI(50),WR(50),WI(50)
  4. 40 PI=3.141593
  5. 50 DEF FNLOG10(X)=.4343*LOG(X)
  6. 60 KEY OFF
  7. 70 CLS
  8. 80 SCREEN 0,1
  9. 90 COLOR 1,0
  10. 100 PRINT "THIS PROGRAM COMPUTES THE TAYLOR COEFFICIENTS FOR AN"
  11. 110 PRINT "M-ELEMENT ARRAY, WITH A SPECIFIED SIDELOBE LEVEL"
  12. 120 COLOR 4,0
  13. 130 PRINT
  14. 140 INPUT "HOW MANY ELEMENTS IN THE ARRAY";M
  15. 150 INPUT "WHAT IS THE SPACING BETWEEN ELEMENTS(WAVELENGTHS)";D
  16. 160 INPUT "WHAT IS THE DESIRED SIDELOBE LEVEL(+dB)";RDB
  17. 170 INPUT "WHAT IS THE DESIRED VALUE OF N-BAR(INTEGER FROM 2 TO 6)";NBAR
  18. 180 NBAR=INT(NBAR)
  19. 190 IF NBAR<2 OR NBAR>6 THEN GOTO 170
  20. 200 COLOR 14,0
  21. 210 N=M-1
  22. 220 L=M*D
  23. 230 R=10^(RDB/20)
  24. 240 A=LOG(R+SQR(R*R-1))/PI
  25. 250 SIG=NBAR/SQR(A*A+(NBAR-.5)^2)
  26. 260 REM COMPUTE CURRENTS
  27. 270 REM ......BY APERTURE SAMPLING METHOD
  28. 280 IEVEN=0
  29. 290 IF INT(M/2)=M/2 THEN IEVEN=1
  30. 300 FOR I=1 TO (M+1)/2
  31. 310 ZN=(I-N/2-1)*D
  32. 320 IA(I)=1
  33. 330 FOR P=1 TO NBAR-1
  34. 340 CT=COS(2*PI*P*ZN/L)
  35. 350 REM COMPUTE F FUNCTION
  36. 360 NF=NBAR-1
  37. 370 GOSUB 1740
  38. 380 F=NF*NF
  39. 390 NF=NBAR-1+P
  40. 400 GOSUB 1740
  41. 410 F=F/NF
  42. 420 NF=NBAR-1-P
  43. 430 GOSUB 1740
  44. 440 F=F/NF
  45. 450 FOR MM=1 TO NBAR-1
  46. 460 UM=MM*PI
  47. 470 IF MM<NBAR THEN UM=PI*SIG*SQR(A*A+(MM-.5)^2)
  48. 480 F=F*(1-(PI*P/UM)^2)
  49. 490 NEXT MM
  50. 500 IA(I)=IA(I)+2*F*CT
  51. 510 NEXT P
  52. 520 NEXT I
  53. 530 REM FILL OTHER HALF OF IA
  54. 540 FOR I=1+INT((M+1)/2) TO M
  55. 550 IA(I)=IA(M-I+1)
  56. 560 NEXT I
  57. 570 PRINT
  58. 580 REM .....BY NULL MATCHING METHOD
  59. 590 REM FILL WR,WI WITH COMPLEX ROOTS
  60. 600 FOR MM=1 TO (M+1)/2
  61. 610 UM=MM*PI
  62. 620 IF MM<NBAR THEN UM=PI*SIG*SQR(A*A+(MM-.5)^2)
  63. 630 WR(2*MM-1)=COS(2*UM/M)
  64. 640 WI(2*MM-1)=SIN(2*UM/M)
  65. 650 WR(2*MM)=WR(2*MM-1)
  66. 660 WI(2*MM)=-WI(2*MM-1)
  67. 670 NEXT MM
  68. 680 FOR I=0 TO N+1
  69. 690 INR(I)=0
  70. 700 INI(I)=0
  71. 710 NEXT I
  72. 720 INR(1)=1
  73. 730 FOR P=1 TO N
  74. 740 REM SHIFT DOWN ALL ENTRIES AND TOP WITH 0
  75. 750 FOR I=P+1 TO 1 STEP -1
  76. 760 INR(I)=INR(I-1)
  77. 770 INI(I)=INI(I-1)
  78. 780 NEXT I
  79. 790 REM ADD P-TH ROOT*LOWER VALUE
  80. 800 FOR I=1 TO P+1
  81. 810 SR=WR(P)*INR(I+1)-WI(P)*INI(I+1)
  82. 820 SI=WR(P)*INI(I+1)+WI(P)*INR(I+1)
  83. 830 INR(I)=INR(I)+SR
  84. 840 INI(I)=INI(I)+SI
  85. 850 NEXT I
  86. 860 NEXT P
  87. 870 FOR I=1 TO N
  88. 880 INR(I)=SQR(INR(I)^2+INI(I)^2)
  89. 890 NEXT I
  90. 900 REM NORMALIZE
  91. 910 MM=INT((M+1)/2)
  92. 920 IAM=IA(MM)
  93. 930 INM=INR(MM)
  94. 940 PRINT "           APERTURE           NULL"
  95. 950 PRINT "ELEMENT    SAMPLING  (dB)     MATCHING  (dB)"
  96. 960 FOR I=1 TO M
  97. 970 IAT=IA(I)/IAM
  98. 980 INS=INR(I)/INM
  99. 990 D1=20*FNLOG10(IAT)
  100. 1000 D2=20*FNLOG10(INS)
  101. 1010 PRINT USING "  ##       #.####  ###.##     #.####  ###.##";I,IAT,D1,INS,D2
  102. 1020 NEXT I
  103. 1030 PRINT
  104. 1040 REM COMPUTE BEAMWIDTH
  105. 1050 AC1=LOG(R+SQR(R*R-1))^2
  106. 1060 AC2=LOG(R/1.414+SQR(R*R/2-1))^2
  107. 1070 X=SIG*SQR(AC1-AC2)/(PI*L)
  108. 1080 BW=360*ATN(X/SQR(1-X*X))/PI
  109. 1090 DT=101.5/BW
  110. 1100 DTDB=10*FNLOG10(DT)
  111. 1110 PRINT USING "THE DIRECTIVITY IS ##.## dB";DTDB
  112. 1120 PRINT USING "THE 3-dB BEAMWIDTH IS ###.# degrees";BW
  113. 1130 PRINT
  114. 1140 COLOR 4,0
  115. 1150 INPUT "PLOT PATTERN(Y,N)";IP$
  116. 1160 IF IP$<>"N" THEN GOTO 1200
  117. 1170 INPUT "CONTINUE(Y,N)";IP$
  118. 1180 IF IP$="N" THEN GOTO 1820
  119. 1190 GOTO 70
  120. 1200 SCREEN 0,1
  121. 1210 CLS
  122. 1220 INPUT "USING APERTURE SAMPLING(A) OR NULL MATCHING(N) CURRENTS";IP$
  123. 1230 IF NOT(IP$="A" OR IP$="N") THEN GOTO 1220
  124. 1240 REM PLOT PATTERN
  125. 1250 SCREEN 2,0
  126. 1260 VIEW (262,3)-(638,182)
  127. 1270 WINDOW (-2,-56)-(92,0)
  128. 1280 LOCATE 1,1
  129. 1290 IF IP$="A" THEN PRINT "APERTURE SAMPLING CURRENTS"
  130. 1300 IF IP$="N" THEN PRINT "NULL MATCHING CURRENTS"
  131. 1310 FOR J=0 TO 90 STEP 10
  132. 1320 LINE (J,-50)-(J,-51)
  133. 1330 NEXT J
  134. 1340 LINE (90,-50)-(0,-50)
  135. 1350 FOR J=0 TO -50 STEP -10
  136. 1360 LINE (0,J)-(-2,J)
  137. 1370 NEXT J
  138. 1380 LINE (0,0)-(0,-50)
  139. 1390 LOCATE 23,55
  140. 1400 PRINT "THETA"
  141. 1410 FOR I=0 TO 5
  142. 1420 LOCATE 1+4*I,30
  143. 1430 PRINT USING "###";-10*I
  144. 1440 NEXT I
  145. 1450 LOCATE 11,28: PRINT "dB"
  146. 1460 LOCATE 22,35
  147. 1470 PRINT"0   10   20   30   40   50   60   70   80   90"
  148. 1480 KD=2*PI*D
  149. 1490 DTR=PI/180
  150. 1500 N=INT(M/2)
  151. 1510 NL=N
  152. 1520 IF IEVEN=0 THEN NL=N+1
  153. 1530 PSET (0,0)
  154. 1540 FOR TH=0 TO 90
  155. 1550 STH=SIN(TH*DTR)
  156. 1560 F=0
  157. 1570 FOR J=1 TO NL
  158. 1580 IF IEVEN=0 THEN C=J-1
  159. 1590 IF IEVEN=1 THEN C=J-.5
  160. 1600 IF IP$="A" THEN CI=IA(NL+1-J)
  161. 1610 IF IP$="N" THEN CI=INR(NL+1-J)
  162. 1620 IF J=1 AND IEVEN=0 THEN CI=CI/2
  163. 1630 F=F+CI*COS(C*KD*STH)
  164. 1640 NEXT J
  165. 1650 F=ABS(F)
  166. 1660 IF TH=0 THEN FMAX=F
  167. 1670 F=F/FMAX
  168. 1680 IF F<.00316 THEN F=.00316
  169. 1690 F=20*FNLOG10(F)
  170. 1700 LINE -(TH,F)
  171. 1710 NEXT TH
  172. 1720 LOCATE 2,1
  173. 1730 GOTO 1150
  174. 1740 REM SUBROUTINE FOR NF FACTORIAL
  175. 1750 NFAC=1
  176. 1760 IF NF<=1 THEN GOTO 1800
  177. 1770 FOR N1=1 TO NF
  178. 1780 NFAC=NFAC*N1
  179. 1790 NEXT N1
  180. 1800 NF=NFAC
  181. 1810 RETURN
  182. 1820 SCREEN 0,1
  183. 1830 COLOR 7,0
  184. 1840 KEY ON
  185. 1850 END
  186.