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


    Source: geocities.com/russlk/spice

               ( geocities.com/russlk)