100 ' ****************************************** 110 ' * IBM PC BASIC VERSION A 3.30 * 120 ' * FILE NAME "SATE" * 130 ' * INTERFERENCE TO SATELLITE ORBIT * 140 ' * 1987/10 I.KATO * 150 ' ****************************************** 160 KEY OFF:CLS:SCREEN 9 170 COLOR 14 180 DEFDBL A,B,F,G,H,K,L,M,N,P,R,S,T 190 DIM F(12) 200 DATA "SELF POINT HEIGHT(m)","SELF POINT LATITUDE", "SELF POINT LONGITUDE" 210 DATA "RESPECTIVE POINT HEIGHT(m)","RESPECTIVE POINT LATITUDE", "RESPECTIVE POINT LONGITUDE" 220 DATA "SATELLITE LONGITUDE","k(average value)" 230 DATA "DEGREE","MINUTE","SECOND" 240 FOR I=1 TO 8:READ A$(I):NEXT 250 FOR I=1 TO 3:READ B$(I):NEXT 260 LOCATE 1,1:PRINT "[ITEM 26] INTERFERENCE TO GEOSTATIONARY-SATELLITE ORBIT ":PRINT:COLOR 7 270 PRINT "The geostationary-satellite orbit encircles the earth on its equatorial plane. A number of fixed-service communication satellites sharing the same frequencies with the terrestrial radio relay links are scheduled to be launched on this" 280 PRINT "orbit. So, the orbit should be protected from interferences along its entire circumference. For instance, a 5,850 - 6,425MHz band used in a terrestrial radio-relay link coincides with the satellite up-link frequency band, and if the"; 285 PRINT "terrestrial antenna directs the orbit, the satellite transponder will be exposedto co-channel interference at farely high possibility. This is the reason for" 290 PRINT "careful examination is required for the maximum radiating direction of the antenna to be kept away from the grostationary-satellite orbit. In principle," 300 COLOR 3:PRINT "at least 2 degrees ";:COLOR 7:PRINT "of such deviating angle is required for new transmitting" 305 PRINT "stations, employing maximum values of e.i.r.p. (equivalent isotropically" 310 PRINT "radiated power) exceeding +35dBW.":PRINT 320 PRINT "Differential azimuth and elevation angles between the satellite and the respective station measured from a relay station are calculated." 330 PRINT "This calculation requires input data on the position of the satellite and the location of the respective relay station, in a form of latitude and longitude." 340 PRINT "Regarding the satellite, however, only longitudinal information will be sufficient because it is located on the geostationary orbit over the equator." 350 COLOR 6:LOCATE 23,10:PRINT "----- To proceed: Hit space key -----" 360 COLOR 7:Q$=INKEY$:IF Q$<>" " THEN 360 400 CLS 410 PRINT "When differential azimuth or elevation angle is less than 2 degrees, further examination is requested with reference to the following criteria in terms of e.i.r.p.":PRINT:COLOR 14 420 PRINT " RESTRICTION ON MAXIMUM RADIATING DIRECTION OF ANTENNA IN RADIO-RELAY STATION":COLOR 7 430 LINE(1,80)-(638,287),7,B 440 LOCATE 7,2:PRINT " Maximum radiating direction of antenna 450 LOCATE 8,2:PRINT "Frequency band deviated from the geostationary-satallite e.i.r.p." 460 LOCATE 9,2:PRINT " orbit" 470 LINE(1,133)-(638,133),7 480 LOCATE 11,2:PRINT " 2 degrees at least (as far as practically) 35-55dBW" 490 LOCATE 13,2:PRINT "2,655-2,690MHz 47-55dBW" 500 LOCATE 14,2:PRINT "5,850-6,425MHz 0.5-2 degrees at a rate" 510 LOCATE 15,2:PRINT "7,900-8,400MHz of 8dB/deg" 520 LINE(144,217)-(638,217),7 530 LOCATE 17,2:PRINT " less than 0.5 degree 48dBW max." 540 LINE(1,245)-(638,245),7 550 LOCATE 19,2:PRINT " 10-15GHz When e.i.r.p. exceeds 45dBW the deviation angle should be" 560 LOCATE 20,2:PRINT " at least 1.5 degrees." 570 LINE(144,80)-(144,287),7:LINE(528,80)-(528,245),7 580 COLOR 6:LOCATE 23,10:PRINT "----- To proceed: Hit space key -----" 590 COLOR 7:Q$=INKEY$:IF Q$<>" " THEN 590 600 CLS 1000 COLOR 14:LOCATE 1,10:PRINT " [INTERFERENCE TO GEOSTATIONARY-SATELLITE ORBIT]":COLOR 7 1010 PRINT TAB(20)"----- calculation formulae -----" 1020 PRINT "AZIMUTH TOWARDS RESPECTIVE STATION=ATN(SIN(S-R)/(COS(K)*TAN(L)-SIN(K)*COS(S-R)))"; 1030 PRINT "AZIMUTH TOWARDS SATELLITE =(TAN(PH)/SIN(GA)" 1040 PRINT "ELEVATION ANGLE TOWARDS RESPECTIVE STATION=-(H1-H2)/(D*1000)+(D/(2*k*6370)" 1050 PRINT "ELEVATION ANGLE TOWARDS SATELLITE =ACS((AE+AS)/L)*SIN(BE))" 1060 PRINT "COS(BE)=COS(GA)*COS(PH):L=(AE^2+(AE+AS)^2-2*AE*(AE+AS)*COS(BE))^1/2" 1070 PRINT "K(L)=LATITUDE:R(S)=LONGITUDE:H1(H2)=HEIGHT(m):D=SPAN DIS.(km):AE=6370:AS=35786" 1080 PRINT STRING$(80,"-") 1090 FOR I=1 TO 8:LOCATE 9+I,1:PRINT I;" ";A$(I):NEXT 1100 GOSUB 3030:GOSUB 3120:GOSUB 3220:GOSUB 3320:GOSUB 3410:GOSUB 3510:GOSUB 3610: GOSUB 3710 1110 ' 1120 COLOR 6:LOCATE 23,10:PRINT "Do you correct any data (Y/N) ? ";:Y$=INPUT$(1) 1130 IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 1120 1140 COLOR 7:LOCATE 23,10:PRINT SPC(69) 1150 IF Y$="Y" OR Y$="y" THEN 1160 ELSE 2000 1160 COLOR 6:LOCATE 23,10:LINE INPUT "Input the item number(1-8) to be corrected ";X$ 1170 COLOR 7:LOCATE 23,10:PRINT SPC(69) 1180 NO=VAL(X$) 1190 IF NO=0 OR NO>8 THEN 1160 1200 LOCATE 9+NO,21:PRINT SPC(59) 1210 ON NO GOSUB 3030,3120,3220,3320,3410,3510,3610,3710 1220 GOTO 1120 2000 ' ***************** 2010 ' * calculation * 2020 ' ***************** 2030 ' azimuth 2040 DEG=180/3.14159 2050 K= F(1)+ (F(2)*60+ F(3))/3600 :K=K/DEG:IF AI$="S" OR AI$="s" THEN K=-K 2060 R= F(4)+ (F(5)*60+ F(6))/3600 :R=R/DEG:IF AK$="W" OR AK$="w" THEN R=-R 2070 L= F(7)+ (F(8)*60+ F(9))/3600 :L=L/DEG:IF BI$="S" OR BI$="s" THEN L=-L 2080 S=F(10)+(F(11)*60+F(12))/3600 :S=S/DEG:IF BK$="W" OR BK$="w" THEN S=-S 2090 M=ATN(SIN(S-R)/(COS(K)*TAN(L)-SIN(K)*COS(S-R))):M=M*DEG 2100 H=R-S 2110 IF H>0 AND M>0 THEN B=ABS(180+M):GOSUB 2210 2120 IF H<0 AND M<0 THEN B=ABS(180+M):GOSUB 2210 2130 IF H>0 AND M<0 THEN B=ABS(M) :GOSUB 2210 2140 IF H<0 AND M>0 THEN B=ABS(M) :GOSUB 2210 2150 IF H=0 AND KL THEN B=180 :GOSUB 2210 2170 AZR=B:DDR=DG:MMR=MI:SSR=SE:COLOR 2 2180 LOCATE 18,1:PRINT "AZIMUTH" 2190 LOCATE 19,1:PRINT USING "RESPECTIVE STATION(from TN) ###:##:##";DDR,MMR,SSR 2200 GOTO 2240 2210 ' * translate degree sub * 2220 DG=FIX(B):DD=INT(DG):MI=INT((B-DD)*60):SE=INT((B-DD-MI/60)*3600) 2230 RETURN 2240 ' * span distance * 2250 G=SIN(K)*SIN(L)+COS(K)*COS(L)*COS(R-S) 2260 ' ---- ACS ---- 2270 G=-ATN(G/SQR(-G*G+1))+1.5708 2280 D=6370*G:D=INT(D*100+.5)/100 2290 ' * elevation angle * 2300 FF=((H1-H2)/D/1000+D/(2*KR*6370))*(-1):ELR=FF*180/3.14159:B=ABS(ELR): GOSUB 2210:DDS=DG:MMS=MI:SSS=SE:COLOR 3 2310 LOCATE 18,51:PRINT "ELEVATION ANGLE" 2320 LOCATE 19,51 2330 IF FF<0 THEN PRINT USING "RESPECTIVE STATION -##:##:##";DDS,MMS,SSS 2340 IF FF>=0 THEN PRINT USING "RESPECTIVE STATION ##:##:##";DDS,MMS,SSS 2350 ' * to satellite * 2360 RR=6370+35786! 2370 FS=FS(1)+(FS(2)*60+FS(3))/3600:FS=FS/180*3.14159 2380 IF SK$="W" OR SK$="w" THEN FS=-FS 2390 PH=R-FS:IF ABS(PH)<10^-7 THEN PH=0 2400 BE=COS(K)*COS(PH) 2410 LL=(6370^2+RR^2-2*6370*RR*BE)^(1/2) 2420 GS=RR/LL*SQR(1-BE^2) 2430 ' * azimuth * 2440 IF PH=0 THEN AZS=0 :GOTO 2470 2450 IF K=0 THEN AZS=PH:GOTO 2470 2460 AZS=ATN(TAN(PH)/SIN(K)) 2470 AZS=180+AZS*180/3.14159 2480 B=AZS:GOSUB 2210:COLOR 2 2490 LOCATE 20,1:PRINT USING "SATELLITE (from TN) ###:##:##";DG,MI,SE 2500 ' * elevation angle * 2510 ELS=-ATN(GS/SQR(-GS*GS+1))+1.5708 2520 ELS=ELS*180/3.14159:B=ELS:GOSUB 2210:COLOR 3 2530 LOCATE 20,51:PRINT USING "SATELLITE ###:##:##";DG,MI,SE 2540 ' * difference angle * 2550 AZT=ABS(AZR-AZS):B=AZT:GOSUB 2210:COLOR 2 2560 LOCATE 21, 1:PRINT USING "DIFFERENTIAL VALUE ###:##:##";DG,MI,SE 2570 ELT=ABS(ELR-ELS):B=ELT:GOSUB 2210:COLOR 3 2580 LOCATE 21,51:PRINT USING "DIFFERENTIAL VALUE ###:##:##";DG,MI,SE:COLOR 14: LOCATE 22,1 2590 IF AZT<=2 AND ELT<=2 THEN PRINT "Differential azimuth and elevation angle is small. So, the route plan is not acceptable.":GOTO 2630 2600 IF AZT<=2 AND ELT>2 THEN PRINT "Differential azimuth is small, but differential elevation angle is more than 2 degrees. So, the route plan is acceptable.":GOTO 2630 2610 IF AZT>2 AND ELT<=2 THEN PRINT "Differential elevation angle is small, but differential azimuth is more than 2 degrees. So, the route plan is acceptable.":GOTO 2630 2620 IF AZT>2 AND ELT>2 THEN PRINT "Differential elevation angle and differential azimuth is more than 2 degrees. So, the route plan is acceptable." 2630 ' 2720 COLOR 6:LOCATE 23,45:PRINT "Do you continue this work (Y/N) ? ";:Y$=INPUT$(1) 2730 IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 2720 2740 COLOR 7:LOCATE 23,45:PRINT SPC(34) 2750 IF Y$="Y" OR Y$="y" THEN CLS:GOTO 1000 2760 CLS:SCREEN 0:RUN "ME" 3000 ' ******************** 3010 ' * data input sub * 3020 ' ******************** 3030 ' A height 3040 COLOR 6:LOCATE 10, 1:PRINT 1;:PRINT " "A$(1) 3050 COLOR 6:LOCATE 22, 1:PRINT "Input "A$(1)" ";:LINE INPUT X$ 3060 COLOR 7:LOCATE 22, 1:PRINT SPC(79) 3070 H1=VAL(X$) 3080 IF H1<1 THEN 3050 3090 LOCATE 10,37:PRINT USING "#,###.#";H1 3100 LOCATE 10, 1:PRINT 1;:PRINT " "A$(1) 3110 RETURN 3120 ' A latitude 3130 COLOR 6:LOCATE 11, 1:PRINT 2;:PRINT " "A$(2) 3140 COLOR 6:LOCATE 22, 1:PRINT "Input "A$(2)" ";:INPUT "NORTH or SOUTH (N/S) ";X$ 3150 IF X$<>"N" AND X$<>"n" AND X$<>"S" AND X$<>"s" THEN LOCATE 22, 1: PRINT SPC(79):GOTO 3140 3160 AI$=X$ 3170 FLAG$="IDO":GOSUB 3800 3180 FOR I=1 TO 3:F(I)=D(I):NEXT 3190 COLOR 7:LOCATE 11,34:PRINT AI$:LOCATE 11,36:PRINT USING "###:##:##";F(1),F(2),F(3) 3200 LOCATE 11, 1:PRINT 2;:PRINT " "A$(2):FOR I=22 TO 23:LOCATE I,1:PRINT SPC(79):NEXT 3210 RETURN 3220 ' A longitude 3230 COLOR 6:LOCATE 12, 1:PRINT 3;:PRINT " "A$(3) 3240 COLOR 6:LOCATE 22, 1:PRINT "Input "A$(3)" ";:INPUT "EAST or WEST (E/W) ";X$ 3250 IF X$<>"E" AND X$<>"e" AND X$<>"W" AND X$<>"w" THEN LOCATE 22, 1: PRINT SPC(79):GOTO 3240 3260 AK$=X$ 3270 FLAG$="KDO":GOSUB 3800 3280 FOR I=1 TO 3:F(I+3)=D(I):NEXT 3290 COLOR 7:LOCATE 12,34:PRINT AK$:LOCATE 12,36:PRINT USING "###:##:##";F(4),F(5),F(6) 3300 LOCATE 12, 1:PRINT 3;:PRINT " "A$(3):FOR I=22 TO 23:LOCATE I,1:PRINT SPC(79):NEXT 3310 RETURN 3320 ' B height 3330 COLOR 6:LOCATE 13, 1:PRINT 4;:PRINT " "A$(4) 3340 COLOR 6:LOCATE 22, 1:PRINT "Input "A$(4)" ";:LINE INPUT X$ 3350 COLOR 7:LOCATE 22, 1:PRINT SPC(79) 3360 H2=VAL(X$):COLOR 7 3370 IF H1<1 THEN 3340 3380 LOCATE 13,37:PRINT USING "#,###.#";H2 3390 LOCATE 13, 1:PRINT 4;:PRINT " "A$(4) 3400 RETURN 3410 ' B latitude 3420 COLOR 6:LOCATE 14, 1:PRINT 5;:PRINT " "A$(5) 3430 COLOR 6:LOCATE 22, 1:PRINT "Input "A$(5)" ";:INPUT "NORTH or SOUTH (N/S) ";X$ 3440 IF X$<>"N" AND X$<>"n" AND X$<>"S" AND X$<>"s" THEN LOCATE 22, 1: PRINT SPC(79):GOTO 3430 3450 BI$=X$ 3460 FLAG$="IDO":GOSUB 3800 3470 FOR I=1 TO 3:F(I+6)=D(I):NEXT 3480 COLOR 7:LOCATE 14,34:PRINT BI$:LOCATE 14,36:PRINT USING "###:##:##";F(7),F(8),F(9) 3490 LOCATE 14, 1:PRINT 5;:PRINT " "A$(5):FOR I=22 TO 23:LOCATE I,1:PRINT SPC(79):NEXT 3500 RETURN 3510 ' B longitude 3520 COLOR 6:LOCATE 15, 1:PRINT 6;:PRINT " "A$(6) 3530 COLOR 6:LOCATE 22, 1:PRINT "Input "A$(6)" ";:INPUT "EAST or WEST (E/W) ";X$ 3540 IF X$<>"E" AND X$<>"e" AND X$<>"W" AND X$<>"w" THEN LOCATE 22, 1: PRINT SPC(79):GOTO 3530 3550 BK$=X$ 3560 FLAG$="KDO":GOSUB 3800 3570 FOR I=1 TO 3:F(I+9)=D(I):NEXT 3580 COLOR 7:LOCATE 15,34:PRINT BK$:LOCATE 15,36:PRINT USING "###:##:##";F(10),F(11),F(12) 3590 LOCATE 15, 1:PRINT 6;:PRINT " "A$(6):FOR I=22 TO 23:LOCATE I,1:PRINT SPC(79):NEXT 3600 RETURN 3610 ' Satrllite longitude 3620 COLOR 6:LOCATE 16, 1:PRINT 7;:PRINT " "A$(7) 3630 COLOR 6:LOCATE 22, 1:PRINT "Input "A$(7)" ";:INPUT "EAST or WEST (E/W) ";X$ 3640 IF X$<>"E" AND X$<>"e" AND X$<>"W" AND X$<>"w" THEN LOCATE 22, 1: PRINT SPC(79):GOTO 3630 3650 SK$=X$ 3660 FLAG$="KDO":GOSUB 3800 3670 FOR I=1 TO 3:FS(I)=D(I):NEXT 3680 COLOR 7:LOCATE 16,34:PRINT SK$:LOCATE 16,36:PRINT USING "###:##:##";FS(1),FS(2),FS(3) 3690 LOCATE 16, 1:PRINT 7;:PRINT " "A$(7):FOR I=22 TO 23:LOCATE I,1:PRINT SPC(79):NEXT 3700 RETURN 3710 ' k 3720 COLOR 6:LOCATE 17, 1:PRINT 8;:PRINT " "A$(8) 3730 COLOR 6:LOCATE 22, 1:PRINT "Input "A$(8)" ";:LINE INPUT X$ 3740 COLOR 7:LOCATE 22, 1:PRINT SPC(79) 3750 IF MID$(X$,2,1)="/" THEN KR=VAL(LEFT$(X$,1))/VAL(RIGHT$(X$,1)) ELSE KR=VAL(X$) 3760 IF KR<1 OR KR>2 THEN 3730 3770 LOCATE 17,41:PRINT USING "#.##";KR 3780 LOCATE 17, 1:PRINT 8;:PRINT " "A$(8) 3790 RETURN 3800 ' data input sub 3810 FOR I=1 TO 3 3820 LOCATE 23,26+(I-1)*15:PRINT B$(I)"=";:LINE INPUT D$(I) 3830 D(I)=VAL(D$(I)) 3840 IF FLAG$="IDO" AND D(1)>90 THEN LOCATE 23,26:PRINT SPC(14):GOTO 3820 3850 IF FLAG$="KDO" AND D(1)>180 THEN LOCATE 23,26:PRINT SPC(14):GOTO 3820 3860 IF D(2)>60 THEN LOCATE 23,41:PRINT SPC(14):GOTO 3820 3870 IF D(3)>60 THEN LOCATE 23,56:PRINT SPC(14):GOTO 3820 3880 NEXT 3890 RETURN