Key focus: Learn how to generate color noise using auto regressive (AR) model. Apply Yule Walker equations for generating power law noises: pink noise, Brownian noise.
Auto-Regressive (AR) model
An uncorrelated Gaussian random sequence
where
Yule Walker equations relate auto-regressive model parameters
1. Given
2. Solve Yule Walker equations to find the model parameters
Yule-Walker equations
Yule-Walker equations can be compactly written as
Written in matrix form, the Yule-Walker equations that comprises of a set of
Representing equation (3) in a compact form,
The AR model parameters
After solving for the model parameters
Example: power law noise generation
The power law
The
Violet noise –
Blue noise –
White noise –
Pink noise –
Brownian noise –
The power law noise can be generated by sequencing a zero-mean white noise through an auto-regressive (AR) filter of order
where,
which can be implemented as an infinite impulse response (IIR) filter using the filter transfer function described in equation (6).
The following script implements this method and the sample results are plotted in the next Figure.
Refer the book for the Matlab code
Rate this article: Note: There is a rating embedded within this post, please visit this post to rate it.
References
[1] Gene H. Golub, Charles F. Van Loan, Matrix Computations, ISBN-9780801854149, Johns Hopkins University Press, 1996, p. 143.↗
[2] J. Durbin, The fitting of time series in models, Review of the International Statistical Institute, 28:233-243, 1960.↗
[3] Kasdin, N.J. Discrete Simulation of Colored Noise and Stochastic Processes and
Rate this article: Note: There is a rating embedded within this post, please visit this post to rate it.
Books by the author
Topics in this chapter
Random Variables - Simulating Probabilistic Systems ● Introduction ● Plotting the estimated PDF ● Univariate random variables □ Uniform random variable □ Bernoulli random variable □ Binomial random variable □ Exponential random variable □ Poisson process □ Gaussian random variable □ Chi-squared random variable □ Non-central Chi-Squared random variable □ Chi distributed random variable □ Rayleigh random variable □ Ricean random variable □ Nakagami-m distributed random variable ● Central limit theorem - a demonstration ● Generating correlated random variables □ Generating two sequences of correlated random variables □ Generating multiple sequences of correlated random variables using Cholesky decomposition ● Generating correlated Gaussian sequences □ Spectral factorization method □ Auto-Regressive (AR) model |
Interesting to see the link between autocorrelation and the exponent of the PSD.
I implemented the code in the book on page 99.
How would I go about characterizing alpa from the PSD?
If I fit a line in loglog space to the PSD, this line is severely biased by the noise lower end of the PSD.
Example code:
log_f = 10log10(F(2:end));
log_p = 10log10(Pyy(2:end));
Const = polyfit(log_f,log_p,1);
slope = Const(1);
offset = Const(2);
Yp = polyval(Const, log_f);
Do you have any example of a robust estimate of the slope and offset following the example noise generation?
This method can only be applied for noises that has certain statistical properties. The relationship between alpha, PSD and the AR model cannot be obtained by a simple line-fit model. It has to be estimated from empirical data.
The noise should exhibit fractal phenomenon (long memory and self-similarity) for this method to work. Following references may help you further.
[1] Jan Beran, “Statistics for Long-Memory Processes “, ISBN-13: 978-0412049019, Chapman and Hall/CRC; 1 edition (October 1, 1994) URL: https://amzn.to/2w9I0NO
[2] Stadnitski, Tatjana. “Measuring fractality.” Frontiers in physiology vol. 3 127. 7 May. 2012, doi:10.3389/fphys.2012.00127 URL: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3345945/