📄 infrtflt_8hpp-source.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>Bayes++ Bayesian Filtering Classes: infRtFlt.hpp Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.3.2 --><div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Compound List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Compound Members</a> | <a class="qindex" href="globals.html">File Members</a></div><h1>infRtFlt.hpp</h1><a href="infRtFlt_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="preprocessor">#ifndef _BAYES_FILTER_INFORMATION_ROOT</span>00002 <span class="preprocessor"></span><span class="preprocessor">#define _BAYES_FILTER_INFORMATION_ROOT</span>00003 <span class="preprocessor"></span>00004 <span class="comment">/*</span>00005 <span class="comment"> * Bayes++ the Bayesian Filtering Library</span>00006 <span class="comment"> * Copyright (c) 2002 Michael Stevens</span>00007 <span class="comment"> * See accompanying Bayes++.htm for terms and conditions of use.</span>00008 <span class="comment"> *</span>00009 <span class="comment"> * $Header: /cvsroot/bayesclasses/Bayes++/BayesFilter/infRtFlt.hpp,v 1.6.2.1 2004/02/11 21:06:42 mistevens Exp $</span>00010 <span class="comment"> * $NoKeywords: $</span>00011 <span class="comment"> */</span>00012 00013 <span class="comment">/*</span>00014 <span class="comment"> * Information Root Filter Scheme.</span>00015 <span class="comment"> * A extended 'Square-root' Information filter as an Abstract class</span>00016 <span class="comment"> *</span>00017 <span class="comment"> * Algorithm: Square-root information propogation using QR factorisation</span>00018 <span class="comment"> * Ref: P. Dyer and S. McReynolds, "Extension of Square-Root Filtering to Include Process Noise",</span>00019 <span class="comment"> * [1] Journal of Optimization Theory and Applications, Vol.3 No.6 1969</span>00020 <span class="comment"> * Filter maintains r,R where</span>00021 <span class="comment"> * inv(R)*inv(R)' = X</span>00022 <span class="comment"> * r = R*x</span>00023 <span class="comment"> * R is upper triangular but not strictly a Cholesky factor as diagonal may be negative</span>00024 <span class="comment"> * Observe algorithm has been extended to include linearised models</span>00025 <span class="comment"> * Discontinous observe models require that state is normailised with respect to the observation.</span>00026 <span class="comment"> *</span>00027 <span class="comment"> * The filter is operated by performing a</span>00028 <span class="comment"> * predict, observe</span>00029 <span class="comment"> * cycle defined by the base class</span>00030 <span class="comment"> */</span>00031 <span class="preprocessor">#include "<a class="code" href="bayesFlt_8hpp.html">bayesFlt.hpp</a>"</span>00032 00033 <span class="comment">/* Filter namespace */</span>00034 <span class="keyword">namespace </span>Bayesian_filter00035 {00036 <a name="l00037"></a><a class="code" href="classBayesian__filter_1_1Information__root__scheme.html">00037</a> <span class="keyword">class </span><a class="code" href="classBayesian__filter_1_1Information__root__scheme.html">Information_root_scheme</a> : <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Extended__kalman__filter.html">Extended_kalman_filter</a>00038 {00039 <span class="keyword">public</span>:<a name="l00040"></a><a class="code" href="classBayesian__filter_1_1Information__root__scheme.html#o0">00040</a> FM::Vec <a class="code" href="classBayesian__filter_1_1Information__root__scheme.html#o0">r</a>; <span class="comment">// Information Root state</span><a name="l00041"></a><a class="code" href="classBayesian__filter_1_1Information__root__scheme.html#o1">00041</a> FM::UTriMatrix <a class="code" href="classBayesian__filter_1_1Information__root__scheme.html#o1">R</a>; <span class="comment">// Information Root</span>00042 00043 <a class="code" href="classBayesian__filter_1_1Information__root__scheme.html#a0">Information_root_scheme</a> (size_t x_size, size_t z_initialsize = 0);00044 00045 <span class="keywordtype">void</span> <a class="code" href="classBayesian__filter_1_1Information__root__scheme.html#a1">init</a> ();00046 <span class="keywordtype">void</span> <a class="code" href="classBayesian__filter_1_1Information__root__scheme.html#a2">update</a> ();00047 <span class="comment">// Covariance form state interface</span>00048 00049 <a class="code" href="classBayesian__filter_1_1Bayes__base.html#w0">Float</a> <a class="code" href="classBayesian__filter_1_1Information__root__scheme.html#a3">predict</a> (<a class="code" href="classBayesian__filter_1_1Linrz__predict__model.html">Linrz_predict_model</a>& f, <span class="keyword">const</span> FM::ColMatrix& invFx, <span class="keywordtype">bool</span> linear_r);00050 <span class="comment">/* Generialised form, using precomputed inverse of f.Fx */</span>00051 <a class="code" href="classBayesian__filter_1_1Bayes__base.html#w0">Float</a> <a class="code" href="classBayesian__filter_1_1Information__root__scheme.html#a3">predict</a> (<a class="code" href="classBayesian__filter_1_1Linrz__predict__model.html">Linrz_predict_model</a>& f);00052 <span class="comment">/* Use linrz form for r, computes inverse model using inverse_Fx */</span>00053 <a class="code" href="classBayesian__filter_1_1Bayes__base.html#w0">Float</a> <a class="code" href="classBayesian__filter_1_1Information__root__scheme.html#a3">predict</a> (<a class="code" href="classBayesian__filter_1_1Linear__predict__model.html">Linear_predict_model</a>& f);00054 <span class="comment">/* Use linear form for r, computes inverse model using inverse_Fx */</span><a name="l00055"></a><a class="code" href="classBayesian__filter_1_1Information__root__scheme.html#a6">00055</a> <a class="code" href="classBayesian__filter_1_1Bayes__base.html#w0">Float</a> <a class="code" href="classBayesian__filter_1_1Information__root__scheme.html#a3">predict</a> (<a class="code" href="classBayesian__filter_1_1Linear__invertable__predict__model.html">Linear_invertable_predict_model</a>& f)00056 <span class="comment">/* Use linear form for r, and use inv.Fx from invertable model */</span>00057 {00058 <span class="keywordflow">return</span> <a class="code" href="classBayesian__filter_1_1Information__root__scheme.html#a3">predict</a>(f, f.<a class="code" href="classBayesian__filter_1_1Linear__invertable__predict__model.html#o0">inv</a>.<a class="code" href="structBayesian__filter_1_1Linear__invertable__predict__model_1_1inverse__model.html#o0">Fx</a>, <span class="keyword">true</span>);00059 }00060 00061 <a class="code" href="classBayesian__filter_1_1Bayes__base.html#w0">Float</a> <a class="code" href="classBayesian__filter_1_1Information__root__scheme.html#a7">observe_innovation</a> (Linrz_uncorrelated_observe_model& h, <span class="keyword">const</span> FM::Vec& s);00062 <a class="code" href="classBayesian__filter_1_1Bayes__base.html#w0">Float</a> <a class="code" href="classBayesian__filter_1_1Information__root__scheme.html#a7">observe_innovation</a> (Linrz_correlated_observe_model& h, <span class="keyword">const</span> FM::Vec& s);00063 <span class="comment">// Extended_kalman_filter observe</span>00064 00065 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classBayesian__filter_1_1Information__root__scheme.html#e0">inverse_Fx</a> (FM::DenseColMatrix& invFx, <span class="keyword">const</span> FM::Matrix& Fx);00066 <span class="comment">/* Numerical Inversion of Fx using LU factorisation */</span>00067 };00068 00069 00070 <span class="comment">/*</span>00071 <span class="comment"> * Information Root Filter Scheme with exposed information state</span>00072 <span class="comment"> * Augments Information_root_filter with y,Y in the interface</span>00073 <span class="comment"> */</span>00074 <a name="l00075"></a><a class="code" href="classBayesian__filter_1_1Information__root__info__scheme.html">00075</a> <span class="keyword">class </span><a class="code" href="classBayesian__filter_1_1Information__root__info__scheme.html">Information_root_info_scheme</a> : <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Information__root__scheme.html">Information_root_scheme</a>, <span class="keyword">virtual</span> <span class="keyword">public</span> <a class="code" href="classBayesian__filter_1_1Information__state__filter.html">Information_state_filter</a>00076 {00077 <span class="keyword">public</span>:00078 <a class="code" href="classBayesian__filter_1_1Information__root__info__scheme.html#a0">Information_root_info_scheme</a> (size_t x_size, size_t z_initialsize = 0);00079 00080 <span class="keywordtype">void</span> <a class="code" href="classBayesian__filter_1_1Information__root__info__scheme.html#a1">init_yY</a> ();00081 <span class="keywordtype">void</span> <a class="code" href="classBayesian__filter_1_1Information__root__info__scheme.html#a2">update_yY</a> ();00082 <span class="comment">// Information form state interface</span>00083 };00084 00085 00086 }<span class="comment">//namespace</span>00087 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Feb 16 11:20:39 2004 for Bayes++ Bayesian Filtering Classes by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.2 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -