Latest 0.2.0 https://github.com/ghenania/MGKalman MIT ios 8.0, requires ARC MGMatrix Accelerate Mohamed GHENANIA

## How to

Kalman filter equations

``````    /*------------------------------------------*
|  Kalman model                              |
|                                            |
|  state quation                             |
|  x(k) = A.x(k-1)+B.u(k)+w(k-1)             |
|                                            |
|  observations equation                     |
|  z(k) = H.x(k)+y(k)                        |
|                                            |
|  prediction equations                      |
|  x^(k) = A.x^(k-1) + B.u(k)                |
|  P^(k) = A.P(k-1).A^T + Q                  |
|                                            |
|  correction equations                      |
|  K(k) = P^(k).H^T . (H.P^(k).H^T + R)^-1   |
|  x(k) = x^(k) + K(k).(z(k) - H*x^(k))      |
|  P(k) = (I - K(k).H).P^(k)                 |
|                                            |
*------------------------------------------*/``````

Easily instantiate Matrix

``````   // Kalman filter with order 2x2
self.kalmanFilter= [MGKalman filterWithStateOrder:stateOrder observationOrder:observationOrder];

// A matrix
[_kalmanFilter setA:[MGMatrix identity:stateOrder]];

/* H matrix */
[_kalmanFilter setH:[MGMatrix rows:observationOrder columns:stateOrder values:
1.0,   0.0,
0.0,   1.0
]];

/* B Matrix */
[_kalmanFilter setB:[MGMatrix rows:stateOrder columns:stateOrder]];

// Q Matrix
[_kalmanFilter setQ:[MGMatrix rows:stateOrder columns:stateOrder]];

// R Matrix
[_kalmanFilter setR:[MGMatrix rows:observationOrder columns:observationOrder values:
1.0,  0.0,
0.0,   1.
]];

// Po Matrix
[_kalmanFilter setP_estimated:[MGMatrix rows:stateOrder columns:stateOrder values:
1000.0,   0.0,
0.0,   1000.0
]];

// X(0)
[_kalmanFilter setX_estimated:[MGMatrix rows:stateOrder columns:1 values:
``````

Estimate and correct

``````    [_kalmanFilter estimateWithNewObservation:[MGMatrix rows:2 columns:1 values:
z1,
z2
]];``````

## Usage

To run the example project, clone the repo, and run `pod install` from the Example directory first.

## Requirements

• Accelerate.Framework
• iOS 8+
• pod "MGMatrix"

## Installation

MGKalman is available through CocoaPods. To install

``pod "MGKalman"``

## Author

Mohamed GHENANIA, [email protected]

### Latest podspec

```{
"name": "MGKalman",
"version": "0.2.0",
"summary": "An efficient and simple implementation of the Kalman filter in Objective C",
"description": "MGKalman is an efficient and simple implementation of the Kalman filter in Objective C.",
"homepage": "https://github.com/ghenania/MGKalman",
"authors": {
"Mohamed GHENANIA": "[email protected]"
},
"source": {
"git": "https://github.com/ghenania/MGKalman.git",
"tag": "0.2.0"
},
"platforms": {
"ios": "8.0"
},
"requires_arc": true,
"source_files": "Pod/Classes/**/*",
"resource_bundles": {
"MGKalman": [
"Pod/Assets/*.png"
]
},
"frameworks": "Accelerate",
"dependencies": {
"MGMatrix": [
"~> 0.2.0"
]
}
}```