home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1986-09-07 | 6.3 KB | 263 lines |
- 10 REM This program calculates signal strengths based on tropospheric
- 20 REM scattering of VHF/UHF/Microwave radio signals, receiver characteristics
- 30 REM antenna gains and transmitter power.
- 100 REM TROPOSCATTER PATH LOSS CALCULATOR
- 110 DIM H1(2),H2(2),D1(2),A(2),A$(2),J(2)
- 120 R1 = 8497
- 130 P1 = 3.14151
- 140 DEF FN X(X) = LOG (X) * 0.43432
- 150 DEF FN Y(X) = INT (10 * X + 0.5) / 10
- 160 N = 1
- 170 GOSUB 1780
- 180 N = 2
- 190 GOSUB 1780
- 200 PRINT
- 210 PRINT TAB( 10);"TROPO PATH LOSS CALCULATOR"
- 220 PRINT
- 230 N = 1
- 240 GOSUB 870
- 250 REM
- 260 N = 2
- 270 GOSUB 870
- 280 REM
- 290 PRINT
- 300 PRINT
- 310 PRINT "FREQUENCY OF OPERATION (MHZ)";
- 320 INPUT F
- 330 PRINT
- 340 IF F < = 30 THEN 310
- 350 REM SCATTER ANGLE CALCULATION
- 360 B0 = D * 180 / (R1 * P1)
- 370 N = 1
- 380 GOSUB 1460
- 390 N = 2
- 400 GOSUB 1460
- 410 B = B0 + J(1) + J(2)
- 420 REM FREE SPACE LOSS
- 430 L1 = 32.5 + 20 * FN X(D) + 20 * FN X(F)
- 440 REM SCATTER LOSS
- 450 L2 = 21 + 10 * B + 10 * FN X(F)
- 460 REM APERTURE COUPLING LOSS
- 470 A1 = SQR (A(1) * A(2))
- 480 L3 = (2 * B / A1) + 2
- 490 REM TOTAL PATH LOSS
- 500 L0 = L1 + L2 + L3
- 510 PRINT " TROPOSCATTER PATH ";A$(1);" TO ";A$(2)
- 520 PRINT " FOR A FREQUENCY OF ";F;" MHZ."
- 530 PRINT
- 540 PRINT " PATH LOSS "; FN Y(L0);"DB."
- 550 PRINT
- 560 PRINT "STATION ";A$(1);" LOSS CONTRIBUTION "; FN Y(10 * J(1));" DB."
- 570 PRINT "STATION ";A$(2);" LOSS CONTRIBUTION "; FN Y(10 * J(2));" DB."
- 580 PRINT
- 590 PRINT " SCATTERING ANGLE "; FN Y(B);" DEGREES."
- 600 PRINT
- 610 PRINT "PRESS RETURN TO CONTINUE";
- 620 INPUT X$
- 630 PRINT
- 640 PRINT " DO YOU WISH : TO RESTART THE PROGRAM (1)"
- 650 PRINT TAB( 5);" TO ALTER STATION A PARAMETERS (2)"
- 660 PRINT TAB( 5);"TO ALTER STATION B PARAMETERS (3)"
- 670 PRINT TAB( 5);"TO CORRECT FOR REFRACTION (4)"
- 680 PRINT TAB( 5);"TO CHANGE FREQUENCY AND ALSO"
- 690 PRINT TAB( 5);"ANTENNA BEAMWIDTHS(5)"
- 700 PRINT TAB( 5);"OR CONTINUE WITH LINK BUDGET(6)
- 710 PRINT
- 720 INPUT X
- 730 IF X = 1 THEN 180
- 740 IF X = 2 THEN 1390
- 750 IF X = 3 THEN 1410
- 760 IF X = 4 THEN 800
- 770 IF X = 5 THEN 1290
- 780 IF X = 6 THEN 2000
- 790 GOTO 620
- 800 PRINT "WHAT N-VALUE";
- 810 INPUT N
- 820 L4 = 0.2 * (N - 310)
- 830 PRINT " CORRECTION IS "; FN Y(L4);" DB."
- 840 PRINT " THE CORRECTED PATH LOSS IS "; FN Y(L0 + L4);" DB."
- 850 GOTO 600
- 860 REM ROUTINE TO INPUTT AND UPDATE STATION PARAMETERS
- 870 PRINT
- 880 IF N = 1 THEN PRINT "A ";
- 890 IF N = 2 THEN PRINT "B ";
- 900 PRINT "STATION IDENTIFIER ";A$(N);
- 910 IF A$(N) < > " " THEN 930
- 920 INPUT A$(N)
- 930 PRINT
- 940 PRINT " HEIGHT OF STATION (M) ";
- 950 IF H1(N) = 0 THEN 980
- 960 PRINT H1(N)
- 970 GOTO 990
- 980 INPUT H1(N)
- 990 PRINT " HEIGHT OF OBSTRUCTION (M) ";
- 1000 IF H2(N) = 0 THEN 1030
- 1010 PRINT H2(N)
- 1020 GOTO 1040
- 1030 INPUT H2(N)
- 1040 PRINT " DISTANCE TO OBSTRUCTION (KM) ";
- 1050 IF D1(N) = 0 THEN 1080
- 1060 PRINT D1(N)
- 1070 GOTO 1090
- 1080 INPUT D1(N)
- 1090 PRINT "ANTENNA BEAMWIDTH (DEG) ";
- 1100 IF A(N) = 0 THEN 1130
- 1110 PRINT A(N)
- 1120 GOTO 1140
- 1130 INPUT A(N)
- 1140 IF N = 1 THEN 1210
- 1150 PRINT " DISTANCE BETWEEN STATIONS (KM) ";
- 1160 IF D = 0 THEN 1190
- 1170 PRINT D
- 1180 GOTO 1210
- 1190 INPUT D
- 1200 REM ZERO TRAP
- 1210 IF A(N) = 0 THEN 870
- 1220 IF H1(N) = 0 THEN 870
- 1230 IF H2(N) = 0 THEN 870
- 1240 IF D1(N) = 0 THEN 870
- 1250 IF N = 1 THEN RETURN
- 1260 IF D = 0 THEN 870
- 1270 RETURN
- 1280 REM CHANGE FREQ. AND ANT. BEAMWIDTHS
- 1290 PRINT
- 1300 PRINT " NEW FREQUENCY";
- 1310 INPUT F
- 1320 PRINT
- 1330 PRINT "STATION ";A$(1);" BEAMWIDTH";
- 1340 INPUT A1
- 1350 PRINT "STATION ";A$(2);" BEAMWIDTH";
- 1360 INPUT A(2)
- 1370 GOTO 330
- 1380 REM CHANGE STATION PARAMETERS
- 1390 N = 1
- 1400 GOTO 1420
- 1410 N = 2
- 1420 GOSUB 1500
- 1430 GOSUB 870
- 1440 GOTO 330
- 1450 REM CALCULATES STATION ANGLES
- 1460 H3 = (H2(N) - H1(N)) / (D1(N) * 1000)
- 1470 J(N) = (H3 - (D1(N) / (2 * R1)))
- 1480 J(N) = J(N) * 180 / P1
- 1490 RETURN
- 1500 PRINT " PARAMETER TO CHANGE:"
- 1510 PRINT TAB( 5);"STATION HEIGHT (1)"
- 1520 PRINT TAB( 5);"OBSTRUCTION HEIGHT (2)"
- 1530 PRINT TAB( 5);"OBSTRUCTION DISTANCE (3)"
- 1540 PRINT TAB( 5);"ANTENNA BEAMWIDTH (4)"
- 1550 PRINT TAB( 5);"STATION IDENT (5)"
- 1560 IF N = 2 THEN PRINT TAB( 5);"DISTANCE A TO B (6)"
- 1570 PRINT TAB( 5);"ALL PARAMETERS (7)"
- 1580 PRINT TAB( 5);"RESTART CALCULATION (8)"
- 1590 PRINT "WHAT PARAMETER NUMBER";
- 1600 INPUT X
- 1610 IF X < 1 THEN 1590
- 1620 IF X > 8 THEN 1590
- 1630 IF X = 8 THEN RETURN
- 1640 IF X = 7 THEN GOSUB 1780
- 1650 IF X = 6 THEN 1730
- 1660 IF X = 5 THEN A$(N) = " "
- 1670 IF X = 4 THEN A(N) = 0
- 1680 IF X = 3 THEN D1(N) = 0
- 1690 IF X = 2 THEN H2(N) = 0
- 1700 IF X = 1 THEN H1(N) = 0
- 1710 PRINT "DONE."
- 1720 GOTO 1590
- 1730 IF N = 1 THEN PRINT " NOT ALLOWED"
- 1740 IF N = 1 THEN GOTO 1590
- 1750 D = 0
- 1760 GOTO 1710
- 1770 REM RESET ALL STATION PARAMETERS
- 1780 IF N = 1 THEN PRINT "A ";
- 1790 IF N = 2 THEN PRINT "B ";
- 1800 PRINT "PARAMETERS RESET"
- 1810 D1(N) = 0
- 1820 H1(N) = 0
- 1830 H2(N) = 0
- 1840 A(N) = 0
- 1850 A$(N) = " "
- 1860 IF N = 2 THEN D = 0
- 1870 RETURN
- 1880 REM ERROR TRAP
- 2000 REM THIS PROGRAM CALCULATES
- 2010 REM LINE OF SIGHT LINK
- 2020 REM BUDGETS, WITH THE
- 2030 REM FACILITY TO INCLUDE EXTRA
- 2040 REM LOSS (EG. ABSORPTION,
- 2050 REM TROPOSCATTER ETC.).
- 2060 REM
- 2070 REM C.W. SUCKLING 11/3/1983
- 2080 REM
- 2090 REM DATA INPUT DRIVER
- 2100 GOSUB 2190
- 2110 GOSUB 2210
- 2120 GOSUB 2230
- 2130 GOSUB 2250
- 2140 GOSUB 2270
- 2150 GOSUB 2290
- 2160 GOSUB 2310
- 2170 GOTO 2330
- 2180 REM INITIAL DATA INPUT
- 2190 INPUT "RX NOISE TEMP OR NOISE FIGURE? ";N
- 2200 RETURN
- 2210 INPUT "RX BANDWIDTH (HZ)? ";B
- 2220 RETURN
- 2230 REM
- 2240 RETURN
- 2250 INPUT "ANTENNA 1 PARAMS. DIA(FT) OR .DB)? ";D1
- 2260 RETURN
- 2270 INPUT "ANTENNA 2 PARAMS. DIA(FT) OR .DB)? ";D2
- 2280 RETURN
- 2290 INPUT "TX POWER (W)? ";P
- 2300 RETURN
- 2310 REM
- 2320 RETURN
- 2330 REM ANTENNA CALCULATIONS
- 2340 D = D1: GOSUB 2380
- 2350 G1 = G:A1$ = D$:A1 = A
- 2360 D = D2: GOSUB 2380
- 2370 G2 = G:A2$ = D$:A2 = A: GOTO 2430
- 2380 IF D < 1 THEN GOTO 2400
- 2390 D$ = "FT":G = (4.3422 * LOG (5.094 * D * D * F * F)) - 60:A = D: GOTO 2410
- 2400 D$ = "DB":G = 100 * D:A = G
- 2410 RETURN
- 2420 REM CONVERSION OF NOISE FIGURE TO NOISE TEMPERATURE
- 2430 IF N < 20 THEN GOTO 2460
- 2440 N$ = "K":NN = N
- 2450 GOTO 2490
- 2460 NN = 290 * ( EXP (0.2303 * N) - 1)
- 2470 N$ = "DB":
- 2480 REM CALCULATION OF RECEIVER NOISE POWER
- 2490 RS = - 228.6 + (4.3422 * LOG (NN)) + 4.3422 * LOG (B)
- 2500 REM CALCULATION OF SIGNAL TO NOISE RATIO
- 2505 PL = INT (L0 * 100) / 100
- 2510 SN = G1 + G2 + (4.3422 * LOG (P)) - PL - RS
- 2520 REM DATA OUTPUT SECTION
- 2530 PRINT : PRINT : PRINT "CODE PARAMETER CURRENT VALUE"
- 2540 PRINT
- 2550 PRINT "1 NOISE TEMP/FIG ";N;N$
- 2560 PRINT "2 BANDWIDTH ";B;"HZ"
- 2570 PRINT "3 FREQUENCY ";F;"MHZ"
- 2580 PRINT "4 ANTENNA1 ";A1;A1$
- 2590 PRINT "5 ANTENNA2 ";A2;A2$
- 2600 PRINT "6 TX POWER ";P;"W"
- 2610 PRINT "7 PATH LOSS ";PL;"DB"
- 2620 SN = INT (SN * 100) / 100
- 2630 PRINT
- 2640 PRINT "SIGNAL TO NOISE RATIO = ";SN;"DB "
- 2650 REM RE-RUN MENU
- 2660 INPUT "NEW PARAM CODE, OR QUIT(Q)? ";A$
- 2670 REM DATA INPUT FOR NEW PARAMETER
- 2680 IF A$ = "Q" THEN GOTO 2790
- 2700 IF A$ = "1" THEN GOSUB 2190
- 2710 IF A$ = "2" THEN GOSUB 2210
- 2720 IF A$ = "3" THEN PRINT "NOT ALLOWED": GOSUB 2660
- 2730 IF A$ = "4" THEN GOSUB 2250
- 2740 IF A$ = "5" THEN GOSUB 2270
- 2750 IF A$ = "6" THEN GOSUB 2290
- 2760 IF A$ = "7" THEN PRINT "NOT ALLOWED": GOSUB 2660
- 2770 IF A$ = "8" THEN GOSUB 207
- 2780 GOTO 2330
- 2790 END
-