home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HAM Radio 1
/
HamRadio.cdr
/
tech
/
design3
/
intermod.asc
< prev
next >
Wrap
Text File
|
1986-10-15
|
3KB
|
74 lines
100 CLS :REM "INTERMOD"
110 PRINT TAB(15);"**** INTERMODULATION / HARMONIC PRODUCT TABLE ****" :PRINT
120 REM M.GOLDFARB -1984 REVISED by V.HEESEN -1986
130 PRINT "THIS PROGRAM COMPUTES the SUM & DIFFERENCE INTERMODULATION PRODUCTS";
140 PRINT " from a MIXER" :PRINT "or other NON-LINEAR DEVICE. NOTE: LO & RF";
150 PRINT " INPUTS may be SWEPT or WIDEBAND."
160 PRINT :BEEP :PRINT "HARD COPY REQUIRED (Y/N)? "
170 P$=INKEY$ :IF P$="" THEN 170
180 IF P$="Y" THEN 190 ELSE IF P$<>"N" THEN 170
190 PRINT :BEEP :INPUT "ENTER: LO FREQUENCY RANGE (MHz) (Low,High)";L1,L2
200 PRINT :BEEP :INPUT " RF FREQUENCY RANGE (MHz) (Low,High)";R1,R2
210 PRINT :BEEP :INPUT " OUTPUT FREQ. RANGE (MHz) (Low,High)";I1,I2
220 PRINT :BEEP :INPUT " MAXIMUM PRODUCT ORDER (N+M)";Q
230 L=(L1+L2)/2 'LO Center freq.
240 R=(R1+R2)/2 'RF Center freq.
250 B2=(R2-R1)/(R*2)
260 A1$="Order RF LO Low Product High Product Product in"
270 B$="(N+M) (M) (N) (MR-NL) (MR+NL) Output Band"
280 C$=" ## ## ## ####### to ####### ####### to ####### \ \"
290 D$="_____________________________________________________________________"
300 CLS :PRINT TAB(17);"*** INTERMODULATION/HARMONIC PRODUCT TABLE ***" :PRINT
310 IF P$="N" THEN 370
320 LPRINT TAB(17);"*** INTERMODULATION/HARMONIC PRODUCT TABLE ***" :LPRINT
330 LPRINT "LO FREQUENCY RANGE (MHz) =";L1;" to ";L2
340 LPRINT "RF FREQUENCY RANGE (MHz) =";R1;" to ";R2
350 LPRINT "OUTPUT FREQUENCY RANGE (MHz)=";I1;" to ";I2 :LPRINT :LPRINT
360 LPRINT A1$ :LPRINT B$
370 PRINT A1$ :PRINT B$ :PRINT D$
380 I=8 'PAGE COUNTER
390 M=0 'INITIALIZE RF COUNTER
400 N=Q 'START LOOP WITH N=MAX.ORDER
410 GOSUB 690 'CALCULATE PRODUCTS FOR GIVEN ORDER "Q"
420 A$="N" :REM TEST FOR SPUR IN THE OUTPUT BAND
430 IF U1>=I1 AND U1<=I2 THEN A$="Y"
440 IF U2>=I1 AND U2<=I2 THEN A$="Y"
450 IF U1>=I1 AND U2<=I2 THEN A$="Y"
460 IF U1<=I1 AND U2>=I2 THEN A$="Y"
470 IF M=1 AND N=1 THEN A$="OUTPUT"
480 IF N+M=4 THEN PRINT :I=I-1
490 IF N+M=4 AND P$="Y" THEN LPRINT
500 IF I=0 THEN PRINT :INPUT "PRESS <ENTER> TO CONTINUE";X$
510 IF I>0 THEN 560
520 CLS
530 PRINT A1$ :PRINT B$ :PRINT D$
540 PRINT :I=8
550 IF P$="Y" THEN LPRINT
560 PRINT USING C$;N+M,M,N,U1,U2,V1,V2,A$
570 IF P$="Y" THEN LPRINT USING C$;N+M,M,N,U1,U2,V1,V2,A$
580 I=I-1
590 N=N-1
600 IF M=0 AND N=0 THEN 620
610 IF N>=0 THEN 410
620 M=M+1 :N=Q-M
630 PRINT
640 IF M<=Q THEN 410
650 PRINT :IF P$="Y" THEN LPRINT CHR$(10)
660 PRINT :BEEP :PRINT "CONTINUE (Y/N)?"
670 E$=INKEY$ :IF E$="" THEN 670
680 IF E$="Y" THEN RUN ELSE IF E$<>"N" THEN 670 ELSE END
690 REM SUBROUTINE :CALCSPUR
700 IF M*R>=N*L THEN X=1 ELSE X=0
710 Y=0
720 IF X=0 AND N*L1>M*R2 THEN Y=1
730 IF X=1 AND M*R1>N*L2 THEN Y=1
740 IF Y=0 THEN U1=0
750 IF Y=1 AND X=0 THEN U1=N*L1-M*R2
760 IF Y=1 AND X=1 THEN U1=M*R1-N*L2
770 IF X=0 THEN U2=N*L2-M*R1 ELSE U2=M*R2-N*L1
780 V1=M*R1+N*L1
790 V2=M*R2+N*L2
800 IF M=0 THEN U1=N*L1
810 IF N=0 THEN U1=M*R1
820 RETURN