2
$\begingroup$

I am interested in using a Kalman filter to track an oscillating signal due to a physical oscillator in a signal which contains the signal from multiple such oscillators oscillating at different frequencies. The signal in this case is simply a voltage value changing with time.

I have thus-far been using sinusoidal Kalman filters for this, however they do not perform optimally as the oscillator is not a perfect sinusoid, it experiences amplitude changes, phase jumps and changes in frequency slowly over time, the first 2 it can correct for, but the last causes the Kalman filter to not be centred on the correct frequency anymore and perform poorly.

However it was suggested to me, that, as long as I use a high sample rate (~25 samples per oscillation) a simple kinematic filter (tracking position, velocity and acceleration) will track the signal, and then there is no problem if the frequency shifts as it is just tracking the position of the oscillator with no forced frequency assumed.

For this kinematic filter, would it require me to filter out the signal of the oscillator to be tracked from the other oscillators with a bandpass filter? Alternatively would tracking the motion of all the oscillators simultaneously work? Without some sort of technique I see no way that such a filter would know what the signal it was required to track was.

$\endgroup$
  • $\begingroup$ I'm not quite sure what some things you mention are: sinusoidal Kalman filter and kinematic filter in particular. Can you write out what you mean by these or give references? How far apart are the different oscillating frequencies? If they're too close, a filter probably won't help much. $\endgroup$ – Peter K. Jun 20 '17 at 10:48
  • $\begingroup$ Ah, I've found a previous question of yours that partially answers my questions. $\endgroup$ – Peter K. Jun 20 '17 at 10:50
  • 1
    $\begingroup$ ahh yes, that's the sinusoidal Kalman filter I meant. By kinematic filter I mean one that simply considers the position, velocity and acceleration and uses the equation $\ddot{x} = - \dfrac{2\dot{x}}{\Delta t} + \dfrac{2x}{\Delta t^2}$ $\endgroup$ – SomeRandomPhysicist Jun 20 '17 at 11:36
  • 1
    $\begingroup$ So the state vector would be [$x$, $\dot{x}$, $\ddot{x}$] and I'd have the system $$\begin{bmatrix} \dot{x} \\ \ddot{x} \\ \dddot{x} \\ \end{bmatrix} = \begin{bmatrix} 0 & 1 & 0 \\ \dfrac{2}{\Delta t^2} & \dfrac{-2}{\Delta t} & 0 \\ 0 & 0 & 0 \\ \end{bmatrix} . \begin{bmatrix} x \\ \dot{x} \\ \ddot{x} \\ \end{bmatrix} $$ $\endgroup$ – SomeRandomPhysicist Jun 20 '17 at 12:15
  • 1
    $\begingroup$ Can't you add a frequency state to what you have and change a few things to make an EKF $\endgroup$ – Stanley Pawlukiewicz Jun 20 '17 at 12:33
2
$\begingroup$

The kinematic filter (which is mathematically a polynomial Kalman filter) has the ability to track any signal as long as the sampling rate is high enough, because when it's so, the complex motion of the target becomes linearized and fits into the quadratic kinematic model being employed by the Kalman filter dynamic model but the disadvantage is the processing cost due to high sampling rate.

Also the polynomial (kinematic) Kalman filter will not distinguish between two sinusoids but instead track their sum ignoring the noise only, unlike a specifically designed sinusoidal filter which tracks the chosen sinusoid and ignores all the rest as disturbance. However the model needs to be exact and known in advance as its fundamental disadvantage. The figure below shows a simulation example of a sinusoidal Kalman filter with two sinusoidal signals added together plus uncorrelated zero mean white noise as the measurement signal. It can be seen that the sinusoidal Kalman filter tracks the chosen sine wave (which is used in deriving the system dynamics matrix) and ignores all the rest as disturbance including the added white noise and the other sinewave which was at an harmonic multiple of the tracked sinusoidal frequency.

enter image description here

The extended kalman filter is a compromise, it has some additional computational burden, specifically the per sample update of the linearized derivatives, but a compromise can be found by lowering the sampling rate compared to a kinematic filter's requirement.

$\endgroup$
  • $\begingroup$ Ok, so, for a polynomial filter, any frequency elements present in the signal that are not white noise would be assumed to be part of the signal/motion to be tracked. So if I just wanted to track 1 degree of freedom with a polynomial kalman filter I'd have to use a bandpass filter to isolate the element to be tracked or implement a UKF/EKF which takes into account the frequency of the oscillator. $\endgroup$ – SomeRandomPhysicist Jun 20 '17 at 14:13
  • 1
    $\begingroup$ In fact the polynomial filter with a quadratic order will be tracking only the quadratic motions. So depending on the sampling rate and the separation of the sinusoidals frequencies, it may track the slower of them at least partially. You must simulate it before conclusions. Isolation of the other sinusoid by BPF is a solution but is not what you may want considering the presence of the Kalman filter. The extended filter is a choice but its performance will not be as good as a perfect sinusoidal filter at lower sampling rates. So it's all a compromise. You must simulate to conclude. $\endgroup$ – Fat32 Jun 20 '17 at 14:20
  • 1
    $\begingroup$ Ok, thanks for the help, I'll simulate it for my case and see what happens. $\endgroup$ – SomeRandomPhysicist Jun 20 '17 at 14:54

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.