home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / engprog / scatlink.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1986-09-07  |  6.3 KB  |  263 lines

  1. 10  REM This program calculates signal strengths based on tropospheric
  2. 20  REM scattering of VHF/UHF/Microwave radio signals, receiver characteristics
  3. 30  REM antenna gains and transmitter power.
  4. 100   REM  TROPOSCATTER PATH LOSS CALCULATOR
  5. 110   DIM H1(2),H2(2),D1(2),A(2),A$(2),J(2)
  6. 120  R1 = 8497
  7. 130  P1 = 3.14151
  8. 140   DEF  FN X(X) =  LOG (X) * 0.43432
  9. 150   DEF  FN Y(X) =  INT (10 * X + 0.5) / 10
  10. 160  N = 1
  11. 170   GOSUB 1780
  12. 180  N = 2
  13. 190   GOSUB 1780
  14. 200   PRINT 
  15. 210   PRINT  TAB( 10);"TROPO PATH LOSS CALCULATOR"
  16. 220   PRINT 
  17. 230  N = 1
  18. 240   GOSUB 870
  19. 250   REM 
  20. 260  N = 2
  21. 270   GOSUB 870
  22. 280   REM 
  23. 290   PRINT 
  24. 300   PRINT 
  25. 310   PRINT "FREQUENCY OF OPERATION (MHZ)";
  26. 320   INPUT F
  27. 330   PRINT 
  28. 340   IF F <  = 30 THEN 310
  29. 350   REM  SCATTER ANGLE CALCULATION
  30. 360  B0 = D * 180 / (R1 * P1)
  31. 370  N = 1
  32. 380   GOSUB 1460
  33. 390  N = 2
  34. 400   GOSUB 1460
  35. 410  B = B0 + J(1) + J(2)
  36. 420   REM  FREE SPACE LOSS
  37. 430  L1 = 32.5 + 20 *  FN X(D) + 20 *  FN X(F)
  38. 440   REM  SCATTER LOSS
  39. 450  L2 = 21 + 10 * B + 10 *  FN X(F)
  40. 460   REM  APERTURE COUPLING LOSS
  41. 470  A1 =  SQR (A(1) * A(2))
  42. 480  L3 = (2 * B / A1) + 2
  43. 490   REM  TOTAL PATH LOSS
  44. 500  L0 = L1 + L2 + L3
  45. 510   PRINT " TROPOSCATTER PATH ";A$(1);" TO ";A$(2)
  46. 520   PRINT " FOR A FREQUENCY OF ";F;" MHZ."
  47. 530   PRINT 
  48. 540   PRINT " PATH LOSS "; FN Y(L0);"DB."
  49. 550   PRINT 
  50. 560   PRINT "STATION ";A$(1);" LOSS CONTRIBUTION "; FN Y(10 * J(1));" DB."
  51. 570   PRINT "STATION ";A$(2);" LOSS CONTRIBUTION "; FN Y(10 * J(2));" DB."
  52. 580   PRINT 
  53. 590   PRINT " SCATTERING ANGLE "; FN Y(B);" DEGREES."
  54. 600   PRINT 
  55. 610   PRINT "PRESS RETURN TO CONTINUE";
  56. 620   INPUT X$
  57. 630   PRINT 
  58. 640   PRINT " DO YOU WISH :  TO RESTART THE PROGRAM (1)"
  59. 650   PRINT  TAB( 5);" TO ALTER STATION A PARAMETERS (2)"
  60. 660   PRINT  TAB( 5);"TO ALTER STATION B PARAMETERS (3)"
  61. 670   PRINT  TAB( 5);"TO CORRECT FOR REFRACTION (4)"
  62. 680   PRINT  TAB( 5);"TO CHANGE FREQUENCY AND ALSO"
  63. 690   PRINT  TAB( 5);"ANTENNA BEAMWIDTHS(5)"
  64. 700   PRINT  TAB( 5);"OR CONTINUE WITH LINK BUDGET(6)
  65. 710   PRINT 
  66. 720   INPUT X
  67. 730   IF X = 1 THEN 180
  68. 740   IF X = 2 THEN 1390
  69. 750   IF X = 3 THEN 1410
  70. 760   IF X = 4 THEN 800
  71. 770   IF X = 5 THEN 1290
  72. 780   IF X = 6 THEN 2000
  73. 790   GOTO 620
  74. 800   PRINT "WHAT N-VALUE";
  75. 810   INPUT N
  76. 820  L4 = 0.2 * (N - 310)
  77. 830   PRINT " CORRECTION IS "; FN Y(L4);" DB."
  78. 840   PRINT " THE CORRECTED PATH LOSS IS "; FN Y(L0 + L4);" DB."
  79. 850   GOTO 600
  80. 860   REM  ROUTINE TO INPUTT AND UPDATE STATION PARAMETERS
  81. 870   PRINT 
  82. 880   IF N = 1 THEN  PRINT "A ";
  83. 890   IF N = 2 THEN  PRINT "B ";
  84. 900   PRINT "STATION IDENTIFIER ";A$(N);
  85. 910   IF A$(N) <  > " " THEN 930
  86. 920   INPUT A$(N)
  87. 930   PRINT 
  88. 940   PRINT " HEIGHT OF STATION (M) ";
  89. 950   IF H1(N) = 0 THEN 980
  90. 960   PRINT H1(N)
  91. 970   GOTO 990
  92. 980   INPUT H1(N)
  93. 990   PRINT " HEIGHT OF OBSTRUCTION (M) ";
  94. 1000   IF H2(N) = 0 THEN 1030
  95. 1010   PRINT H2(N)
  96. 1020   GOTO 1040
  97. 1030   INPUT H2(N)
  98. 1040   PRINT " DISTANCE TO OBSTRUCTION (KM) ";
  99. 1050   IF D1(N) = 0 THEN 1080
  100. 1060   PRINT D1(N)
  101. 1070   GOTO 1090
  102. 1080   INPUT D1(N)
  103. 1090   PRINT "ANTENNA BEAMWIDTH (DEG) ";
  104. 1100   IF A(N) = 0 THEN 1130
  105. 1110   PRINT A(N)
  106. 1120   GOTO 1140
  107. 1130   INPUT A(N)
  108. 1140   IF N = 1 THEN 1210
  109. 1150   PRINT " DISTANCE BETWEEN STATIONS (KM) ";
  110. 1160   IF D = 0 THEN 1190
  111. 1170   PRINT D
  112. 1180   GOTO 1210
  113. 1190   INPUT D
  114. 1200   REM  ZERO TRAP
  115. 1210   IF A(N) = 0 THEN 870
  116. 1220   IF H1(N) = 0 THEN 870
  117. 1230   IF H2(N) = 0 THEN 870
  118. 1240   IF D1(N) = 0 THEN 870
  119. 1250   IF N = 1 THEN  RETURN 
  120. 1260   IF D = 0 THEN 870
  121. 1270   RETURN 
  122. 1280   REM  CHANGE FREQ. AND ANT. BEAMWIDTHS
  123. 1290   PRINT 
  124. 1300   PRINT " NEW FREQUENCY";
  125. 1310   INPUT F
  126. 1320   PRINT 
  127. 1330   PRINT "STATION ";A$(1);" BEAMWIDTH";
  128. 1340   INPUT A1
  129. 1350   PRINT "STATION ";A$(2);" BEAMWIDTH";
  130. 1360   INPUT A(2)
  131. 1370   GOTO 330
  132. 1380   REM  CHANGE STATION PARAMETERS
  133. 1390  N = 1
  134. 1400   GOTO 1420
  135. 1410  N = 2
  136. 1420   GOSUB 1500
  137. 1430   GOSUB 870
  138. 1440   GOTO 330
  139. 1450   REM  CALCULATES STATION ANGLES
  140. 1460  H3 = (H2(N) - H1(N)) / (D1(N) * 1000)
  141. 1470  J(N) = (H3 - (D1(N) / (2 * R1)))
  142. 1480  J(N) = J(N) * 180 / P1
  143. 1490   RETURN 
  144. 1500   PRINT " PARAMETER TO CHANGE:"
  145. 1510   PRINT  TAB( 5);"STATION HEIGHT (1)"
  146. 1520   PRINT  TAB( 5);"OBSTRUCTION HEIGHT (2)"
  147. 1530   PRINT  TAB( 5);"OBSTRUCTION DISTANCE (3)"
  148. 1540   PRINT  TAB( 5);"ANTENNA BEAMWIDTH (4)"
  149. 1550   PRINT  TAB( 5);"STATION IDENT (5)"
  150. 1560   IF N = 2 THEN  PRINT  TAB( 5);"DISTANCE A TO B (6)"
  151. 1570   PRINT  TAB( 5);"ALL PARAMETERS (7)"
  152. 1580   PRINT  TAB( 5);"RESTART CALCULATION (8)"
  153. 1590   PRINT "WHAT PARAMETER NUMBER";
  154. 1600   INPUT X
  155. 1610   IF X < 1 THEN 1590
  156. 1620   IF X > 8 THEN 1590
  157. 1630   IF X = 8 THEN  RETURN 
  158. 1640   IF X = 7 THEN  GOSUB 1780
  159. 1650   IF X = 6 THEN 1730
  160. 1660   IF X = 5 THEN A$(N) = " "
  161. 1670   IF X = 4 THEN A(N) = 0
  162. 1680   IF X = 3 THEN D1(N) = 0
  163. 1690   IF X = 2 THEN H2(N) = 0
  164. 1700   IF X = 1 THEN H1(N) = 0
  165. 1710   PRINT "DONE."
  166. 1720   GOTO 1590
  167. 1730   IF N = 1 THEN  PRINT " NOT ALLOWED"
  168. 1740   IF N = 1 THEN  GOTO 1590
  169. 1750  D = 0
  170. 1760   GOTO 1710
  171. 1770   REM  RESET ALL STATION PARAMETERS
  172. 1780   IF N = 1 THEN  PRINT "A ";
  173. 1790   IF N = 2 THEN  PRINT "B ";
  174. 1800   PRINT "PARAMETERS RESET"
  175. 1810  D1(N) = 0
  176. 1820  H1(N) = 0
  177. 1830  H2(N) = 0
  178. 1840  A(N) = 0
  179. 1850  A$(N) = " "
  180. 1860   IF N = 2 THEN D = 0
  181. 1870   RETURN 
  182. 1880   REM  ERROR TRAP
  183. 2000   REM  THIS PROGRAM CALCULATES
  184. 2010   REM  LINE OF SIGHT LINK
  185. 2020   REM  BUDGETS, WITH THE
  186. 2030   REM  FACILITY TO INCLUDE EXTRA
  187. 2040   REM  LOSS (EG. ABSORPTION,
  188. 2050   REM  TROPOSCATTER ETC.).
  189. 2060   REM 
  190. 2070   REM  C.W. SUCKLING 11/3/1983
  191. 2080   REM 
  192. 2090   REM  DATA INPUT DRIVER
  193. 2100   GOSUB 2190
  194. 2110   GOSUB 2210
  195. 2120   GOSUB 2230
  196. 2130   GOSUB 2250
  197. 2140   GOSUB 2270
  198. 2150   GOSUB 2290
  199. 2160   GOSUB 2310
  200. 2170   GOTO 2330
  201. 2180   REM  INITIAL DATA INPUT
  202. 2190   INPUT "RX NOISE TEMP OR NOISE FIGURE? ";N
  203. 2200   RETURN 
  204. 2210   INPUT "RX BANDWIDTH (HZ)? ";B
  205. 2220   RETURN 
  206. 2230   REM 
  207. 2240   RETURN 
  208. 2250   INPUT "ANTENNA 1 PARAMS. DIA(FT) OR .DB)? ";D1
  209. 2260   RETURN 
  210. 2270   INPUT "ANTENNA 2 PARAMS. DIA(FT) OR .DB)? ";D2
  211. 2280   RETURN 
  212. 2290   INPUT "TX POWER (W)? ";P
  213. 2300   RETURN 
  214. 2310   REM 
  215. 2320   RETURN 
  216. 2330   REM  ANTENNA CALCULATIONS
  217. 2340  D = D1: GOSUB 2380
  218. 2350  G1 = G:A1$ = D$:A1 = A
  219. 2360  D = D2: GOSUB 2380
  220. 2370  G2 = G:A2$ = D$:A2 = A: GOTO 2430
  221. 2380   IF D < 1 THEN  GOTO 2400
  222. 2390  D$ = "FT":G = (4.3422 *  LOG (5.094 * D * D * F * F)) - 60:A = D: GOTO 2410
  223. 2400  D$ = "DB":G = 100 * D:A = G
  224. 2410   RETURN 
  225. 2420   REM  CONVERSION OF NOISE FIGURE TO NOISE TEMPERATURE
  226. 2430   IF N < 20 THEN  GOTO 2460
  227. 2440  N$ = "K":NN = N
  228. 2450   GOTO 2490
  229. 2460  NN = 290 * ( EXP (0.2303 * N) - 1)
  230. 2470  N$ = "DB":
  231. 2480   REM  CALCULATION OF RECEIVER NOISE POWER
  232. 2490  RS =  - 228.6 + (4.3422 *  LOG (NN)) + 4.3422 *  LOG (B)
  233. 2500   REM  CALCULATION OF SIGNAL TO NOISE RATIO
  234. 2505  PL =  INT (L0 * 100) / 100
  235. 2510  SN = G1 + G2 + (4.3422 *  LOG (P)) - PL - RS
  236. 2520   REM  DATA OUTPUT SECTION
  237. 2530   PRINT : PRINT : PRINT "CODE  PARAMETER       CURRENT VALUE"
  238. 2540   PRINT 
  239. 2550   PRINT "1     NOISE TEMP/FIG  ";N;N$
  240. 2560   PRINT "2     BANDWIDTH       ";B;"HZ"
  241. 2570   PRINT "3     FREQUENCY       ";F;"MHZ"
  242. 2580   PRINT "4     ANTENNA1        ";A1;A1$
  243. 2590   PRINT "5     ANTENNA2        ";A2;A2$
  244. 2600   PRINT "6     TX POWER        ";P;"W"
  245. 2610   PRINT "7     PATH LOSS       ";PL;"DB"
  246. 2620  SN =  INT (SN * 100) / 100
  247. 2630   PRINT 
  248. 2640   PRINT "SIGNAL TO NOISE RATIO = ";SN;"DB "
  249. 2650   REM  RE-RUN MENU
  250. 2660   INPUT "NEW PARAM CODE, OR QUIT(Q)? ";A$
  251. 2670   REM  DATA INPUT FOR NEW PARAMETER
  252. 2680   IF A$ = "Q" THEN  GOTO 2790
  253. 2700   IF A$ = "1" THEN  GOSUB 2190
  254. 2710   IF A$ = "2" THEN  GOSUB 2210
  255. 2720   IF A$ = "3" THEN  PRINT "NOT ALLOWED": GOSUB 2660
  256. 2730   IF A$ = "4" THEN  GOSUB 2250
  257. 2740   IF A$ = "5" THEN  GOSUB 2270
  258. 2750   IF A$ = "6" THEN  GOSUB 2290
  259. 2760   IF A$ = "7" THEN  PRINT "NOT ALLOWED": GOSUB 2660
  260. 2770   IF A$ = "8" THEN  GOSUB 207
  261. 2780   GOTO 2330
  262. 2790   END 
  263.