DSPRelated.com
Forums

Re: Kalman filtering with multiplicative noise

Started by Unknown July 23, 2008
> Contrary to the beliefs of some, the MathWorks isn't on high, and MatLab > isn't an extension of the Bible. I would trust them for examples, but > don't take their documentation for anything but a means of selling you > copies of MatLab.
The link I posted is a user contribution, not an example from the Mathworks, so I don't trust it entirely. However the Wikipedia article on EKF's seems to show the same formulation with the noise being assumed to be additive, only the process and measurement models are allowed to be non-linear: http://en.wikipedia.org/wiki/Extended_Kalman_filter#Formulation Does this mean the EKF is not appropriate for my problem or am I misunderstanding how it works?
> If this is a student project then why not assume there will be a set > point and the controller will maintain that set point with little > variation. Now the volume is fixed and the variance is therefore > fixed. Now you can assume the system is linear around that set point.
I have already implemented a regular Kalman filter simply by approximating both of the noise terms as additive noise and the results are okay but not great (another idea I might try is approximating both of them as multiplicative noise, and then I can do all the calculations in the log domain). To improve it I want to try incorporating the multiplicative noise. When z2 terms have smaller values, we have more confidence in them (less variance), so I want to explicitly incorporate this into the filter. In particular, when z2 reaches zero, we have almost 100% confidence it is correct.
> I really suggest that you make up a graphical model of the system, > Simulink or Scicos ( I can deal with Scicos), both the physical system > and then the proposed filtering.
I'm not too familiar with Simulink or Scicos but here's a small diagram: z2 +---------+ | | ======>| | z1 | | <====== | | | | +---------+ The measurement z1 is measuring the amount going in and out of the container (flow rate), the measurement z2 is measuring the total currently in the container (volume). I am trying to find the true value of x2 (the volume) by combining the noisy measurements of z1 and z2. Actually there are multiple sensors measuring flow rate and volume, but I've only shown one of each to simplify the problem. The z1 measurement has additive Gaussian noise, the z2 measurement has multiplicative (and possibly additive?) Gaussian noise.
> So your multiplicative noise can be negative? This seems strange.
> In any case, why not simply derive the appropriate filtering from > scratch instead of trying to find off the shelf solutions? That way > you can incorporate all the specifics of your problem.
No I suppose it should always should be positive, I have uploaded an example image to help clarify: http://picasaweb.google.com.au/dspmyallit/ExampleVolumeMeasurements/photo#5226062785340902530
> The EKF propagates first and second moments which is essentially > treating the problem like it can be approximated like a linear > Gaussian.
> Particle filters come in various flavors and there are versions that > can handle multiplicative noise.
I will look into particle filters. Are you aware of any good C++ implementations? (For the Kalman filter I have been using MATLAB to design and test it, OpenCV to implement it.)