100 REM THIS PROGRAM GENERATES SUBCIRCUITS FOR NOISE SOURCES 110 REM NOISE.BAS Revised 12/14/1989 120 REM WRITTEN OCT 17, 1989 BY Russ Kincaid, Milford NH 03055 130 PI=3.14162 : KTB=4*1.38E-23*300 : R = 16560 140 CLS 150 PRINT"********************************************************" 160 PRINT" NOISE CURRENT AND VOLTAGE CALCULATIONS" 170 PRINT" AND SUBCIRCUIT GENERATION" 180 PRINT:PRINT:INPUT"WHITE NOISE (1) OR PINK NOISE (2)";KIND 190 IF KIND >2 THEN PRINT"ERROR! TRY AGAIN PLEASE":GOTO 180 200 ON KIND GOTO 490, 220 210 REM PINK NOISE 220 INPUT"VOLTAGE NOISE LOWER FREQUENCY CORNER IN HZ";FVL 230 INPUT"CURRENT NOISE LOWER FREQUENCY CORNER IN HZ";FIL 240 INPUT"VOLTAGE NOISE HIGHER FREQUENCY CORNER IN HZ";FV 250 INPUT "CURRENT NOISE HIGHER FREQUENCY CORNER IN HZ";FI 260 INPUT"CONSTANT NOISE LEVEL (NV/RT HZ):";NV 270 INPUT"CONSTANT NOISE LEVEL (PA/RT HZ):";NI 280 DECADE=.4343*LOG(FV/FVL):IN2=10^DECADE*1E-12: R3=KTB/IN2^2 290 RXV=R*R3/(R-R3) : LXV=RXV/2/PI/FVL 300 DECADE=.4343*LOG(FI/FIL):IN2=10^DECADE*1E-12: R3=KTB/IN2^2 310 RXI=R*R3/(R-R3) : LXI=RXI/2/PI/FIL 320 OPEN "PNOISE.SUB" FOR OUTPUT AS #1 330 PRINT#1,"* Pink noise generator, Fcv=";FV;", Fci=";FI;", Vn=";NV;"nV/rt hz" 340 PRINT#1,"* In=";NI;"pA/rt hz. The voltage source is between 1 & 2, the" 350 PRINT#1,"* current source is between 2 & 3." 360 PRINT#1,".SUBCKT PINK 1 2 3 370 PRINT#1,"RVN 4 0 ";R 380 PRINT#1,"RXV 0 5 ";RXV 390 PRINT#1,"LXV 4 5 ";LXV 400 PRINT#1,"VN 4 0 0" 410 PRINT#1,"H1 1 2 VN ";NV*1000 420 PRINT#1,"RIN 6 0 ";R 430 PRINT#1,"RXI 0 7 ";RXI 440 PRINT#1,"LXI 6 7 ";LXI 450 PRINT#1,"VI 6 0 0" 460 PRINT#1,"F1 2 3 VI ";NI 470 PRINT#1,".ENDS PINK" : CLOSE#1: GOTO 710 480 REM WHITE NOISE 490 REM INPUT"NOISE VOLTAGE IN (1) DB/RT HZ (2) NV/RT HZ (3) UV IN A FREQ BAND";NV 500 REM ON NV GOTO 440, 450, 460 510 REM INPUT"NOISE VOLTAGE IN DB/RT HZ:";NV: NV=EXP(NV/8.686):GOTO 472 520 INPUT"NOISE VOLTAGE IN NV/RT HZ:";NV : GOTO 550 530 REM INPUT"WHAT IS THE FREQUENCY BAND ( kHZ)";BWV: BWV=BWV*1000 540 REM INPUT"NOISE VOLTAGE IN UV:";NV: NV=NV/SQR(KTB*BWV)*1000 550 REM INPUT"NOISE CURRENT IN (1) DB/RT HZ (2) pA/RT HZ (3) UA IN A FREQ BAND";NA 560 REM ON NA GOTO 476, 478, 480 570 REM INPUT"NOISE VOLTAGE IN DB/RT HZ:";NV: NV=EXP(NV/8.686):GOTO 490 580 INPUT"NOISE CURRENT IN pA/RT HZ:";NI: GOTO 610 590 REM INPUT"WHAT IS THE FREQUENCY BAND ( kHZ)";BWI: BWI=BWI*1000 600 REM INPUT"NOISE CURRENT IN UA:";PA: PA=PA/SQR(KTB*BWI)*1E6 610 OPEN "WNOISE.SUB" FOR OUTPUT AS #1 620 PRINT#1,"*NOISE SUBCIRCUIT, V=";NV;"nV/RT HZ, I=";NI;"pA/RT HZ" 630 PRINT#1,".SUBCKT WHITE 1 2 3 640 PRINT#1,"H1 1 2 VV ";NV*1000 650 PRINT#1,"RV 4 0 ";R 660 PRINT#1,"VV 4 0 0 " 670 PRINT#1,"F1 2 3 VI ";NI 680 PRINT#1,"RI 5 0 ";R 690 PRINT#1,"VI 5 0 0 " 700 PRINT#1,".ENDS WHITE" : CLOSE#1 : GOTO 710 710 PRINT:PRINT"SEE THE FILE "; 720 ON KIND GOTO 730,740 730 PRINT"WNOISE.SUB":GOTO 750 740 PRINT"PNOISE.SUB" 750 END