home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / design1 / s-yzht.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1979-12-31  |  6.6 KB  |  127 lines

  1. 10  PRINT CHR$(26): PRINT "S-YZHT PROGRAM BY A. KATZ, TSC V1.2 2/17/86
  2. 30  DIM SR(2,2), SX(2,2), SM(2,2), SA(2,2), ZR(2,2), ZX(2,2)
  3. 40  DIM ZM(2,2), ZA(2,2), YR(2,2), YX(2,2), YM(2,2), YA(2,2)
  4. 50  DIM HR(2,2), HX(2,2), HM(2,2), HA(2,2): PI=4*ATN(1): DG=180/PI: Z0=50
  5. 55  DIM TR(2,2), TX(2,2), TM(2,2), TA(2,2)
  6. 60  REM COMPLEX ARITHMATIC SUBROUTEENS
  7. 70  DEF FNMR(AR,AX,BR,BX)=AR*BR-AX*BX
  8. 80  DEF FNMX(AR,AX,BR,BX)=AR*BX+AX*BR
  9. 90  DEF FNDR(AR,AX,BR,BX)=(AR*BR+AX*BX)/(BR^2+BX^2)
  10. 100  DEF FNDX(AR,AX,BR,BX)=(AX*BR-AR*BX)/(BR^2+BX^2)
  11. 110  DEF FNMG(AR,AX)=SQR(AR^2+AX^2)
  12. 120  DEF FNAG(AR,AX)=DG*(ATN(AX/AR)-(SGN(AR)-1)*PI/2)
  13. 140  DEF FNR(MG,AG)=MG*COS(AG/DG)
  14. 150  DEF FNX(MG,AG)=MG*SIN(AG/DG)
  15. 160  REM PARAMERER CONVERSION PROGRAM
  16. 170  PRINT: PRINT "PROGRAM FOR CALCULATING T, Z, Y, AND H FROM S PARAMETERS"
  17. 180  PRINT "ANGLES IN DEGREES": PRINT
  18. 190  INPUT "PARAMETER FORM = ('POL' OR 'RECT' OR 'FILE')"; Q$: PRINT
  19. 200  IF Q$="POL" THEN 210 ELSE IF Q$="RECT" THEN 270  ELSE IF Q$="FILE" THEN 202 ELSE 190
  20. 202  PRINT: INPUT "PARAMETER FILE NAME"; F$: PRINT: F$=F$+".S"
  21. 205  OPEN "I",#1,F$: FOR I=1 TO 2: FOR J=1 TO 2: INPUT#1,SR(I,J),SX(I,J),SM(I,J),SA(I,J): NEXT J: NEXT I: CLOSE#1: GOTO 330
  22. 210  FOR I=1 TO 2: FOR J=1 TO 2
  23. 220  PRINT "MAG OF S("; I; ","; J; ")=";: INPUT SM(I,J)
  24. 230  PRINT "ANG OF S("; I; ","; J; ")=";: INPUT SA(I,J)
  25. 240  SR(I,J)=FNR(SM(I,J),SA(I,J)): PRINT "REAL S("; I; ","; J; ")="; SR(I,J)
  26. 250  SX(I,J)=FNX(SM(I,J),SA(I,J)): PRINT "IMAG. S("; I; ","; J; ")="; SX(I,J)
  27. 260  PRINT: NEXT: NEXT: GOTO 330
  28. 270  FOR I=1 TO 2: FOR J=1 TO 2
  29. 280  PRINT "REAL OF S("; I; ","; J; ")=";: INPUT SR(I,J)
  30. 290  PRINT "IMG OF S("; I; ","; J; ")=";: INPUT SX(I,J)
  31. 300  SM(I,J)=FNMG(SR(I,J),SX(I,J)): PRINT "MAG S("; I; ","; J; ")="; SM(I,J)
  32. 310  SA(I,J)=FNAG(SR(I,J),SX(I,J)): PRINT "ANGLE S("; I; ","; J; ")="; SA(I,J)
  33. 320  PRINT: NEXT: NEXT
  34. 330  PRINT: INPUT "CONVERT S TO (T, Z, Y OR H)"; Q$
  35. 340  IF Q$="END" THEN END
  36. 350  IF Q$="Z" THEN 360 ELSE IF Q$="Y" THEN 550 ELSE IF Q$="H"   THEN 740 ELSE IF Q$="T" THEN 950 ELSE 330
  37. 355  REM Z PARAMETER CONVERSION CALC
  38. 360  NR=FNMR((1+SR(1,1)),SX(1,1),(1-SR(2,2)),-SX(2,2))+FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  39. 370  NX=FNMX((1+SR(1,1)),SX(1,1),(1-SR(2,2)),-SX(2,2))+FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  40. 380  DR=FNMR((1-SR(1,1)),-SX(1,1),(1-SR(2,2)),-SX(2,2))-FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  41. 390  DX=FNMX((1-SR(1,1)),-SX(1,1),(1-SR(2,2)),-SX(2,2))-FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  42. 400  ZR(1,1)=Z0*FNDR(NR,NX,DR,DX): ZX(1,1)=Z0*FNDX(NR,NX,DR,DX)
  43. 410  NR=2*SR(1,2): NX=2*SX(1,2)
  44. 420  ZR(1,2)=Z0*FNDR(NR,NX,DR,DX): ZX(1,2)=Z0*FNDX(NR,NX,DR,DX)
  45. 430  NR=2*SR(2,1): NX=2*SX(2,1)
  46. 440  ZR(2,1)=Z0*FNDR(NR,NX,DR,DX): ZX(2,1)=Z0*FNDX(NR,NX,DR,DX)
  47. 450  NR=FNMR((1+SR(2,2)),SX(2,2),(1-SR(1,1)),-SX(1,1))+FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  48. 460  NX=FNMX((1+SR(2,2)),SX(2,2),(1-SR(1,1)),-SX(1,1))+FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  49. 470  ZR(2,2)=Z0*FNDR(NR,NX,DR,DX): ZX(2,2)=Z0*FNDX(NR,NX,DR,DX)
  50. 480  FOR I=1 TO 2: FOR J=1 TO 2: PRINT
  51. 490  PRINT "REAL Z("; I; ","; J; ")="; ZR(I,J)
  52. 500  PRINT "IMG Z("; I; ","; J; ")="; ZX(I,J)
  53. 510  ZM(I,J)=FNMG(ZR(I,J),ZX(I,J)): ZA(I,J)=FNAG(ZR(I,J),ZX(I,J))
  54. 520  PRINT "MAG Z("; I; ","; J; ")="; ZM(I,J)
  55. 530  PRINT "ANG Z("; I; ","; J; ")="; ZA(I,J): NEXT: NEXT
  56. 532  PRINT: INPUT "WANT TO SAVE FILE (Y OR N)"; Q$
  57. 534  IF Q$="N" THEN 330 ELSE INPUT "FILE NAME"; F$: F$=F$+".Z"
  58. 536  OPEN "O",#1,F$: FOR I=1 TO 2: FOR J=1 TO 2: PRINT#1,ZR(I,J),ZX(I,J),ZM(I,J),ZA(I,J): NEXT J: NEXT I
  59. 538  CLOSE #1: GOTO 330
  60. 540  REM Y PARAMETER CALC
  61. 550  NR=FNMR((1+SR(2,2)),SX(2,2),(1-SR(1,1)),-SX(1,1))+FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  62. 560  NX=FNMX((1+SR(2,2)),SX(2,2),(1-SR(1,1)),-SX(1,1))+FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  63. 570  DR=FNMR((1+SR(1,1)),SX(1,1),(1+SR(2,2)),SX(2,2))-FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  64. 580  DX=FNMX((1+SR(1,1)),SX(1,1),(1+SR(2,2)),SX(2,2))-FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  65. 590  YR(1,1)=FNDR(NR,NX,DR,DX)/Z0: YX(1,1)=FNDX(NR,NX,DR,DX)/Z0
  66. 600  NR=-2*SR(1,2): NX=-2*SX(1,2)
  67. 610  YR(1,2)=FNDR(NR,NX,DR,DX)/Z0: YX(1,2)=FNDX(NR,NX,DR,DX)/Z0
  68. 620  NR=-2*SR(2,1): NX=-2*SX(2,1)
  69. 630  YR(2,1)=FNDR(NR,NX,DR,DX)/Z0: YX(2,1)=FNDX(NR,NX,DR,DX)/Z0
  70. 640  NR=FNMR((1+SR(1,1)),SX(1,1),(1-SR(2,2)),-SX(2,2))+FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  71. 650  NX=FNMX((1+SR(1,1)),SX(1,1),(1-SR(2,2)),-SX(2,2))+FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  72. 660  YR(2,2)=FNDR(NR,NX,DR,DX)/Z0: YX(2,2)=FNDX(NR,NX,DR,DX)/Z0
  73. 670  FOR I=1 TO 2: FOR J=1 TO 2: PRINT
  74. 680  PRINT "REAL Y("; I; ","; J; ")="; YR(I,J)
  75. 690  PRINT "IMG Y("; I; ","; J; ")="; YX(I,J)
  76. 700  YM(I,J)=FNMG(YR(I,J),YX(I,J)): YA(I,J)=FNAG(YR(I,J),YX(I,J))
  77. 710  PRINT "MAG Y("; I; ","; J; ")="; YM(I,J)
  78. 720  PRINT "ANG Y("; I; ","; J; ")="; YA(I,J): NEXT: NEXT
  79. 722  PRINT: INPUT "WANT TO SAVE FILE (Y OR N)"; Q$
  80. 724  IF Q$="N" THEN 330 ELSE INPUT "FILE NAME"; F$: F$=F$+".Y"
  81. 726  OPEN "O",#1,F$: FOR I=1 TO 2: FOR J=1 TO 2: PRINT#1,YR(I,J),YX(I,J),YM(I,J),YA(I,J): NEXT J: NEXT I
  82. 728  CLOSE #1: GOTO 330
  83. 730  REM H PARAMETER CALC
  84. 740  NR=FNMR((1+SR(1,1)),SX(1,1),(1+SR(2,2)),SX(2,2))-FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  85. 750  NX=FNMX((1+SR(1,1)),SX(1,1),(1+SR(2,2)),SX(2,2))-FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  86. 760  DR=FNMR((1-SR(1,1)),-SX(1,1),(1+SR(2,2)),SX(2,2))+FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  87. 770  DX=FNMX((1-SR(1,1)),-SX(1,1),(1+SR(2,2)),SX(2,2))+FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  88. 780  HR(1,1)=Z0*FNDR(NR,NX,DR,DX): HX(1,1)=Z0*FNDX(NR,NX,DR,DX)
  89. 790  NR=2*SR(1,2): NX=2*SX(1,2)
  90. 800  HR(1,2)=FNDR(NR,NX,DR,DX): HX(1,2)=FNDX(NR,NX,DR,DX)
  91. 810  NR=-2*SR(2,1): NX=-2*SX(2,1)
  92. 820  HR(2,1)=FNDR(NR,NX,DR,DX): HX(2,1)=FNDX(NR,NX,DR,DX)
  93. 830  NR=FNMR((1-SR(2,2)),-SX(2,2),(1-SR(1,1)),-SX(1,1))-FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  94. 840  NX=FNMX((1-SR(2,2)),-SX(2,2),(1-SR(1,1)),-SX(1,1))-FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  95. 850  HR(2,2)=FNDR(NR,NX,DR,DX)/Z0: HX(2,2)=FNDX(NR,NX,DR,DX)/Z0
  96. 860  FOR I=1 TO 2: FOR J=1 TO 2: PRINT
  97. 870  PRINT "REAL H("; I; ","; J; ")="; HR(I,J)
  98. 880  PRINT "IMG H("; I; ","; J; ")="; HX(I,J)
  99. 890  HM(I,J)=FNMG(HR(I,J),HX(I,J)): HA(I,J)=FNAG(HR(I,J),HX(I,J))
  100. 900  PRINT "MAG H("; I; ","; J; ")="; HM(I,J)
  101. 910  PRINT "ANG H("; I; ","; J; ")="; HA(I,J): NEXT: NEXT
  102. 912  PRINT: INPUT "WANT TO SAVE FILE (Y OR N)"; Q$
  103. 914  IF Q$="N" THEN 330 ELSE INPUT "FILE NAME"; F$: F$=F$+".H"
  104. 916  OPEN "O",#1,F$: FOR I=1 TO 2: FOR J=1 TO 2: PRINT#1,HR(I,J),HX(I,J),HM(I,J),HA(I,J): NEXT J: NEXT I
  105. 918  CLOSE #1: GOTO 330
  106. 950  REM T PARAMETER CALC
  107. 960  NR=FNMR(SR(1,1),SX(1,1),SR(2,2),SX(2,2))-FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  108. 970  NX=FNMX(SR(1,1),SX(1,1),SR(2,2),SX(2,2))-FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
  109. 980  TX(1,1)=-FNDX(NR,NX,SR(2,1),SX(2,1))
  110. 990  TR(1,1)=-FNDR(NR,NX,SR(2,1),SX(2,1))
  111. 1000  TR(1,2)=FNDR(SR(1,1),SX(1,1),SR(2,1),SX(2,1))
  112. 1010  TX(1,2)=FNDX(SR(1,1),SX(1,1),SR(2,1),SX(2,1))
  113. 1020  TR(2,1)=-FNDR(SR(2,2),SX(2,2),SR(2,1),SX(2,1))
  114. 1030  TX(2,1)=-FNDX(SR(2,2),SX(2,2),SR(2,1),SX(2,1))
  115. 1040  TR(2,2)=FNDR(1,0,SR(2,1),SX(2,1))
  116. 1050  TX(2,2)=FNDX(1,0,SR(2,1),SX(2,1))
  117. 1060  FOR I=1 TO 2: FOR J=1 TO 2: PRINT
  118. 1070  PRINT "REAL T("; I; ","; J; ")="; TR(I,J)
  119. 1080  PRINT "IMG T("; I; ","; J; ")="; TX(I,J)
  120. 1090  TM(I,J)=FNMG(TR(I,J),TX(I,J)): TA(I,J)=FNAG(TR(I,J),TX(I,J))
  121. 1100  PRINT "MAG T("; I; ","; J; ")="; TM(I,J)
  122. 1110  PRINT "ANG T("; I; ","; J; ")="; TA(I,J): NEXT: NEXT
  123. 1112  PRINT: INPUT "WANT TO SAVE FILE (Y OR N)"; Q$
  124. 1114  IF Q$="N" THEN 330 ELSE INPUT "FILE NAME"; F$: F$=F$+".T"
  125. 1116  OPEN "O",#1,F$: FOR I=1 TO 2: FOR J=1 TO 2: PRINT#1,TR(I,J),TX(I,J),TM(I,J),TA(I,J): NEXT J: NEXT I
  126. 1118  CLOSE #1: GOTO 330
  127.