\section{Recursive State Estimation}
\label{sec:rse}


We consider indoor localization to be a time-sequential, non-linear and non-Guassian state estimation problem. 
The filtering equation to calculated the posterior is given by the recursion
%
\begin{equation}
	\arraycolsep=1.2pt
	\begin{array}{ll}
		&p(\mStateVec_{t} \mid \mObsVec_{1:t}) \propto\\ 
			&\underbrace{p(\mObsVec_{t} \mid \mStateVec_{t})}_{\text{evaluation}}
			\int \underbrace{p(\mStateVec_{t} \mid \mStateVec_{t-1}, \mObsVec_{t-1})}_{\text{transition}}
			\underbrace{p(\mStateVec_{t-1} \mid \mObsVec_{1:t-1})d\vec{q}_{t-1}}_{\text{recursion}}
	\end{array}
	\enspace ,
	\label{equ:bayesInt}
\end{equation}
%
where $\mState$ is the hidden state and $\mObs_t$ provides the corresponding observation vector at time $t$.
As realization of \eqref{equ:bayesInt} we use the well-known CONDENSATION algorithm \cite{Isard98:CCD}.
Here, the transition is used as proposal distribution and a resampling step is utilized to handle the phenomenon of weight degeneracy.

The state $\mState$ is given by 
%
\begin{equation}
	\mStateVec = (x, y, z, \mStateHeading),\enskip
	x, y, z, \mStateHeading \in \R \enspace,
\end{equation}
%
where $x, y, z$ represent the position in 3D space and $\mStateHeading$ is the user's current (absolute) heading. 
The observation vector is defined as 
%
\begin{equation}
	\mObsVec = (\mRssiVec_\text{wifi}, \mObsHeading, \mObsSteps, \mObsActivity) \enspace .
\end{equation}
%
Here, $\mRssiVec_\text{wifi}$ contains the signal strength measurements of all \docAP{}s currently visible to the phone. $\mObsHeading$ provides the relative angular change and $\mObsSteps$ the number of steps since the last filter-step.
The result of a simple activity recognition using the phone's barometer is given by $\mObsActivity$, which is one of: unknown, standing, walking, walking up the stairs or walking down the stairs. 


