Problem with controlling a gaussian white noise source's characteristics, help!

Anybody have any inkling of what is going on here?

trying to make a simple 1/f gaussian white noise source that has an intercept at F0, this case approx 100Hz. I have the pdf and white noise source, very flat. To control the charactersitics and get that weird rolloff so the 'energy' is 1/f is posing some difficulties.

Thought process was to take the white noie source and put it through a filter that exhibits 1/f. I have that in the below schematic. from 0.1Hz to 100 Hz, 3 decades, the filter's output drops only 30 dB, not the standard 60 dB like a single capaictor would do. PERFECT! Running the white noise through that filter seemed like it should produce a nice 1/f down to intercept and then flat. However, run it and you will see that the FFT of the time waveform coming out drops 60dB over the three decades, not

30dB as expected.

What's going on?

I suspect there is an interaction between random waveforms and the complex value of the capacitive filter that causes the spectrum to be wrong, but ??

SimpleFiveResistorCircuit.asc:

Version 4 SHEET 1 27404 712 WIRE 336 -416 224 -416 WIRE 448 -416 336 -416 WIRE 576 -416 448 -416 WIRE 688 -416 656 -416 WIRE 768 -416 688 -416 WIRE 880 -416 848 -416 WIRE 960 -416 880 -416 WIRE 1072 -416 1040 -416 WIRE 1152 -416 1072 -416 WIRE 1264 -416 1232 -416 WIRE 1360 -416 1264 -416 WIRE 1472 -416 1440 -416 WIRE 1632 -416 1472 -416 WIRE 1648 -416 1632 -416 WIRE 688 -384 688 -416 WIRE 880 -384 880 -416 WIRE 1072 -384 1072 -416 WIRE 1264 -384 1264 -416 WIRE 1472 -384 1472 -416 WIRE 224 -336 224 -416 WIRE 336 -336 336 -416 WIRE 448 -336 448 -416 WIRE 688 -272 688 -320 WIRE 880 -272 880 -320 WIRE 1072 -272 1072 -320 WIRE 1264 -272 1264 -320 WIRE 1472 -272 1472 -320 WIRE 224 -160 224 -256 WIRE 336 -160 336 -256 WIRE 336 -160 224 -160 WIRE 448 -160 448 -256 WIRE 448 -160 336 -160 WIRE 336 -128 336 -160 WIRE 688 -128 688 -192 WIRE 880 -128 880 -192 WIRE 1072 -128 1072 -192 WIRE 1264 -128 1264 -192 WIRE 1472 -128 1472 -192 FLAG 336 -128 0 FLAG 688 -128 0 FLAG 880 -128 0 FLAG 1072 -128 0 FLAG 1264 -128 0 FLAG 1472 -128 0 FLAG 1632 -416 out SYMBOL current 224 -336 R0 WINDOW 123 24 28 Left 2 WINDOW 39 0 0 Left 2 SYMATTR Value2 AC 35500 SYMATTR InstName I1 SYMATTR Value "" SYMBOL bi2 336 -336 R0 WINDOW 3 -167 395 Left 2 SYMATTR Value I={35500*Vn*sqrt(12/5/dt)*(rand(time/dt)+rand(N+time/dt)+rand(2*N+time/dt)+rand(3*N+time/dt)+rand(4*N+time/dt)-2.5) } SYMATTR InstName B1 SYMBOL res 560 -400 R270 WINDOW 0 32 56 VTop 2 WINDOW 3 0 56 VBottom 2 SYMATTR InstName RA1 SYMATTR Value {R} SYMBOL cap 672 -384 R0 SYMATTR InstName C1 SYMATTR Value {320*C} SYMBOL res 672 -288 R0 SYMATTR InstName RB1 SYMATTR Value {R} SYMBOL res 432 -352 R0 SYMATTR InstName R1 SYMATTR Value .001 SYMBOL res 752 -400 R270 WINDOW 0 32 56 VTop 2 WINDOW 3 0 56 VBottom 2 SYMATTR InstName RA2 SYMATTR Value {10*R} SYMBOL cap 864 -384 R0 SYMATTR InstName C2 SYMATTR Value {8*C} SYMBOL res 864 -288 R0 SYMATTR InstName RB2 SYMATTR Value {10*R} SYMBOL res 944 -400 R270 WINDOW 0 32 56 VTop 2 WINDOW 3 0 56 VBottom 2 SYMATTR InstName RA3 SYMATTR Value {100*R} SYMBOL cap 1056 -384 R0 SYMATTR InstName C3 SYMATTR Value {2*C/10} SYMBOL res 1056 -288 R0 SYMATTR InstName RB3 SYMATTR Value {100*R} SYMBOL res 1136 -400 R270 WINDOW 0 32 56 VTop 2 WINDOW 3 0 56 VBottom 2 SYMATTR InstName RA4 SYMATTR Value {1000*R} SYMBOL cap 1248 -384 R0 SYMATTR InstName C4 SYMATTR Value {C/200} SYMBOL res 1248 -288 R0 SYMATTR InstName RB4 SYMATTR Value {1000*R} SYMBOL res 1344 -400 R270 WINDOW 0 32 56 VTop 2 WINDOW 3 0 56 VBottom 2 SYMATTR InstName RA5 SYMATTR Value {10000*R} SYMBOL cap 1456 -384 R0 SYMATTR InstName C5 SYMATTR Value {C/8000} SYMBOL res 1456 -288 R0 SYMATTR InstName RB5 SYMATTR Value {10000*R} TEXT 1736 -176 Left 2 !.ac dec 100 {0.1*Fstart} {10*Fstop} TEXT 1728 -136 Left 2 ;.noise V(out) Vin dec 100 1k 10MEG TEXT 1744 -416 Left 2 !.options plotwinsize=0\n.param k=1.38e-23 T=300 N=20000 dt=50uS\n.param Vn=1nV F0=100 C=0.01 R={1/2/pi/C/F0} \n.param Fstart={1/N/dt} Fstop={1/2/dt}\n.param tstart={0.1*N*dt} tstop={1.1*N*dt} TEXT 1728 -104 Left 2 ;.tran 0 {tstop} {tstart} {dt/10}\n.save V(out) TEXT 1736 -256 Left 2 ;Fmin = 1/(N*dt) = 1Hz\nFmax = 1/2/dt = 10kHz

