Version 4 SHEET 1 1848 680 WIRE 0 224 0 160 WIRE 32 160 0 160 WIRE 832 176 816 176 WIRE 912 176 832 176 WIRE 1040 176 992 176 WIRE 1040 176 1040 48 WIRE 1056 176 1040 176 WIRE 1056 272 1056 224 WIRE 1056 288 1056 272 WIRE 1088 48 1040 48 WIRE 1104 160 1104 128 WIRE 1104 272 1056 272 WIRE 1104 272 1104 240 WIRE 1232 48 1152 48 WIRE 1232 128 1104 128 WIRE 1232 128 1232 48 WIRE 1312 128 1232 128 WIRE 1344 128 1312 128 FLAG 0 304 0 FLAG 32 160 rnd FLAG 1056 288 0 FLAG 832 176 rnd FLAG 1312 128 out SYMBOL bv 0 208 R0 WINDOW 123 24 132 Left 0 SYMATTR InstName B1 SYMATTR Value V=SQRT(-2*LN(1E-4+rand(time*1.07*ft)))*SIN(2*PI*rand(time*0.93*ft)) SYMBOL res 1008 192 M270 WINDOW 0 32 56 VTop 0 WINDOW 3 0 56 VBottom 0 SYMATTR InstName R1 SYMATTR Value 1 SYMBOL e2 1104 144 R0 SYMATTR InstName E1 SYMATTR Value 100MEG SYMBOL cap 1152 32 R90 WINDOW 0 0 32 VBottom 0 WINDOW 3 32 32 VTop 0 SYMATTR InstName C1 SYMATTR Value 1 TEXT 174 162 Left 0 !.tran 0 1000u 0 .5n TEXT -24 -160 Left 0 ;From LTSPICE-group:\n"This is the Box-Mueller algorithm for Gaussian Noise. You need two\nindependent random variables. The factors 1.07 and 0.93 is an attempt\nto do this. You will need to alter these, and the time step to get\nwhat you want. You also may need to scale to get the correct rms\nvalue in your noise bandwidth.\nIt's not perfect."\n \nFactors .999997 and .50001 correct for the math. problem at LN(0).\nOriginal formula is:\nV=SQRT(-2*LN(white(time*1.07G)+0.5))*COS(2*PI*(white(time*0.93G+0.5))) TEXT 208 232 Left 0 !.params ft=1e9 TEXT -32 392 Left 0 ;better formula (more gauss-like distribution):\nV=SQRT(-2*LN(1E-4+rand(time*1.07*ft)))*SIN(2*PI*rand(time*0.93*ft))\nthe 1E-4 factor can be changed to adjust for the peak value! TEXT 504 232 Left 0 !.ic v(out)=0 TEXT 864 -104 Left 0 ;Note that the output noise is integrated thermal noise, see Ex. 8.14 on pages\n245-246. The PSD of this noise has a 1/f^2 shape. It's useful to look at the\ntime domain view of this type of noise to see how it varies (note the low frequency\nshape).