On 04/22/2010 11:06 PM, Kyle Wesson wrote:
Hello,

I am trying to simulate oscillator noise by following the procedure
outlined in James Barnes' paper: "Simulation of Oscillator Noise"
(1984) 28th Annual Frequency Control Symposium. In the paper, Barnes
explains the models of the five typical types of noise that occur in
oscillators and a method for their simulation.

Have you looked at

http://tycho.usno.navy.mil/ptti/1987/Vol%2019_19.pdf
http://horology.jpl.nasa.gov/papers/FlfmSimPtti.pdf

They are a little more modern. The first paper is a modernisation of what you have at hand, the second uses an FFT approach.

I've followed the steps he presents in his paper and have been unable
to produce simulated output for flicker FM noise that leads to an flat
Allan variance graph (ie. all Allan variance values are nearly
constant for all tau values). Instead, the Allan variance values of my
simulated flicker FM noise start out constant at the Allan variance
value I desire but then tend upwards by two to three orders of
magnitude (nearly every simulation) about halfway through the range of
possible tau values. In short, it starts out flat and then increases
rapidly about halfway through the tau range. I believe there may be a
couple possibilities and am wondering if anyone else has come across
the same issues or knows of a solution.

1) To simulate flicker FM noise, Barnes uses a set of ARIMA
coefficients to model the noise. Is an updated set of coefficients
available that would have better accuracy or produce better simulation
results? Is the ARIMA method typically used with the availability of
today's higher computational power?

See above papers.

2) Barnes devotes a section of the paper to random number generation
and states that the random numbers to be used should be normally
distributed with zero mean and unit variance. I  used the built-in
Matlab command randn() to generate the random data but only achieved
an all-flat Allan variance plot when the random number generator was
seeded with a particular number. The majority of the time (using a
"random" seed), this method produced non-flat results as described
above. I then attempted the two methods Barnes presents in his paper
to generate the random numbers which provided similar non-flat
results.

The length of your data record may be an issue. Depending on the random generator some stretches may behave none-flat locally.

Are random normally distributed random numbers optimal for these
simulations? Would another distribution produce results consistent
with the expectation of an all-flat (ie. constant) Allan variance for
flicker noise?

You are approaching it from the wrong angle. The distribution form is orthogonal to the white-ness. A standard no-frills random generator of a normal computer system (say standard UNIX) is normal distributed. This is no good for even white-noise simulations as the distirbution you want is gaussian. However, by adding many noise-samples you shape it into gaussian form. It will never be true gaussian, but it is one approximation. A better approach is the Box-Mueller transformation, but it comes at a fairly high price, nothing that a good CORDIC can't solve thought. The traditional way of adding normal distributed samples ranging from 0 to 1 is to add 12 of them and subtract the constant 6. This will not be truely DC-free as the random generator never does 0 but has at least 1. The solution is to take two samples and subtract them from each other, then using 6 pairs and add their results. This achieves the same thing but handles the DC offset issue. The reason for 12 is that the produced output has the RMS power of 1 (since the RMS amplitude of the normal distributed noise is 1/sqrt(12) ), so just multiplying with requested noise amplitude gets the final amplitude correct.

To frequency slope shape the noise the approach used by Barnes is to use a set of filters to create the 1/f power-law slope and using various numbers of integrations 1/f^2, 1/f^3 and 1/f^4 can be produced.

The trouble with the filter approach is that it only approximates the -3 dB/Oct slope and has a number of wiggles depending on the number of poles being employed. Also, depending on the quality of the algorithm providing the coefficients, the flatness may be more or less good.
You want to use the first paper over the one you used.
The filter-approach has a pass-band for which you get the requested -3 dB/Oct and outside of that you get standard 0 dB/Oct or -6 dB/Oct responses. I just isn't particularly efficient.

To overcome the range and flattness issues of the filter approach, the FFT approach to filtering is benefitial.

Thus, when analyzing time-spans covering more and more of the non-flicker response, the Allan variance will shift character too.

Also consider that the Allan variance estimator will loose statistical resolution for longer taus as it's effective degrees of freedom becomes less and less.

I hope you have got some useful hints. Let me know of your progress.

Cheers,
Magnus

_______________________________________________
time-nuts mailing list -- [email protected]
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

Reply via email to