I'm trying to determine the continuous time formulation of the double exponential filter so that I can adapt it more flexibly for my particular problem.

Typically, this model is expressed as a pair of discrete, recursive equations as such in @denis' post here)

Double exponential smoothing a.k.a. Holt-Winters smoothing tracks level and trend of a time series in coupled IIRs:
$\qquad$ In: $Y_t$, t = 0 1 2 ...
$\qquad$ State: $L_t, T_t \quad$ -- level and trend
$\qquad$ Out: estimate $\hat{Y}_{t+1}$
$\qquad$ Parameters: a, b (a.k.a. $\alpha, \beta$)
$\qquad$ Step equations:
$\qquad$ $\qquad L_t = a Y_t + (1 - a) (L_{t-1} + T_{t-1}) \quad$ -- level
$\qquad$ $\qquad T_t = b (L_t - L_{t-1}) + (1 - b) T_{t-1} \quad$ -- trend
$\qquad$ $\qquad \hat{Y}_{t+1} = L_t + T_t$

Most references on the subject of double exponential filtering and state space revolve around discrete time kalman filtering approaches. Question: How should I put this model into a noiseless, state-space ODE form?

Using slightly different notation, here is my current approach. The base model, with continuous time input $u$ and continuous time states $l$ and $s$, is

$\dot{l} = r_1(u - l) + r_1 s$

$\dot{s} = r_2(\dot{l} - s)$

$\ \ = r_2(r_1(u - l) + r_1 s - s)$

$\ \ = r_2(r_1(u - l) + (r_1 - 1)s)$

$\ \ = r_2 r_1(u - l) + r_2(r_1 - 1)s$

with $\dot{l}$ and $\dot{s}$ representing time-derivative state dynamics with system constants $r_1, r_2 \in [0, \infty)$.

Assuming I made no mistakes there, I attempt to put this into state space form by

$$ \dot{\bf{x}} = A{\bf x} + Bu$$ $$ A = \begin{bmatrix} -r_1 & r_1\\ -r_1r_2 & r_2(r_1 - 1)\\ \end{bmatrix} \ \ \ \ B = \begin{bmatrix} r_1\\ r_1r_2\\ \end{bmatrix} \ \ \ \ \bf{x} = \begin{bmatrix} l\\ s\\ \end{bmatrix} $$

The output of this system is just the state of the level variable.

$y(t^{'}) = l(t^{'}) = C{\bf x}$.

where $C = \begin{bmatrix}1 & 0\end{bmatrix}$

We can make future predictions of $y$ based off of some assumption of the form of $u$, we can project $y({t'})$ using the system response formula for continuous time state space systems

$y({t^{'}}) = C\bigg(e^{A(t^{'} - t)}x(t) + \int_t^{t^{'}}e^{A(t - \tau)}Bu(\tau)d\tau\bigg)$

which can then be discretized as necessary later.

However: I am finding that the system matrix $A$ is not stable.

By my assumptions system matrices for all positive values of $r_1, r_2$ should be stable but this is not the case. Empirically I just tested a couple settings and the real part of the eigenvalues of $A$ must be negative, which is satisfied are for $r_1 = 1, r_2=1$ but not for $r_1 = 3, r_2 = 3$

Where dd I go wrong?.


1 Answer 1


I think I figured it out, dumb mistake in writing the system in continuous time.

$\dot{l} = r_1(u - l)$

$\dot{s} = r_2(\dot{l} - s)$

$\ \ = r_2(r_1(u - l) + r_1 s - s)$

$\ \ = r_2(r_1(u - l) + (r_1 - 1)s)$

$\ \ = r_2 r_1(u - l) + r_2(r_1 - 1)s$

So $$ A = \begin{bmatrix} -r_1 & 0\\ -r_1r_2 & -r_1r_2\\ \end{bmatrix} $$

which is stable for all positive $r_1, r_2$!

  • $\begingroup$ Hi. I want to do the same thing for simple exponential smoothing but I don't see how you obtained the original expressions for the derivatives of l and s. Thanks. Or if some book has it in there and you know where to find it, it's appreciated. $\endgroup$
    – mark leeds
    Aug 12, 2019 at 3:30

Your Answer

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

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