Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Having found some unofficial sources on Sensor Fusion (Thousand Thoughts Sensor Fusion and The Balance Filter by Shane Colton) I'm struck by how the approximation of the complementary filter that is used there, i.e.

filtered_orientation = 0.98 * (filtered_orientation + delta_gyro_orientation*dt) + 0.02 * accelerometer_orientation

is accepted as a good approximation without any derivation or proof. I can't seem to figure out why it is a good approximation.

After having found definitions of the low-pass filter in Sedra and Smith's Microelectronic Circuits and W.T. Higgins 1975 paper A comparison of complementary and Kalman filtering (can be found on IEEE as well as via search engine as PDF), figure 1A in Higgins' paper seems to imply that the complementary filter is an addition of the high- and low-pass filtered data, like so

complementary = high-pass(x) + low-pass(y)

In case of sensor fusion this would yield:

complementary = high-pass(gyro) + low-pass(accel)

and thus

complementary = 0.98 * (old_gyro + delta_new_gyro*dt) + 0.98 * (old_accel) + 0.02 * (new_accel)

This seems wrong to me, I would expect a weighted adding of the two factors, instead of just adding them. So, I must have interpreted figure 1A wrong.

Can someone help me understand what the full expression for the original complementary filter should be and why the one proposed by Colton is a good approximation?

share|cite|improve this question

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.