home *** CD-ROM | disk | FTP | other *** search
- 10 CLS: KEY OFF
- 20 SCREEN 2
- 30 WINDOW (-1000,-80)-(1000,0)
- 35 DIM X(200),Y(200)
- 40 PRINT:PRINT:PRINT:PRINT:PRINT
- 50 PRINT" ============================================
- 60 PRINT" | |
- 70 PRINT" | |
- 80 PRINT" | FSK SPECTRUM CALCULATION PROGRAM |
- 90 PRINT" | |
- 100 PRINT" | |
- 110 PRINT" ============================================
- 120 PRINT:PRINT:PRINT:PRINT"FROM HAM RADIO MAGAZINE 12/86
- 125 PRINT" ALLOW 30 SECONDS OR SO TO CALCULATE":PRINT"CTRL-BREAK TO QUIT"
- 130 PRINT:INPUT "WHAT IS DESIRED BAUD RATE";BR
- 140 PRINT:INPUT "WHAT IS DESIRED FREQUENCY SHIFT";SHIFT
- 150 GOSUB 340
- 160 PRINT:INPUT "Want continuous or discontinuous phase case (C/D)";A$
- 165 PRINT"WORKING..."
- 170 IF A$ = "D" OR A$ = "d" THEN GOSUB 640: GOTO 210
- 180 IF A$ = "C" OR A$="c" THEN GOSUB 430: GOTO 210
- 190 REM: error
- 200 PRINT:PRINT:PRINT" BOGUS INPUT, KNUCKLEHEAD....try again !
- 210 REM:==========================
- 220 REM:
- 230 REM: this is the plotting part
- 240 REM
- 250 REM:==========================
- 260 CLS
- 265 GOSUB 2000
- 270 PSET (-1000,-80)
- 280 FOR I=1 TO 200
- 290 LINE -(X(I),Y(I))
- 300 NEXT
- 310 GOTO 310
- 320 REM:==================================================
- 330 REM
- 340 REM:program fragment for calculating spectral densities
- 350 REM
- 360 REM:==================================================
- 380 PI=3.14159265#:T=1/BR: W1=9083.3*2*PI:W2=(9083.3+SHIFT)*2*PI:WS=(9083.3+SHIFT/2-1000)*2*PI
- 390 AL=(W1+W2)/2:BE=(W2-W1)/2
- 400 RETURN
- 410 REM:=========================|
- 420 REM |
- 430 REM : CONTINUOUS PHASE CASE |
- 440 REM |
- 450 REM:=========================|
- 460 FOR Z=1 TO 200
- 470 W=(2*PI*Z*10)+WS
- 480 A=W-W1
- 490 B=W-W2
- 500 C=W+W1
- 510 D=W+W2
- 520 E=W-AL
- 530 F=W+AL
- 540 G=2*SIN(A*T/2)*SIN(A*T/2)*SIN(B*T/2)*SIN(B*T/2)
- 550 H=2*SIN(C*T/2)*SIN(C*T/2)*SIN(D*T/2)*SIN(D*T/2)
- 560 I=(1/A-1/B)*(1/A-1/B)
- 570 J=(1/C-1/D)*(1/C-1/D)
- 580 K=T*(1-2*COS(E*T)*COS(BE*T)+COS(BE*T)*COS(BE*T))
- 590 L=T*(1-2*COS(F*T)*COS(BE*T)+COS(BE*T)*COS(BE*T))
- 600 M=G*I/K+H*J/L
- 610 Y(Z)=10*LOG(M)/LOG(10): X(Z)=(Z-100)*10
- 620 NEXT Z
- 630 RETURN
- 631 REM:=================================
- 632 REM |
- 633 REM: Discontinuous Phase Case |
- 634 REM |
- 635 REM:=================================
- 640 FOR Z=1 TO 200
- 650 A=WS+Z*20*PI-W1:B=WS+Z*20*PI+W1:C=WS+Z*20*PI-W2:D=WS+Z*20*PI+W2
- 660 A1=(SIN(A*T/2))*(SIN(A*T/2))
- 670 B1=(SIN(B*T/2))*(SIN(B*T/2))
- 680 C1=(SIN(C*T/2))*(SIN(C*T/2))
- 690 D1=(SIN(D*T/2))*(SIN(D*T/2))
- 700 E=A1/(A*A)+B1/(B*B)+C1/(C*C)+D1/(D*D)
- 710 Y(Z)=10*LOG(E)/LOG(10): X(Z)=(Z-100)*10
- 720 NEXT Z
- 730 RETURN
- 2000 REM : LINE DRAWING ROUTINE
- 2010 FOR Y=-80 TO 0 STEP 10
- 2020 LINE(-1000,Y)-(1000,Y)
- 2030 NEXT
- 2040 FOR X=-1000 TO 1000 STEP 100
- 2050 LINE(X,-80)-(X,0)
- 2060 NEXT
- 2070 RETURN
-