Autocorrelation function

The autocorrelation function of a series of samples is defined as:

\[A(k) =\frac{\langle x_{i+k} x_i \rangle - \langle x \rangle ^2}{ \langle x^2 \rangle - \langle x \rangle ^2} \approx\frac{1}{\sigma^2(N-k)}\sum_{i=0}^{N-k-1} (x_{i+k}-\overline{x})(x_i-\overline{x})\]

where \(\overline{x}\) is the mean, \(\sigma^2\) the variance of the series.

Synopsis

make_normalized_autocorrelation(T observable)
  • observable: object with Observable concept

returns the autocorrelation function as a TimeSeries.

Example

#include <triqs/statistics.hpp>
#include <triqs/mc_tools/random_generator.hpp>
using namespace triqs::statistics;
int main() {
  observable<double> A;
  triqs::mc_tools::random_generator RND;
  for (int i = 0; i < 20; i++) A << RND(1.0);
  std::cout << make_normalized_autocorrelation(A) << std::endl;
  return 0;
}