Starting point for non-gaussian estimation

Started by sysizlayan 3 years ago4 replieslatest reply 3 years ago100 views


I am currently working on a device which uses a sensor whose noise characteristic is uniformly distributed. In detail, the sensor has quantization error. The system I am using this sensor data is linear.

In the system, I am currently using Kalman filter assuming the sensor has Gaussian distribution and its variance is the same as uniform distribution. Currently it seems working good, however I want to compare the other methods like UKF and EKF. But again, they are also Gaussian estimator.

My questions are these: Is there a better way to estimate a variable with a sensor measuring it with quantization error? Is there a uniformly distributed variable estimator? Or where should I start searching for it?

Thanks in advance. 

[ - ]
Reply by shafie7September 28, 2018

What would be the use case of "Non Gaussian" noise?

That probably answer part of your question.

Would the use cases include using Rayleigh or Rician distribution? 

Best regards,


[ - ]
Reply by sysizlayanSeptember 28, 2018

Actually I am using an encoder on a motor and I need to estimate the position of the motor. The problem was the quantization. The encoder resolution is not high, so the motor position can become undetermined between samples.

I am using gyroscope for the velocity measurement, it has Gaussian error distribution. However, encoder has uniform distribution.

[ - ]
Reply by Tim WescottSeptember 28, 2018

I have ingested caffeine, but it is still working its way into my bloodstream.  So my answers may be a bit elliptical.

First, just treating the process as having additive Gaussian noise is going to be easier by far.  If you're getting acceptable answers with that approximation, run with it.

Second, modeling quantization as your signal plus uniformly distributed noise is only valid if your signal is continually varying such that at each measurement it is at a different location within the quantization window.  If you have a signal that is quietly sitting at 23.1 LSB of your ADC (and your ADC is quiet), then your reading will always be 23, and your "additive noise" will be a quite constant 0.1, not uniformly distributed.

Third, sensors often contribute more noise to a measurement than just quantization.  Often, the quantization is smaller than whatever truly random disturbances exist in the sensor, and these disturbance contributions randomize the sensor reading.  In that case then the noise is far more likely (or, ideally, guaranteed) to have zero mean.  (If I'm specifying such things I always try for quantization small enough that I get random data).

I do not know of a name for an estimator such as you seek.  I expect that there is no good general case.  You may try searching on something like "Baysian state estimator for sensor with significant quantization noise", or like keywords, and see what you can see.

Here's an example.  Assume that you have a noise-free sensor that has significant quantization, and it's being fed by a process for which you have independent measures of the driving forces.  In this case you could make some sort of wacky Baysian filter.  It would have an estimate for the sensor input that, when the sensor output is unchanging slowly grows into a uniformly-distributed RV around the current sensor output (uniformly distributed by 2LSB -- think it through), but any time the sensor output clicks from one value to the next, the sensor input estimate variance springs down to a much lower value, only to start growing again at a speed commensurate with your uncertainty about the process output.

The above suggested filter is going to be a hell of a lot of work to implement, it's going to be computationally intensive, no one else will be able to understand it, and it's going to be sensitive to the workings of the process you're trying to estimate.  Those are all the hallmarks of a PhD-designed lab queen, so tread with caution (unless you are possessed of a PhD, and minions with Master's degrees to do your bidding -- then go for it).  

You may be able to find somebody's paper on how it was done in a similar situation, but if you do I would suggest that you not even consider just adopting their method wholesale -- you should read that paper until you know how and why their filter works, and then analyze your situation until you know if it can be adapted, and how.

[ - ]
Reply by ryanhuberSeptember 28, 2018

You could use a particle filter.  See  Just use a uniform distribution of particles to represent your measurements.  There are implementations in Matlab ( as well as Python ( shows several packages that implement it: PyBayes, pfilter, pypfilt, pyParticleEst).  This will be more computationally expensive but allow you to model the uniform distribution that you desire.  An in-between approach (computationally) would be to estimate the uniform distribution as a gaussian mixture model.  Here's a good paper on that:  Hope that helps!

As a side note, UKF and EKF are ways to deal with a non-linear transform between measurements and states or a non-linear state transition matrix - neither of these approaches deals with a non-Gaussian measurement distribution.