[time-nuts] practical details on generating artificial flicker noise

Magnus Danielson magnus at rubidium.dyndns.org
Sun Nov 23 15:21:36 UTC 2014


Jim,

Find myself providing guidance in both the 2010 and 2013 threads, and 
they are still valid starting-points.

For music synthesizer applications, flicker noise have been done, such 
as on this schematic:
https://rubidium.dyndns.org/~magnus/synths/friends/stopp/asm1ns.pdf
The work is traceable back to the Barnes-Jarvis work. Might be fun to 
know. :)

Anyway, yes, it would be reasonable that you would need that many 
sections if you really intend to cover the full range, but on the other 
hand, usually you have a corner from which white noise dominates, and 
you really don't need to do much more than an octave or two beyond that 
corner. Doing 16-17 sections is cheap today.

The other approach is to read Chuck Greenhalls more recent papers and 
see if none of those methods is applicable to your needs.

Also, remember that in the Barnes-Jarvis approach, the distance between 
upper and lower corners is separated from how tight variation is 
allowed, which is controlling how many sections you need. Plotting with 
a scale normalized with sqrt(f) helps in analysis.

Thanks for reminding me that I should implement flicker noise generation.

Cheers,
Magnus

On 11/23/2014 03:05 PM, Jim Lux wrote:
> I'm writing a short simulation program to generate samples from a analog
> system with some op amps, etc., and I'm wondering if anyone has some
> practical experience on picking parameters for the generator.
>
> I'm generating minutes worth of data sampled at 1 kHz, and my opamps
> have their flicker/white knee at around 3-4 Hz (at least that's what the
> LT1679 data sheet claims.. we shall see if the model matches the data
> sheet matches what I measure on the actual hardware)
>
> I'm using a Barnes-Jarvis (or Barnes-Greenhall) type generator for the
> flicker noise, which basically sums up a bunch of stages to create an
> arbitrarily smooth representation.  See threads:
> https://www.febo.com/pipermail/time-nuts/2010-April/046926.html
> https://www.febo.com/pipermail/time-nuts/2013-November/081534.html
>
> The actual PTTI paper is
>
> http://tycho.usno.navy.mil/ptti/1987papers/Vol%2019_19.pdf has the details
> http://tycho.usno.navy.mil/ptti/1992papers/Vol 24_44.pdf has some
> corrections, but is a partial page..
>
> You need to pick a few parameters:  how many stages to cover your
> frequency band of interest, how big the frequency steps are (e.g.
> octaves), and where's the "top band" filter cutoff (typically 0.3 to 0.5
> relative to the sample rate)
>
> If you picked 4 stages, with a starting frequency of 0.4, and
> octaves(R=2), then the individual filter cutoffs would be
> 0.4
> 0.2
> 0.1
> 0.05
>
> I'm interested in the behavior down in the 1 Hz and below range, say, to
> 0.01 Hz.  So to cover 0.01 Hz to 1000Hz, one would need about 16-17
> octaves which is an enormous number of stages and I've got to believe
> you'd have all sorts of numerical problems
>
>   And I think I don't need to do this
> I can add white noise to establish the noise floor to match lab
> measurements (there's sources other than the op amps) for higher
> frequencies, say in the 20-1000 Hz area.
>
> It would seem, then, that I can start the first filter at around 5 Hz
> and go down from there, if my assumption that most of the flicker noise
> is coming from the opamp and it's flicker noise comes above the thermal
> noise at 3-4 Hz.
>
> Then, going in, say, octave jumps, I can get down to 0.01 Hz in about 8
> steps.  (this seems to match Figure 2 in the paper.. they used a 8
> stages with a frequency ratio of 2.4, and the spectrum looks pretty flat
> for a good 5 decades.
>
> I suppose I could just write it and see what comes out, but if someone
> out there has worked with this kind of thing before, a bit of practical
> guidance would be useful.
>
>
> _______________________________________________
> time-nuts mailing list -- time-nuts at febo.com
> To unsubscribe, go to
> https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
> and follow the instructions there.



More information about the Time-nuts_lists.febo.com mailing list