Reply to
RobertMacy
Loading thread data ...

Without putting that all into LTSpice I don't see what your start and stop times are, but from what I know about such things you need to simulate it over a good long time -- probably well over one second to capture the 1/f behavior accurately, even in the neighborhood of the 1/f Hz rolloff.

You probably also want to make sure that any transients have died off before you do the FFT.

And make sure that LTSpice isn't modeling the noise in an op-amp with 1/f noise. I doubt this, but hey -- maybe they're lots better than I think.

--

Tim Wescott 
Wescott Design Services 
http://www.wescottdesign.com
Reply to
Tim Wescott

Thank you for your comments. The start and stop times appear as 'calculations' based upon the number of data points I allowed and the maximum time step of interest N=20000, dt=50uS Then to be certain things were settled down a bit, I start at 0.1 period and end at 1.1 period to make that 100mS to 1.1 Sec The total span of data is 1 second.

This is a kind of low pass filter so will take time to get through completely, so based upon your comment, I'll move this out to 9S to 10S to be ABSOLUTELY sure all has settled. But from other examples at attempting to do this [not posted here], I'm not holding my breath, but your comment inspires me to try one more time.

Actually, if the 'transients' are dieing off properly, they're seen but don't change much.

There is NO OpAmp in the schematic I posted. However, according to Mike Englehardt author of LTspice, ALL the Linear models included in LTspice have accurate noise characterizations, but you only see that characteristic in .noise analysis. I can attest to the 'accuracy' of the LT1115 and LT1028 models, but again only seen in .noise analysis.

