📄 bayesflt_8hpp-source.html
字号:
00252 <a name="l00253"></a><a class="code" href="classBayesian__filter_1_1Likelihood__observe__model.html#a2">00253</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classBayesian__filter_1_1Likelihood__observe__model.html#a2">Lz</a> (<span class="keyword">const</span> FM::Vec& zz)00254 <span class="comment">// Set the observation zz about which to evaluate the Likelihood function</span>00255 {00256 <a class="code" href="classBayesian__filter_1_1Likelihood__observe__model.html#p0">z</a> = zz;00257 }00258 <span class="keyword">protected</span>:<a name="l00259"></a><a class="code" href="classBayesian__filter_1_1Likelihood__observe__model.html#p0">00259</a> FM::Vec <a class="code" href="classBayesian__filter_1_1Likelihood__observe__model.html#p0">z</a>; <span class="comment">// z set by Lz</span>00260 };00261 <a name="l00262"></a><a class="code" href="classBayesian__filter_1_1Functional__observe__model.html">00262</a> <span class="keyword">class </span><a class="code" href="classBayesian__filter_1_1Functional__observe__model.html">Functional_observe_model</a> : <span class="keyword">virtual</span> <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Observe__model__base.html">Observe_model_base</a>, <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Observe__function.html">Observe_function</a>00263 <span class="comment">/* Functional (non-stochastic) observe model h</span>00264 <span class="comment"> * zp(k) = hx(x(k|k-1))</span>00265 <span class="comment"> * This is a seperate fundamental model and not derived from likelihood because:</span>00266 <span class="comment"> * L is a delta function which isn't much use for numerical systems</span>00267 <span class="comment"> * Defines an Interface without data members</span>00268 <span class="comment"> */</span>00269 {00270 <span class="keyword">public</span>:<a name="l00271"></a><a class="code" href="classBayesian__filter_1_1Functional__observe__model.html#a0">00271</a> <a class="code" href="classBayesian__filter_1_1Functional__observe__model.html#a0">Functional_observe_model</a>(size_t <span class="comment">/*z_size*/</span>)00272 {}<a name="l00273"></a><a class="code" href="classBayesian__filter_1_1Functional__observe__model.html#a1">00273</a> <span class="keyword">const</span> FM::Vec& <a class="code" href="classBayesian__filter_1_1Functional__observe__model.html#a1">operator()</a>(<span class="keyword">const</span> FM::Vec& x)<span class="keyword"> const</span>00274 <span class="keyword"> </span>{ <span class="keywordflow">return</span> <a class="code" href="classBayesian__filter_1_1Observe__function.html#a0">h</a>(x);00275 }00276 00277 };00278 <a name="l00279"></a><a class="code" href="classBayesian__filter_1_1Parametised__observe__model.html">00279</a> <span class="keyword">class </span><a class="code" href="classBayesian__filter_1_1Parametised__observe__model.html">Parametised_observe_model</a> : <span class="keyword">virtual</span> <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Observe__model__base.html">Observe_model_base</a>, <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Observe__function.html">Observe_function</a>00280 <span class="comment">/* Observation model parametised with a fixed z size</span>00281 <span class="comment"> * Includes the functional part of a noise model</span>00282 <span class="comment"> * Model is assume to have linear and non-linear components</span>00283 <span class="comment"> * Linear components need to be checked for conditioning</span>00284 <span class="comment"> * Non-linear components may be discontinous and need normalisation</span>00285 <span class="comment"> */</span>00286 {00287 <span class="keyword">public</span>:<a name="l00288"></a><a class="code" href="classBayesian__filter_1_1Parametised__observe__model.html#a0">00288</a> <a class="code" href="classBayesian__filter_1_1Parametised__observe__model.html#a0">Parametised_observe_model</a>(size_t <span class="comment">/*z_size*/</span>)00289 {}00290 <span class="keyword">virtual</span> <span class="keyword">const</span> FM::Vec& <a class="code" href="classBayesian__filter_1_1Parametised__observe__model.html#a1">h</a>(<span class="keyword">const</span> FM::Vec& x) <span class="keyword">const</span> = 0;00291 <span class="comment">// Functional part of addative model</span><a name="l00292"></a><a class="code" href="classBayesian__filter_1_1Parametised__observe__model.html#a2">00292</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classBayesian__filter_1_1Parametised__observe__model.html#a2">normalise</a> (FM::Vec& <span class="comment">/*z_denorm*/</span>, <span class="keyword">const</span> FM::Vec& <span class="comment">/*z_from*/</span>) <span class="keyword">const</span>00293 <span class="comment">// Discontinous h. Normalise one observation (z_denorm) from another</span>00294 {} <span class="comment">// Default normalistion, z_denorm unchanged</span>00295 <a name="l00296"></a><a class="code" href="classBayesian__filter_1_1Parametised__observe__model.html#o0">00296</a> <a class="code" href="classBayesian__filter_1_1Numerical__rcond.html">Numerical_rcond</a> <a class="code" href="classBayesian__filter_1_1Parametised__observe__model.html#o0">rclimit</a>;00297 <span class="comment">// Reciprocal condition number limit of linear components when factorised or inverted</span>00298 };00299 <a name="l00300"></a><a class="code" href="classBayesian__filter_1_1Uncorrelated__addative__observe__model.html">00300</a> <span class="keyword">class </span><a class="code" href="classBayesian__filter_1_1Uncorrelated__addative__observe__model.html">Uncorrelated_addative_observe_model</a> : <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Parametised__observe__model.html">Parametised_observe_model</a>00301 <span class="comment">/* Observation model, uncorrelated addative observation noise</span>00302 <span class="comment"> Z(k) = I * Zv(k) observe noise variance vector Zv</span>00303 <span class="comment"> */</span>00304 {00305 <span class="keyword">public</span>:<a name="l00306"></a><a class="code" href="classBayesian__filter_1_1Uncorrelated__addative__observe__model.html#a0">00306</a> <a class="code" href="classBayesian__filter_1_1Uncorrelated__addative__observe__model.html#a0">Uncorrelated_addative_observe_model</a> (size_t z_size) :00307 <a class="code" href="classBayesian__filter_1_1Parametised__observe__model.html">Parametised_observe_model</a>(z_size), <a class="code" href="classBayesian__filter_1_1Uncorrelated__addative__observe__model.html#o0">Zv</a>(z_size)00308 {}<a name="l00309"></a><a class="code" href="classBayesian__filter_1_1Uncorrelated__addative__observe__model.html#o0">00309</a> FM::Vec <a class="code" href="classBayesian__filter_1_1Uncorrelated__addative__observe__model.html#o0">Zv</a>; <span class="comment">// Noise Variance</span>00310 };00311 <a name="l00312"></a><a class="code" href="classBayesian__filter_1_1Correlated__addative__observe__model.html">00312</a> <span class="keyword">class </span><a class="code" href="classBayesian__filter_1_1Correlated__addative__observe__model.html">Correlated_addative_observe_model</a> : <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Parametised__observe__model.html">Parametised_observe_model</a>00313 <span class="comment">/* Observation model, correlated addative observation noise</span>00314 <span class="comment"> Z(k) = observe noise covariance</span>00315 <span class="comment"> */</span>00316 {00317 <span class="keyword">public</span>:<a name="l00318"></a><a class="code" href="classBayesian__filter_1_1Correlated__addative__observe__model.html#a0">00318</a> <a class="code" href="classBayesian__filter_1_1Correlated__addative__observe__model.html#a0">Correlated_addative_observe_model</a> (size_t z_size) :00319 <a class="code" href="classBayesian__filter_1_1Parametised__observe__model.html">Parametised_observe_model</a>(z_size), <a class="code" href="classBayesian__filter_1_1Correlated__addative__observe__model.html#o0">Z</a>(z_size,z_size)00320 {}<a name="l00321"></a><a class="code" href="classBayesian__filter_1_1Correlated__addative__observe__model.html#o0">00321</a> FM::SymMatrix <a class="code" href="classBayesian__filter_1_1Correlated__addative__observe__model.html#o0">Z</a>; <span class="comment">// Noise Covariance (not necessarly dense)</span>00322 };00323 <a name="l00324"></a><a class="code" href="classBayesian__filter_1_1Jacobian__observe__model.html">00324</a> <span class="keyword">class </span><a class="code" href="classBayesian__filter_1_1Jacobian__observe__model.html">Jacobian_observe_model</a> : <span class="keyword">virtual</span> <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Observe__model__base.html">Observe_model_base</a>00325 <span class="comment">/* Linrz observation model Hx, h about state x (fixed size)</span>00326 <span class="comment"> Hx(x(k|k-1) = Jacobian of h with respect to state x</span>00327 <span class="comment"> Normalisation consistency Hx: Assume normalise will be from h(x(k|k-1)) so result is consistent with Hx</span>00328 <span class="comment"> */</span>00329 {00330 <span class="keyword">public</span>:<a name="l00331"></a><a class="code" href="classBayesian__filter_1_1Jacobian__observe__model.html#o0">00331</a> FM::Matrix <a class="code" href="classBayesian__filter_1_1Jacobian__observe__model.html#o0">Hx</a>; <span class="comment">// Model</span>00332 <span class="keyword">protected</span>: <span class="comment">// Jacobian model is not sufficient, it is used to build Linrz observe model's</span><a name="l00333"></a><a class="code" href="classBayesian__filter_1_1Jacobian__observe__model.html#b0">00333</a> <a class="code" href="classBayesian__filter_1_1Jacobian__observe__model.html#b0">Jacobian_observe_model</a> (size_t x_size, size_t z_size) :00334 <a class="code" href="classBayesian__filter_1_1Jacobian__observe__model.html#o0">Hx</a>(z_size, x_size)00335 {}00336 };00337 <a name="l00338"></a><a class="code" href="classBayesian__filter_1_1Linrz__correlated__observe__model.html">00338</a> <span class="keyword">class </span><a class="code" href="classBayesian__filter_1_1Linrz__correlated__observe__model.html">Linrz_correlated_observe_model</a> : <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Correlated__addative__observe__model.html">Correlated_addative_observe_model</a>, <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Jacobian__observe__model.html">Jacobian_observe_model</a>00339 <span class="comment">/* Linrz observation model Hx, h with repespect to state x (fixed size)</span>00340 <span class="comment"> correlated observation noise</span>00341 <span class="comment"> zp(k) = h(x(k-1|k-1)</span>00342 <span class="comment"> Hx(x(k|k-1) = Jacobian of f with respect to state x</span>00343 <span class="comment"> Z(k) = observe noise covariance</span>00344 <span class="comment"> */</span>00345 {00346 <span class="keyword">public</span>:<a name="l00347"></a><a class="code" href="classBayesian__filter_1_1Linrz__correlated__observe__model.html#a0">00347</a> <a class="code" href="classBayesian__filter_1_1Linrz__correlated__observe__model.html#a0">Linrz_correlated_observe_model</a> (size_t x_size, size_t z_size) :00348 <a class="code" href="classBayesian__filter_1_1Correlated__addative__observe__model.html">Correlated_addative_observe_model</a>(z_size), <a class="code" href="classBayesian__filter_1_1Jacobian__observe__model.html">Jacobian_observe_model</a>(x_size, z_size)00349 {}00350 };00351 <a name="l00352"></a><a class="code" href="classBayesian__filter_1_1Linrz__uncorrelated__observe__model.html">00352</a> <span class="keyword">class </span><a class="code" href="classBayesian__filter_1_1Linrz__uncorrelated__observe__model.html">Linrz_uncorrelated_observe_model</a> : <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Uncorrelated__addative__observe__model.html">Uncorrelated_addative_observe_model</a>, <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Jacobian__observe__model.html">Jacobian_observe_model</a>00353 <span class="comment">/* Linrz observation model Hx, h with repespect to state x (fixed size)</span>00354 <span class="comment"> uncorrelated observation noise</span>00355 <span class="comment"> zp(k) = h(x(k-1|k-1)</span>00356 <span class="comment"> Hx(x(k|k-1) = Jacobian of f with respect to state x</span>00357 <span class="comment"> Zv(k) = observe noise covariance</span>00358 <span class="comment"> */</span>00359 {00360 <span class="keyword">public</span>:<a name="l00361"></a><a class="code" href="classBayesian__filter_1_1Linrz__uncorrelated__observe__model.html#a0">00361</a> <a class="code" href="classBayesian__filter_1_1Linrz__uncorrelated__observe__model.html#a0">Linrz_uncorrelated_observe_model</a> (size_t x_size, size_t z_size) :00362 <a class="code" href="classBayesian__filter_1_1Uncorrelated__addative__observe__model.html">Uncorrelated_addative_observe_model</a>(z_size), <a class="code" href="classBayesian__filter_1_1Jacobian__observe__model.html">Jacobian_observe_model</a>(x_size, z_size)00363 {}00364 };00365 <a name="l00366"></a><a class="code" href="classBayesian__filter_1_1Linear__correlated__observe__model.html">00366</a> <span class="keyword">class </span><a class="code" href="classBayesian__filter_1_1Linear__correlated__observe__model.html">Linear_correlated_observe_model</a> : <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Linrz__correlated__observe__model.html">Linrz_correlated_observe_model</a>00367 <span class="comment">/* Linear observation model, correlated observation noise</span>00368 <span class="comment"> zp(k) = Hx(k) * x(k|k-1)</span>00369 <span class="comment"> Enforces linear model invariant. Careful when deriving to to change this invariant!</span>00370 <span class="comment"> */</span>00371 {00372 <span class="keyword">public</span>:<a name="l00373"></a><a class="code" href="classBayesian__filter_1_1Linear__correlated__observe__model.html#a0">00373</a> <a class="code" href="classBayesian__filter_1_1Linear__correlated__observe__model.html#a0">Linear_correlated_observe_model</a> (size_t x_size, size_t z_size) :00374 <a class="code" href="classBayesian__filter_1_1Linrz__correlated__observe__model.html">Linrz_correlated_observe_model</a>(x_size, z_size), hx(z_size)00375 {}<a name="l00376"></a><a class="code" href="classBayesian__filter_1_1Linear__correlated__observe__model.html#a1">00376</a> <span class="keyword">const</span> FM::Vec& <a class="code" href="classBayesian__filter_1_1Linear__correlated__observe__model.html#a1">h</a>(<span class="keyword">const</span> FM::Vec& x)<span class="keyword"> const</span>00377 <span class="keyword"> </span>{ <span class="comment">// Provide a linear implementation of functional h assumes model is already Linrz for Hx</span>00378 hx.assign (FM::prod(<a class="code" href="classBayesian__filter_1_1Jacobian__observe__model.html#o0">Hx</a>,x));00379 <span class="keywordflow">return</span> hx;00380 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -