Hi Matthias,

On 2022-05-14 08:58, Matthias Welwarsky wrote:
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.

This is a variant of the James "Jim" Barnes filter to use lead-lag filter to approximate 1/f slope. You achieve it within a certain range of frequency. The first article with this is available as a technical note from NBS 1965 (available at NIST T&F archive - check for Barnes and Allan), but there is a more modern PTTI article by Barnes and Greenhall (also in NIST archive) that uses a more flexible approach where the spread of pole/zero pairs is parametric rather than fixed. The later paper is important as it also contains the code to initialize the state of the filter as if it has been running for ever so the state have stabilized. A particular interesting thing in that article is the plot of the filter property aligned to the 1/f slope, it illustrates very well the useful range of the produced filter. This plot is achieved by scaling the amplitude responce with sqrt(f).

I recommend using the Barnes & Greenhall variant rather than what you found. It needs to be adapted to the simulation at hand, so the fixed setup you have will fit only some needs. One needs to have the filter covering the full frequency range where used flicker noise is dominant or near dominant. As one uses flicker shaping for both flicker phase modulation as well as flicker frequency modulation, there is two different frequency ranges there they are dominant or near dominant.

There is many other approaches, see Attilas splendid review the other day.

Let me also say that I find myself having this question coming even from the most senioric researches even the last week: "What is your favorite flicker noise simulation model?". They keep acknowledge my basic message of "Flicker noise simulation is hard". None model fit all applications, so no one solution solves it all. One needs to validate that it fit the application at hand.

Cheers,
Magnus


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


_______________________________________________
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-le...@lists.febo.com
_______________________________________________
time-nuts mailing list -- time-nuts@lists.febo.com
To unsubscribe send an email to time-nuts-le...@lists.febo.com

Reply via email to