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

  1. 10 REM PLOT NON-UNIFORM ARRAY FACTOR
  2. 20 REM "ANTENNA DESIGN USING PERSONAL COMPUTERS"
  3. 30 DIM FLDA(360),IR(30),II(30),Z(30)
  4. 40 KEY OFF
  5. 50 PI=3.141593
  6. 60 DEF FNLOG10(X)=.4343*LOG(X)
  7. 70 CLS
  8. 80 SCREEN 0,1
  9. 90 COLOR 1,0
  10. 100 PRINT "THIS PROGRAM COMPUTES THE PATTERN OF A LINEAR ARRAY"
  11. 110 PRINT "WITH NONUNIFORM SPACING AND UNEQUAL AMPLITUDES"
  12. 120 COLOR 4,0
  13. 130 PRINT
  14. 140 INPUT "WHAT IS THE FREQUENCY(MHz)";FMC
  15. 150 INPUT "HOW MANY ELEMENTS";N
  16. 160 IF N<2 THEN GOTO 150
  17. 170 REM READ IN SPACING, CURRENT
  18. 180 PRINT "TYPE IN THE ELEMENT COORDINATE(meters) AND COMPLEX CURRENT"
  19. 190 FOR I=1 TO N
  20. 200 PRINT USING  "##";I;:INPUT Z(I),IR(I),II(I)
  21. 210 NEXT I
  22. 220 XK0=2*PI*FMC/300
  23. 230 ROD=PI/180
  24. 240 REM FILL FLDA WITH FIELD
  25. 250 FMAX=0
  26. 260 FOR TH=0 TO 180
  27. 270 THR=TH*ROD
  28. 280 CTH=COS(THR)
  29. 290 FR=0
  30. 300 FI=0
  31. 310 FOR K=1 TO N
  32. 320 TT=XK0*Z(K)*CTH
  33. 330 AR=COS(TT)
  34. 340 AI=SIN(TT)
  35. 350 FR=FR+AR*IR(K)-AI*II(K)
  36. 360 FI=FI+AR*II(K)+AI*IR(K)
  37. 370 NEXT K
  38. 380 FLDA(TH)=FR*FR+FI*FI
  39. 390 IF FLDA(TH)>FMAX THEN THMAX=TH
  40. 400 IF FLDA(TH)>FMAX THEN FMAX=FLDA(TH)
  41. 410 NEXT TH
  42. 420 REM FILL OTHER HALF OF ARRAY
  43. 430 FOR TH=181 TO 360
  44. 440 FLDA(TH)=FLDA(360-TH)
  45. 450 NEXT TH
  46. 460 PRINT
  47. 470 REM NORMALIZE DATA
  48. 480 FOR TH=0 TO 360
  49. 490 FM=FLDA(TH)/FMAX
  50. 500 IF FM<.001 THEN FM=.001
  51. 510 FLDA(TH)=10*FNLOG10(FM)
  52. 520 NEXT TH
  53. 530 REM FIND BEAMWIDTH
  54. 540 TH=INT(THMAX-.5)
  55. 550 TH=TH+1
  56. 560 IF FLDA(TH)>-3 THEN GOTO 550
  57. 570 TH0=(-3-FLDA(TH-1)+(TH-1)*(FLDA(TH)-FLDA(TH-1)))/(FLDA(TH)-FLDA(TH-1))
  58. 580 BW=(TH0-THMAX)*2
  59. 590 REM PLOT GRID
  60. 600 SCREEN 2,0
  61. 610 VIEW (262,20)-(638,188)
  62. 620 WINDOW (-1,-1)-(1,1)
  63. 630 CIRCLE (0,0),1,,,,.45
  64. 640 CIRCLE (0,0),.666,,,,.45
  65. 650 CIRCLE (0,0),.333,,,,.45
  66. 660 FOR THD=0 TO 150 STEP 30
  67. 670 TH=THD*ROD
  68. 680 LINE (COS(TH),SIN(TH))-(-COS(TH),-SIN(TH))
  69. 690 NEXT THD
  70. 700 PSET (FLDA(0)/30+1,0)
  71. 710 FOR TH=0 TO 360
  72. 720 THR=TH*ROD
  73. 730 RAD=FLDA(TH)/30+1
  74. 740 LINE -(RAD*COS(THR),RAD*SIN(THR))
  75. 750 NEXT TH
  76. 760 PRINT USING "SCAN ANGLE=###.# deg.";90-THMAX
  77. 770 PRINT USING "3 dB BEAMWIDTH=###.# deg.";BW
  78. 780 PRINT "10 dB/DIV."
  79. 790 PRINT
  80. 800 INPUT "CONTINUE(Y,N)";K$
  81. 810 IF K$<>"N" THEN GOTO 70
  82. 820 SCREEN 0,1
  83. 830 KEY ON
  84. 840 END
  85.