I have a decay process which appears essentially like $$ f(t) = \xi(t)\exp[-t/\tau],$$ where $\xi(t)$ is a stationary Gaussian noise with some mean, variance, and correlation function.

Given a realization of $f(t)$ which I measure from an experiment, I would like to estimate the decay timescale $\tau$.

Here is an example dataset, generated in Python using an Ornstein-Uhlenbeck process for $\xi(t)$:

import numpy as np
import matplotlib.pyplot as plt

dt = 1e-3 # timestep
N = 5000 # number of step
t = np.arange(0,N*dt,dt)

tau = 5 # this is what I want to estimate
np.random.seed(4) # set the random state
noise = [] # list to be filled with noise
n = 9.4 # initial noise value
D = 15 # diffusivity
gam = 2 # damping
while i<N:  # produce an Ornstein uhlenbeck noise (correlated)
    n = n + gam*(n0 - n)*dt + np.sqrt(2*D*dt)*np.random.normal()

noise = np.array(noise)

Given a timeseries like this, I would like to estimate its decay constant $\tau$, using some method which is more robust than just fitting a curve and ignoring the noise.

Are there any standard methods for this type of fitting procedure? In my case smoothing is not exactly viable because the correlation time of the noise is often comparable to the decay time of the signal.

enter image description here

  • 1
    $\begingroup$ Is it really sensible to have $\xi(t)$ be a gaussian process? That means that there is some (albeit small) probability that $f(t)$ will be negative. Depending on your application a lognormal might be more sensible, if this is the case you could take $\log$'s on both sides and you are left with estimating a linear trend for an otherwise stationary GP which is straightforward using e.g. differencing. $\endgroup$
    – Stefan
    Jul 19, 2022 at 7:07

1 Answer 1


The fitting is supposed to account for the noise. Nevertheless, I am also a pragmatist who observes he gets more believable results if he smoothed the data first. I’m curious to see the take of theorists, to learn if I introduce problems by doing the signal pre-processing.

The data you have seem to be “filterable” using a low pass Fourier Transform filter, at first glance. I only recently read into that technique, and now I’m slapping myself for all those times that I did it in much more difficult ways.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.