home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol074 / fprod1.bas < prev    next >
Encoding:
BASIC Source File  |  1984-04-29  |  7.0 KB  |  284 lines

  1. 100    '****************************************************************
  2. 110    '*      DETERMINES THE SUPURIOUS PRODUCTS FROM 3 SPECIFIED    *
  3. 120    '*            FREQUENCIES                *
  4. 130    '*                                *
  5. 140    '*         FIXED PARAMETER, MULTI CHANNEL VERSION        *
  6. 150    '*                                *
  7. 160    '*    By H. Aicher, from "News from Rhode and Schwarz",    *
  8. 170    '*         ISSN 0028-9108 (1981) No. 94 pp 30-31        *
  9. 180    '*                                *
  10. 190    '*      Keyed in AND various format modifications by        *
  11. 200    '*      Bill Bolton, Channel 0/28, Sydney, AUSTRALIA        *
  12. 210    '*            February 26, 1982            *
  13. 220    '****************************************************************
  14. 230    '
  15. 240    PRINT
  16. 250    PRINT
  17. 260    PROMPT$="PRODUCTS OF THREE FREQUENCIES"
  18. 270    PRINT TAB((79 - (LEN(PROMPT$)))/2);PROMPT$
  19. 280    PRINT
  20. 290    '
  21. 300    ' S = Channel spacing
  22. 310    ' C0= lower channel
  23. 320    ' I = vision sound spacing
  24. 330    Z = 38.9
  25. 340    B=8
  26. 350    I=5.5
  27. 360    C0=2
  28. 370    S=7
  29. 380    M1 = 3
  30. 390    M2 = 3
  31. 400    M3 = 2
  32. 410    F1 = 48.25
  33. 420    '
  34. 430    FOR Q = 1 TO 3
  35. 440        F3 = F1 + Z
  36. 450        PRINT
  37. 460        F2 = F1 + I
  38. 470        PRINT "CHANNEL ";C0
  39. 480        PRINT
  40. 490        PRINT "VISION CARRIER = ";F1,
  41. 500        PRINT "SOUND CARRIER = ";F2,
  42. 510        PRINT "OSC = ";F3
  43. 520        PRINT
  44. 530        '
  45. 540        'Display the column headings
  46. 550        '
  47. 560        PRINT
  48. 570        PRINT
  49. 580        PRINT "N1"; TAB(5);"N2"; TAB(9);"N3"; TAB(14);"N1*F1";
  50. 590        PRINT TAB(26);"N2*F2"; TAB(38);"N3*F3";
  51. 600        PRINT TAB(51);"DIFFERENCE"; TAB(64);"PRODUCT"
  52. 610        PRINT
  53. 620        '
  54. 630        'The condition for a spurious product falling within
  55. 640        'within the IF region with a sideband of BW is:
  56. 650        '     || +- N1*F1 +- N2*F2 | - IF | <= BW
  57. 660        'Calculate the column enteries and display them
  58. 670        '
  59. 680        FOR N1 = 0 TO M1
  60. 690            FOR N2 = 0 TO M2
  61. 700                FOR N3 = 0 TO M3
  62. 710                '
  63. 720                'Calculate multiples of individual frequencies
  64. 730                '
  65. 740                V2 = N2 * F2
  66. 750                V3 = N3 * F3
  67. 760                '
  68. 770                V1 = N1 * F1
  69. 780                '
  70. 790                'Calculate sum frequencies
  71. 800                '
  72. 810                S1 = V1 + V2
  73. 820                S2 = V1 + V3
  74. 830                S3 = V2 + V3
  75. 840                S4 = V1 + V2 + V3
  76. 850                '
  77. 860                'Calculate difference frequencies
  78. 870                '
  79. 880                D1 = V1 - V2
  80. 890                E2 = V2 - V1
  81. 900                D2 = V1 - V3
  82. 910                E2 = V3 - V1
  83. 920                D3 = V2 - V3
  84. 930                E3 = V3 - V2
  85. 940                D4 = S1 - V3
  86. 950                E4 = V3 - S1
  87. 960                D5 = S2 - V2
  88. 970                E5 = V2 - S2
  89. 980                D6 = S3 - V1
  90. 990                E6 = V1 - S3
  91. 1000                '
  92. 1010                'Check if product within bandwidth
  93. 1020                '
  94. 1030                IF V1 = 0 OR N2 > 0 OR N3 > 0 THEN
  95.                     1110
  96. 1040                D = V1 - Z
  97. 1050                IF ABS(D) > B THEN
  98.                     1110
  99. 1060                PRINT N1;TAB(5);" .";TAB(9);" .";TAB(13);V1
  100. 1070                PRINT TAB(25);" ."; TAB(38);" ."; TAB(51);D; TAB(64);"V1";
  101. 1080                '
  102. 1090                '**************************************************
  103. 1100                '
  104. 1110                IF V2 = 0 OR N1 > 0 OR N3 > 0 THEN
  105.                     1190
  106. 1120                D2 = V2 - Z
  107. 1130                IF ABS(D) > B THEN
  108.                     1190
  109. 1140                PRINT " .";TAB(5);N2;TAB(9);" .";TAB(13);" .";
  110. 1150                PRINT TAB(25);V2;TAB(38);" .";TAB(51);D;TAB(64);"V2"
  111. 1160                '
  112. 1170                '***************************************************
  113. 1180                '
  114. 1190                IF V3 = 0 OR N1 > 0 OR N2 > 0 THEN
  115.                     1270
  116. 1200                D = V3 - Z
  117. 1210                IF ABS(D)>B THEN
  118.                     1270
  119. 1220                PRINT " ";TAB(5);" .";TAB(9);N3;TAB(13);" .";
  120. 1230                PRINT TAB(25);" .";TAB(38);V3;TAB(51);D;TAB(64);"V3"
  121. 1240                '
  122. 1250                '***************************************************
  123. 1260                '
  124. 1270                IF V1 = 0 OR V2 = 0 OR N3 > 0 THEN
  125.                     1350
  126. 1280                D = S1 - Z
  127. 1290                IF ABS(D)>B THEN
  128.                     1350
  129. 1300                 GOSUB 3000
  130. 1310                PRINT TAB(64);"V1+V2"
  131. 1320                '
  132. 1330                '***************************************************
  133. 1340                '
  134. 1350                IF V1 = 0 OR V3 = 0 OR N2 > 0 THEN
  135.                     1430
  136. 1360                D = S2 - Z
  137. 1370                IF ABS(D)>B THEN
  138.                     1430
  139. 1380                GOSUB 3040
  140. 1390                PRINT TAB(64);"V1+V3"
  141. 1400                '
  142. 1410                '***************************************************
  143. 1420                '
  144. 1430                IF V2 = 0 OR V3 = 0 OR N1 > 0 THEN
  145.                     1510
  146. 1440                 D = S3 - Z
  147. 1450                IF ABS(D)>B THEN
  148.                     1510
  149. 1460                GOSUB 3080
  150. 1470                PRINT TAB(64);"V2+V3"
  151. 1480                '
  152. 1490                '***************************************************
  153. 1500                '
  154. 1510                IF V1 = 0 OR V2 = 0 OR V3 = 0 THEN
  155.                     1590
  156. 1520                D = S4 - Z
  157. 1530                IF ABS(D)>B THEN
  158.                     1590
  159. 1540                GOSUB 3120
  160. 1550                PRINT TAB(64);"V1+V2+V3"
  161. 1560                '
  162. 1570                '***************************************************
  163. 1580                '
  164. 1590                IF V1 = 0 OR V2 = 0 OR N3 > 0 THEN
  165.                     1710
  166. 1600                D = D1 - Z
  167. 1610                IF ABS(D)>B THEN
  168.                     1640
  169. 1620                GOSUB 3000
  170. 1630                PRINT TAB(64);"V1-V2"
  171. 1640                D = E1 -Z
  172. 1650                IF ABS(D)>B THEN
  173.                     1710
  174. 1660                GOSUB 3000
  175. 1670                PRINT TAB(64);"V2-V1"
  176. 1680                '
  177. 1690                '***************************************************
  178. 1700                '
  179. 1710                IF V1 = 0 OR V3 = 0 OR N2 > 0 THEN
  180.                     1830
  181. 1720                D = D2 - Z
  182. 1730                IF ABS(D)>B THEN
  183.                     1760
  184. 1740                GOSUB 3040
  185. 1750                PRINT TAB(64);"V1-V3"
  186. 1760                D = E2 - Z
  187. 1770                IF ABS(D)>B THEN
  188.                     1830
  189. 1780                GOSUB 3040
  190. 1790                PRINT TAB(64);"V3-V1"
  191. 1800                '
  192. 1810                '*************************************************
  193. 1820                '
  194. 1830                IF V2 = 0 OR V3 = 0 OR N1 > 0 THEN
  195.                     1980
  196. 1840                D = D3 - Z
  197. 1850                IF ABS(D)>B THEN
  198.                     1910
  199. 1860                GOSUB 3080
  200. 1870                PRINT TAB(64);"V2-V3"
  201. 1880                '
  202. 1890                '************************************************
  203. 1900                '
  204. 1910                D = E3 - Z
  205. 1920                IF ABS(D)>B THEN
  206.                     1980
  207. 1930                GOSUB 3080
  208. 1940                PRINT TAB(64);"V3-V2"
  209. 1950                '
  210. 1960                '************************************************
  211. 1970                '
  212. 1980                IF V1 = 0 OR V2 = 0 OR V3 = 0 THEN
  213.                     2370
  214. 1990                D = D4 - Z
  215. 2000                IF ABS(D)>B THEN
  216.                     2060
  217. 2010                GOSUB 3120
  218. 2020                PRINT TAB(64);"V1+V2+V3"
  219. 2030                '
  220. 2040                '***********************************************
  221. 2050                '
  222. 2060                D = E4 - Z
  223. 2070                IF ABS(D)>B THEN
  224.                     2130
  225. 2080                GOSUB 3120
  226. 2090                PRINT TAB(64);"V3-(V1+V2)"
  227. 2100                '
  228. 2110                '***********************************************
  229. 2120                '
  230. 2130                D = D5 - Z
  231. 2140                IF ABS(D)>B THEN
  232.                     2190
  233. 2150                GOSUB 3120
  234. 2160                PRINT TAB(64);"V1+V3-V2"
  235. 2170                '
  236. 2180                '***********************************************
  237. 2190                D = E5 - Z
  238. 2200                IF ABS(D)>B THEN
  239.                     2260
  240. 2210                GOSUB 3120
  241. 2220                PRINT TAB(64);"V2-(V1+V3)"
  242. 2230                '
  243. 2240                '**********************************************
  244. 2250                '
  245. 2260                D = D6 - Z
  246. 2270                IF ABS(D)>B THEN
  247.                     2330
  248. 2280                GOSUB 3120
  249. 2290                PRINT TAB(64);"V2+V3-V1"
  250. 2300                '
  251. 2310                '*********************************************
  252. 2320                '
  253. 2330                D = E6 - Z
  254. 2340                IF ABS(D)>B THEN
  255.                     2370
  256. 2350                GOSUB 3120
  257. 2360                PRINT TAB(64);"V1-(V2+V3)"
  258. 2370                NEXT N3
  259. 2380            NEXT N2
  260. 2390        NEXT N1
  261. 2400        '
  262. 2410        PRINT
  263. 2420        C0=C0+1:F1=F1+S
  264. 2430    NEXT Q
  265. 2440    PRINT
  266. 2450    END
  267. 2460        '
  268. 2470        '
  269. 3000    PRINT N1;TAB(5);N2;TAB(9);" .";TAB(13);V1;
  270. 3010    PRINT TAB(25);V2;TAB(38);" .";TAB(51);D;
  271. 3020    RETURN
  272. 3030    '
  273. 3040    PRINT N1;TAB(5);" .";TAB(9);N3;TAB(13);V1;
  274. 3050    PRINT TAB(25);" .";TAB(38);V3;TAB(51);D;
  275. 3060    RETURN
  276. 3070    '
  277. 3080    PRINT " .";TAB(5);N2;TAB(9);N3;TAB(13);" .";
  278. 3090    PRINT TAB(25);V2;TAB(38);V3;TAB(51);D;
  279. 3100    RETURN
  280. 3110    '
  281. 3120    PRINT N1;TAB(5);N2;TAB(9);N3;TAB(13);V1;
  282. 3130    PRINT TAB(25);V2;TAB(38);V3;TAB(51);D;
  283. 3140    RETURN
  284.