\documentclass[12pt,titlepage]{article} \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsthm} \usepackage{mathtools} \usepackage{graphicx} \usepackage{color} \usepackage{ucs} \usepackage[utf8x]{inputenc} \usepackage{xparse} \usepackage{hyperref} %----Macros---------- % % Unresolved issues: % % \righttoleftarrow % \lefttorightarrow % % \color{} with HTML colorspec % \bgcolor % \array with options (without options, it's equivalent to the matrix environment) % Of the standard HTML named colors, white, black, red, green, blue and yellow % are predefined in the color package. Here are the rest. \definecolor{aqua}{rgb}{0, 1.0, 1.0} \definecolor{fuschia}{rgb}{1.0, 0, 1.0} \definecolor{gray}{rgb}{0.502, 0.502, 0.502} \definecolor{lime}{rgb}{0, 1.0, 0} \definecolor{maroon}{rgb}{0.502, 0, 0} \definecolor{navy}{rgb}{0, 0, 0.502} \definecolor{olive}{rgb}{0.502, 0.502, 0} \definecolor{purple}{rgb}{0.502, 0, 0.502} \definecolor{silver}{rgb}{0.753, 0.753, 0.753} \definecolor{teal}{rgb}{0, 0.502, 0.502} % Because of conflicts, \space and \mathop are converted to % \itexspace and \operatorname during preprocessing. % itex: \space{ht}{dp}{wd} % % Height and baseline depth measurements are in units of tenths of an ex while % the width is measured in tenths of an em. \makeatletter \newdimen\itex@wd% \newdimen\itex@dp% \newdimen\itex@thd% \def\itexspace#1#2#3{\itex@wd=#3em% \itex@wd=0.1\itex@wd% \itex@dp=#2ex% \itex@dp=0.1\itex@dp% \itex@thd=#1ex% \itex@thd=0.1\itex@thd% \advance\itex@thd\the\itex@dp% \makebox[\the\itex@wd]{\rule[-\the\itex@dp]{0cm}{\the\itex@thd}}} \makeatother % \tensor and \multiscript \makeatletter \newif\if@sup \newtoks\@sups \def\append@sup#1{\edef\act{\noexpand\@sups={\the\@sups #1}}\act}% \def\reset@sup{\@supfalse\@sups={}}% \def\mk@scripts#1#2{\if #2/ \if@sup ^{\the\@sups}\fi \else% \ifx #1_ \if@sup ^{\the\@sups}\reset@sup \fi {}_{#2}% \else \append@sup#2 \@suptrue \fi% \expandafter\mk@scripts\fi} \def\tensor#1#2{\reset@sup#1\mk@scripts#2_/} \def\multiscripts#1#2#3{\reset@sup{}\mk@scripts#1_/#2% \reset@sup\mk@scripts#3_/} \makeatother % \slash \makeatletter \newbox\slashbox \setbox\slashbox=\hbox{$/$} \def\itex@pslash#1{\setbox\@tempboxa=\hbox{$#1$} \@tempdima=0.5\wd\slashbox \advance\@tempdima 0.5\wd\@tempboxa \copy\slashbox \kern-\@tempdima \box\@tempboxa} \def\slash{\protect\itex@pslash} \makeatother % math-mode versions of \rlap, etc % from Alexander Perlis, "A complement to \smash, \llap, and lap" % http://math.arizona.edu/~aprl/publications/mathclap/ \def\clap#1{\hbox to 0pt{\hss#1\hss}} \def\mathllap{\mathpalette\mathllapinternal} \def\mathrlap{\mathpalette\mathrlapinternal} \def\mathclap{\mathpalette\mathclapinternal} \def\mathllapinternal#1#2{\llap{$\mathsurround=0pt#1{#2}$}} \def\mathrlapinternal#1#2{\rlap{$\mathsurround=0pt#1{#2}$}} \def\mathclapinternal#1#2{\clap{$\mathsurround=0pt#1{#2}$}} % Renames \sqrt as \oldsqrt and redefine root to result in \sqrt[#1]{#2} \let\oldroot\root \def\root#1#2{\oldroot #1 \of{#2}} \renewcommand{\sqrt}[2][]{\oldroot #1 \of{#2}} % Manually declare the txfonts symbolsC font \DeclareSymbolFont{symbolsC}{U}{txsyc}{m}{n} \SetSymbolFont{symbolsC}{bold}{U}{txsyc}{bx}{n} \DeclareFontSubstitution{U}{txsyc}{m}{n} % Manually declare the stmaryrd font \DeclareSymbolFont{stmry}{U}{stmry}{m}{n} \SetSymbolFont{stmry}{bold}{U}{stmry}{b}{n} % Manually declare the MnSymbolE font \DeclareFontFamily{OMX}{MnSymbolE}{} \DeclareSymbolFont{mnomx}{OMX}{MnSymbolE}{m}{n} \SetSymbolFont{mnomx}{bold}{OMX}{MnSymbolE}{b}{n} \DeclareFontShape{OMX}{MnSymbolE}{m}{n}{ <-6> MnSymbolE5 <6-7> MnSymbolE6 <7-8> MnSymbolE7 <8-9> MnSymbolE8 <9-10> MnSymbolE9 <10-12> MnSymbolE10 <12-> MnSymbolE12}{} % Declare specific arrows from txfonts without loading the full package \makeatletter \def\re@DeclareMathSymbol#1#2#3#4{% \let#1=\undefined \DeclareMathSymbol{#1}{#2}{#3}{#4}} \re@DeclareMathSymbol{\neArrow}{\mathrel}{symbolsC}{116} \re@DeclareMathSymbol{\neArr}{\mathrel}{symbolsC}{116} \re@DeclareMathSymbol{\seArrow}{\mathrel}{symbolsC}{117} \re@DeclareMathSymbol{\seArr}{\mathrel}{symbolsC}{117} \re@DeclareMathSymbol{\nwArrow}{\mathrel}{symbolsC}{118} \re@DeclareMathSymbol{\nwArr}{\mathrel}{symbolsC}{118} \re@DeclareMathSymbol{\swArrow}{\mathrel}{symbolsC}{119} \re@DeclareMathSymbol{\swArr}{\mathrel}{symbolsC}{119} \re@DeclareMathSymbol{\nequiv}{\mathrel}{symbolsC}{46} \re@DeclareMathSymbol{\Perp}{\mathrel}{symbolsC}{121} \re@DeclareMathSymbol{\Vbar}{\mathrel}{symbolsC}{121} \re@DeclareMathSymbol{\sslash}{\mathrel}{stmry}{12} \re@DeclareMathSymbol{\bigsqcap}{\mathop}{stmry}{"64} \re@DeclareMathSymbol{\biginterleave}{\mathop}{stmry}{"6} \re@DeclareMathSymbol{\invamp}{\mathrel}{symbolsC}{77} \re@DeclareMathSymbol{\parr}{\mathrel}{symbolsC}{77} \makeatother % \llangle, \rrangle, \lmoustache and \rmoustache from MnSymbolE \makeatletter \def\Decl@Mn@Delim#1#2#3#4{% \if\relax\noexpand#1% \let#1\undefined \fi \DeclareMathDelimiter{#1}{#2}{#3}{#4}{#3}{#4}} \def\Decl@Mn@Open#1#2#3{\Decl@Mn@Delim{#1}{\mathopen}{#2}{#3}} \def\Decl@Mn@Close#1#2#3{\Decl@Mn@Delim{#1}{\mathclose}{#2}{#3}} \Decl@Mn@Open{\llangle}{mnomx}{'164} \Decl@Mn@Close{\rrangle}{mnomx}{'171} \Decl@Mn@Open{\lmoustache}{mnomx}{'245} \Decl@Mn@Close{\rmoustache}{mnomx}{'244} \makeatother % Widecheck \makeatletter \DeclareRobustCommand\widecheck[1]{{\mathpalette\@widecheck{#1}}} \def\@widecheck#1#2{% \setbox\z@\hbox{\m@th$#1#2$}% \setbox\tw@\hbox{\m@th$#1% \widehat{% \vrule\@width\z@\@height\ht\z@ \vrule\@height\z@\@width\wd\z@}$}% \dp\tw@-\ht\z@ \@tempdima\ht\z@ \advance\@tempdima2\ht\tw@ \divide\@tempdima\thr@@ \setbox\tw@\hbox{% \raise\@tempdima\hbox{\scalebox{1}[-1]{\lower\@tempdima\box \tw@}}}% {\ooalign{\box\tw@ \cr \box\z@}}} \makeatother % \mathraisebox{voffset}[height][depth]{something} \makeatletter \NewDocumentCommand\mathraisebox{moom}{% \IfNoValueTF{#2}{\def\@temp##1##2{\raisebox{#1}{$\m@th##1##2$}}}{% \IfNoValueTF{#3}{\def\@temp##1##2{\raisebox{#1}[#2]{$\m@th##1##2$}}% }{\def\@temp##1##2{\raisebox{#1}[#2][#3]{$\m@th##1##2$}}}}% \mathpalette\@temp{#4}} \makeatletter % udots (taken from yhmath) \makeatletter \def\udots{\mathinner{\mkern2mu\raise\p@\hbox{.} \mkern2mu\raise4\p@\hbox{.}\mkern1mu \raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern1mu}} \makeatother %% Fix array \newcommand{\itexarray}[1]{\begin{matrix}#1\end{matrix}} %% \itexnum is a noop \newcommand{\itexnum}[1]{#1} %% Renaming existing commands \newcommand{\underoverset}[3]{\underset{#1}{\overset{#2}{#3}}} \newcommand{\widevec}{\overrightarrow} \newcommand{\darr}{\downarrow} \newcommand{\nearr}{\nearrow} \newcommand{\nwarr}{\nwarrow} \newcommand{\searr}{\searrow} \newcommand{\swarr}{\swarrow} \newcommand{\curvearrowbotright}{\curvearrowright} \newcommand{\uparr}{\uparrow} \newcommand{\downuparrow}{\updownarrow} \newcommand{\duparr}{\updownarrow} \newcommand{\updarr}{\updownarrow} \newcommand{\gt}{>} \newcommand{\lt}{<} \newcommand{\map}{\mapsto} \newcommand{\embedsin}{\hookrightarrow} \newcommand{\Alpha}{A} \newcommand{\Beta}{B} \newcommand{\Zeta}{Z} \newcommand{\Eta}{H} \newcommand{\Iota}{I} \newcommand{\Kappa}{K} \newcommand{\Mu}{M} \newcommand{\Nu}{N} \newcommand{\Rho}{P} \newcommand{\Tau}{T} \newcommand{\Upsi}{\Upsilon} \newcommand{\omicron}{o} \newcommand{\lang}{\langle} \newcommand{\rang}{\rangle} \newcommand{\Union}{\bigcup} \newcommand{\Intersection}{\bigcap} \newcommand{\Oplus}{\bigoplus} \newcommand{\Otimes}{\bigotimes} \newcommand{\Wedge}{\bigwedge} \newcommand{\Vee}{\bigvee} \newcommand{\coproduct}{\coprod} \newcommand{\product}{\prod} \newcommand{\closure}{\overline} \newcommand{\integral}{\int} \newcommand{\doubleintegral}{\iint} \newcommand{\tripleintegral}{\iiint} \newcommand{\quadrupleintegral}{\iiiint} \newcommand{\conint}{\oint} \newcommand{\contourintegral}{\oint} \newcommand{\infinity}{\infty} \newcommand{\bottom}{\bot} \newcommand{\minusb}{\boxminus} \newcommand{\plusb}{\boxplus} \newcommand{\timesb}{\boxtimes} \newcommand{\intersection}{\cap} \newcommand{\union}{\cup} \newcommand{\Del}{\nabla} \newcommand{\odash}{\circleddash} \newcommand{\negspace}{\!} \newcommand{\widebar}{\overline} \newcommand{\textsize}{\normalsize} \renewcommand{\scriptsize}{\scriptstyle} \newcommand{\scriptscriptsize}{\scriptscriptstyle} \newcommand{\mathfr}{\mathfrak} \newcommand{\statusline}[2]{#2} \newcommand{\tooltip}[2]{#2} \newcommand{\toggle}[2]{#2} % Theorem Environments \theoremstyle{plain} \newtheorem{theorem}{Theorem} \newtheorem{lemma}{Lemma} \newtheorem{prop}{Proposition} \newtheorem{cor}{Corollary} \newtheorem*{utheorem}{Theorem} \newtheorem*{ulemma}{Lemma} \newtheorem*{uprop}{Proposition} \newtheorem*{ucor}{Corollary} \theoremstyle{definition} \newtheorem{defn}{Definition} \newtheorem{example}{Example} \newtheorem*{udefn}{Definition} \newtheorem*{uexample}{Example} \theoremstyle{remark} \newtheorem{remark}{Remark} \newtheorem{note}{Note} \newtheorem*{uremark}{Remark} \newtheorem*{unote}{Note} %------------------------------------------------------------------- \begin{document} %------------------------------------------------------------------- \section*{Stochastic filter} \hypertarget{contents}{}\section*{{Contents}}\label{contents} \noindent\hyperlink{idea}{Idea}\dotfill \pageref*{idea} \linebreak \noindent\hyperlink{details}{Details}\dotfill \pageref*{details} \linebreak \noindent\hyperlink{the_filtering_problem}{The filtering problem}\dotfill \pageref*{the_filtering_problem} \linebreak \noindent\hyperlink{the_one_dimensional_linear_filtering_problem}{The one dimensional linear filtering problem}\dotfill \pageref*{the_one_dimensional_linear_filtering_problem} \linebreak \noindent\hyperlink{examples}{Examples}\dotfill \pageref*{examples} \linebreak \noindent\hyperlink{kalmanbucy_filter_of_constant_process}{Kalman-Bucy filter of constant process}\dotfill \pageref*{kalmanbucy_filter_of_constant_process} \linebreak \noindent\hyperlink{references}{References}\dotfill \pageref*{references} \linebreak \hypertarget{idea}{}\subsection*{{Idea}}\label{idea} When we observe some natural phenomenon, there are essentially two ``random'' or ``noisy'' influences: First there may be uncontrollable, seemingly random, processes that influence the phenomenon itself, then there will be errors in the measuring process. \textbf{Stochastic filters} are algorithms that compute estimations of the true state of the phenomenon, given ``noisy'' observation. Therefore, \textbf{stochastic filters} are actually \textbf{estimators} that are supposed to remove the noise from the measurements: The removal of noise is the reason for the name ``filter''. The \textbf{Kalman-Bucy filter}, which is the solution of a linear filtering problem, has found many applications including aerospace engineering (Ranger, Mariner, Apollo), and can therefore be used as an example that quite sophisticated mathematics may have relevant real world applications almost immediately after its invention. This page primarily deals with filtering of continuous time analytic systems. For discrete time filtering see [[temporal filtering]]. \hypertarget{details}{}\subsection*{{Details}}\label{details} \hypertarget{the_filtering_problem}{}\subsubsection*{{The filtering problem}}\label{the_filtering_problem} We will formulate the filtering problem in continuous time using [[stochastic differential equations]]. Let the original process $X_t$ satisfy a [[stochastic differential equation]] \begin{displaymath} d X_t = A(X_t ,t) \; d t + B(X_t, t) \; d W_{1, t} \end{displaymath} This is the process we would like to know about. But all we have is knowledge about a measurement process $Z_t$ of the original process $X_t$, which again satisfies a differential equation \begin{displaymath} d Z_t = C(X_t, t) \; d t + D(X_ t, t ) \; d W_{2, t} \end{displaymath} Both equations may be multidimensional, not necessarily with the same dimension, and $W_{1, t}$ and $W_{2, t}$ are independent Wiener processes of the appropriate dimension. We are looking for an estimator $\hat{X}_T$ of the state of the process $X_T$ at time $T$, given the observation of $Z_t$ on the interval $[0, T]$. To make the statement ``given the observation'' mathematically precise, we demand that the estimator $\hat{X}_T$ is measurable with respect to the $\sigma$-algebra generated by the process $Z_t$. The \textbf{best estimator} $\hat{X}_T$ is defined to be an estimator that minimizes \begin{displaymath} \int_{\Omega} \| X_t - \hat{X}_t \|^2 \; d P \end{displaymath} where $\Omega, P$ denotes the probability space and the probability measure of $(W_{1, t}, W_{1, t})$ with the appropriate initial condition (which we left unspecified). \hypertarget{the_one_dimensional_linear_filtering_problem}{}\subsubsection*{{The one dimensional linear filtering problem}}\label{the_one_dimensional_linear_filtering_problem} We consider the linear filtering problem in continuous time, using [[stochastic differential equations]]. The original process is denoted by $X_t$, the process of measurements is denoted by $Z_t$. Both satisfy a linear stochastic differential equation in one dimension: \begin{displaymath} d X_t = A(t) X_t d t + B(t) d W_{1, t} \end{displaymath} and \begin{displaymath} d Z_t = C(t) X_t d t + D(t) d W_{2, t} \end{displaymath} where $W_{1, t}$ and $W_{2, t}$ are independent Wiener processes, and the functions $A, B, C, D$ are given. The solution of the problem is given by the \textbf{Kalman-Bucy filter}, which specifies a stochastic differential equation which $\hat{X}_T$ has to satisfy. \begin{uprop} The solution to the linear filtering problem $\hat{X}_t$ satisfies the following stochastic differential equation: \begin{displaymath} d \hat{X}_t = (A(t) - \frac{C^2(t) S(t)}{D^2(t)}) \hat{X}_t d t + \frac{C(t) S(t)}{D^2(t)} \; d Z_t \end{displaymath} with the initial condition $\hat{X}_0 = E(X_0)$. The function $S$ is defined as \begin{displaymath} S(t) := E(( X_t - \hat{X}_t)^2) \end{displaymath} and is known to satisfy the following deterministic Ricci differential equation: \begin{displaymath} \frac{d S}{d t} = 2 A(t) S(t) - \frac{C^2(t)}{D^2(t)} S^2(t) + B^2(t) \end{displaymath} with the obvious initial condition $S(0) = E ( (X_0 - E(X_0))^2 )$. \end{uprop} \hypertarget{examples}{}\subsection*{{Examples}}\label{examples} \hypertarget{kalmanbucy_filter_of_constant_process}{}\subsubsection*{{Kalman-Bucy filter of constant process}}\label{kalmanbucy_filter_of_constant_process} We will calculate the Kalman-Bucy filter for a constant process: \begin{displaymath} d X_t = 0 \end{displaymath} with $E(X_0) = 0$ and $E(X_0^2) =: a^2$. The observations are noisy, that is: \begin{displaymath} d Z_t = X_t \; d t + m \; d W_t \end{displaymath} with initial condition $Z_0 = 0$. Then the Kalman-Bucy filter is \begin{displaymath} \hat{X_z} = \frac{a^2}{m^2 + a^2 t} \; Z_t \end{displaymath} \hypertarget{references}{}\subsection*{{References}}\label{references} See chapter 6, ``The Filtering Problem'', of: \begin{itemize}% \item Bernt Øksendal, \emph{Stochastic Differential Equations: An Introduction with Applications}, 6th ed. (\href{http://www.zentralblatt-math.org/zmath/en/advanced/?q=an:1025.60026&format=complete}{ZMATH}) \end{itemize} category:statistical methods [[!redirects stochastic filter]] [[!redirects stochastic filters]] [[!redirects Kalman-Bucy filter]] \end{document}