100 REM PINK.BAS A PROGRAM TO MODEL NOISE THAT FALLS AT LESS THAN 20DB/DECADE 110 REM REVISION #2, 12/16/1989 120 DIM R$(20),L$(20) 121 CLS 122 PRINT"***************************************" 124 PRINT"* PINK NOISE MODEL GENERATOR *" 126 PRINT"* Version 1.0 December, 1989 *" 128 PRINT"* Russ Kincaid Milford, NH *" 129 PRINT"***************************************" 130 DATA R0,R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12,R13,R14,R15,R16,R17,R18,R19,R20 140 FOR J=0 TO 20:READ R$(J):NEXT J 150 DATA L0,L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,L16,L17,L18,L19,L20 160 FOR J=0 TO 20:READ L$(J):NEXT J 170 K=0: KTB=4*1.38E-23*300: PI=3.14162 180 PRINT: PRINT,"VOLTAGE NOISE PROFILE IN nV/RT HZ:":K=1E-12:GOSUB 230 190 GOSUB 470 200 PRINT"CURRENT NOISE PROFILE IN pA/RT HZ:":K=1E-12:GOSUB 230 210 GOSUB 560 220 PRINT:PRINT"SEE THE FILE NOISE.MDL ":GOTO 660 230 FOR J=0 TO 10 240 PRINT"NOISE LEVEL AT ";10^J;"hZ";:INPUT N(J) : N(J)=N(J)*K*1.41 260 IF N(J)=0 THEN 280 270 NEXT J 275 REM 280 IF J=0 THEN RETURN 282 N(J-1)=N(J-1)/1.41 285 IF A=0 THEN KR=J: A=1 290 J=J-1: R(J)=KTB/N(J)^2 300 FOR Q=J-1 TO 0 STEP -1 : W=2*PI*10^Q : N2=N(J)^2 310 FOR T=J-1 TO Q+1 STEP -1: N2=N2+N(T)^2:NEXT T 320 R(Q)= KTB/(N(Q)^2-N2) : L(Q)= R(Q)/W 330 NEXT Q 464 RETURN 465 REM 470 OPEN "NOISE.MDL" FOR OUTPUT AS #1 480 PRINT#1,".SUBCKT PINK 1 2 3" 490 PRINT#1,R$(J);" 0 4 ";R(J) 500 FOR Q=0 TO J-1 510 PRINT#1,R$(Q);" 4 ";6+Q;" ";R(Q) 520 PRINT#1,L$(Q);6+Q;" 0 ";L(Q) 530 NEXT Q 535 PRINT#1,"VV 4 0 0" 540 PRINT#1,"H1 1 2 VV 1E3" 550 RETURN 560 IF J=0 THEN PRINT#1,".ENDS PINK":CLOSE#1:RETURN 570 PRINT#1,R$(KR);" 0 5 ";R(J) 580 FOR Q=0 TO J-1 590 PRINT#1,R$(Q+KR+1);" 5 ";6+Q+KR;" ";R(Q) 600 PRINT#1,L$(Q+KR+1);6+Q+KR;" 0 ";L(Q) 610 NEXT Q 615 PRINT#1,"VI 5 0 0 " 620 PRINT#1,"F1 2 3 VI 1" 630 PRINT#1,".ENDS PINK" 640 CLOSE#1 650 RETURN 660 END