I'm looking to apply an optimal LQR filter to a discrete signal of the form $$ x[n]=A\sin(\omega_0n+\phi)+v[n] $$ The amplitude $A$ and the phase $\phi$ are unknown variables I want to estimate using the filter, and $v[n]$ is an uncorrelated noise signal of variance $\sigma_v^2$.

I don't know how to build a state model to generate this sine wave, and proceed from there.

  • $\begingroup$ I did something similar in the past except we wanted to track the frequency. From what I recall we used 4 states states : Amplitude, derivate of x[n], frequency, frequency derivate $\endgroup$
    – Ben
    May 27, 2018 at 17:55
  • $\begingroup$ Is $\omega_0$ known? $\endgroup$
    – Peter K.
    May 27, 2018 at 21:18
  • $\begingroup$ Yes $\omega_0$ is known $\endgroup$ May 28, 2018 at 15:57
  • $\begingroup$ @Ben Please could you explain how you did that better? Any materials to help on this ? I am still confused. $\endgroup$ May 28, 2018 at 22:33

1 Answer 1


You could use a nonlinear Kalman filter, such as the extended Kalman filter (EKF), and track the phase and frequency as your state variables.

In this case, your Kalman filter is essentially acting like a phase-locked loop (PLL).

Example reference


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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