Reply to
RobertMacy

I'm too lazy to download your circuit. (no ltspice on this computer.) Are you trying to make a 1/f with analog? Maybe just add a 1/f source to your white one. Adjusting levels for the desired corner. Biased carbon comp resistors show "nice" 1/f noise.

George H.

Reply to
George Herold

ok, HOW DO I "JUST ADD a 1/F SOURCE"????!!!

To my knowledge, the ONLY place resistors generate noise in LTspice AND PSpice is when using .noise analysis. *IF* you had run the LTspice schematic, you would have seen that this noise source appears in a .tran analysis. In other words, you get BOTH .tran AND .noise in the SAME run! That way you can get 'true' circuit simulation with results showing time waveforms with fuzz from the noise and FFT's with a calibrated noise floor. But what is REALLY important is you can explore noise in non-linear circuitry. Mixers, Multipliers, Slew Rate Limit, etc etc.

So, how to 'add' this 1/f noise source you propose?

Reply to
RobertMacy

Tim, You FOUND he problem! thought you'd like to hear.

The conclusion is that the noise source spectrum converges over time to become what is expected. It is NOT immediately correct, but given enough time, it is correct.

I tested the output of the filter being driven by the noise source in the following intervals:

0.1 to 1.1S, 20dB/dec 9 to 10S, 15dB/dec 19 to 20S, 12.5dB/dec 100 to 101S, 10.2 dB/dec

Your key phrase of "died off" made me think the reverse, what if I need ALL the random to get through? And thus it was. Thanks.

Sadly, is the conclusion NOT the way to make a flicker noise source.

Reply to
RobertMacy

I'm glad I was of help, particularly since even though it was educated, it was still a guess.

So, the reason you don't want to use it as a flicker noise source is the need for the thing to settle for two minutes before it gives useful signals? Or does it not work out for some other reason?

--
www.wescottdesign.com
Reply to
Tim Wescott

can't use, because the 'two mintues' actually takes over 200 minutes to run!

just easier to make a table and be done with it! Except that makes the schematic around 35MB instead of 3kB

Reply to
RobertMacy

Looks like it's starting with a few microvolts offset for some reason...

I did this;

formatting link
also, Chgtol = 1e-15, Volttol = 1e-8, Gear. Which I don't think it normally saves in the file.

It's probably not a bad idea to scale the voltages to something more realistic (i.e., ~1V, not ~1uV), or tighten Volttol (as above).

Tim

-- Seven Transistor Labs Electrical Engineering Consultation Website:

formatting link

Reply to
Tim Williams

I thought you were simulate an instrument you were planning on building.

Is the filter built up from resistors & caps? It may simulate a lot quicker if you run white noise into a voltage-dependent source with the transfer function specified.

Just a guess -- I wouldn't know how much faster, but it may astonish!

--

Tim Wescott 
Wescott Design Services 
http://www.wescottdesign.com
Reply to
Tim Wescott

wow, several questions here.

  1. Instrument I can/have simulate using network theory and octave. Works great.
  2. you really didn't look at that schematic! yes, five section of pole-zeros in series to cause 10dB/dec rolldown to flat. I tried Laplace which is built-in, but that starts fast then bogs to an infinitely slow crawl. Tha'ts like a transfer function, I can specify the transfer function in terms of 's' and LTspice will calculate it. Actually only really seems to work well in .ac mode. .tran takes a few days to run, then don't trust anyway because that much accumulation could mean numerical analyses errors pile up [that's where a small number is added to a large number and due to the computer's accuray, it doesn't add properly]
  3. Ms. Macy had the best insight so far. She said to speed up the filter, make it higher speed then sample out the results, slow the answers down and use them as you need them. Really good concept, haven't figured out how to implement yet, though.
Reply to
RobertMacy

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.