[time-nuts] Re: Simple simulation model for an OCXO?

Matthias Welwarsky time-nuts at welwarsky.de
Sat May 14 14:58:47 UTC 2022


On Dienstag, 3. Mai 2022 22:08:49 CEST Magnus Danielson via time-nuts wrote:
> Dear Matthias,
> 
> Notice that 1/f is power-spectrum density, straight filter will give you
> 1/f^2 in power-spectrum, just as an integration slope.
> 
> One approach to flicker filter is an IIR filter with the weighing of
> 1/sqrt(n+1) where n is tap index, and feed it normal noise. You need to
> "flush out" state before you use it so you have a long history to help
> shaping. For a 1024 sample series, I do 2048 samples and only use the
> last 1024. Efficient? No. Quick-and-dirty? Yes.

I went "window shopping" on Google and found something that would probably fit 
my needs here:

https://ccrma.stanford.edu/~jos/sasp/Example_Synthesis_1_F_Noise.html

Matlab code:

Nx = 2^16;  % number of samples to synthesize
B = [0.049922035 -0.095993537 0.050612699 -0.004408786];
A = [1 -2.494956002   2.017265875  -0.522189400];
nT60 = round(log(1000)/(1-max(abs(roots(A))))); % T60 est.
v = randn(1,Nx+nT60); % Gaussian white noise: N(0,1)
x = filter(B,A,v);    % Apply 1/F roll-off to PSD
x = x(nT60+1:end);    % Skip transient response

It looks quite simple and there is no explanation where the filter 
coefficients come from, but I checked the PSD and it looks quite reasonable.

The ADEV of a synthesized oscillator, using the above generator to generate 1/
f FM noise is interesting: it's an almost completely flat curve that moves 
"sideways" until the drift becomes dominant.

Regards,
Matthias






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