home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HAM Radio 1
/
HamRadio.cdr
/
misc
/
fsk
/
newfsk.bas
Wrap
BASIC Source File
|
1987-04-19
|
3KB
|
90 lines
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