=======================
Backward Moving Average
=======================
:doc:`/WorkProcessClassifiers/LocalAlgorithm/index` - :doc:`/WorkProcessClassifiers/OneDimensionalAlgorithm/index`

*Backward Moving Average* algorithm replaces each original data value by the average over its neighbor values. The choice of filter width has a great impact on the final results. The basic formula (for filter width :math:`L = M+1`\ ) is stated as follows:

.. math::

    \hat{x}[n] = \frac{1}{M+1} \sum_{k=-M}^0 x[n+k] \, \text{,} 

where :math:`x[n]` and :math:`\hat{x}[n]` denote raw data and processed data, respectively.

.. rubric:: Input Parameters

+------------------------+------------------------------------------------+----------------------------------------------------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
| Parameter              | Type                                           | Constraint                                                     | Description                                      | Remarks                                                                                                      |
+========================+================================================+================================================================+==================================================+==============================================================================================================+
| :math:`x[n]`           | :math:`x[n] \in \mathbb R^N`                   | :math:`N \in \mathbb{N}`                                       | Input data sequence of length :math:`N`          | The algorithm assumes that input data contains no outliers and improper values such as 'nan', 'inf', 'null'. |
+------------------------+------------------------------------------------+----------------------------------------------------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+
| :math:`L`              | :math:`L \in \mathbb N`                        | :math:`L = M + 1, \quad M \in \mathbb{N}`                      |                                                  |                                                                                                              |
+------------------------+------------------------------------------------+----------------------------------------------------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+

.. rubric:: Output Parameters

+--------------------------------+--------------------------------------------------------+----------------------------------------+---------------------------------------------------+---------+
| Parameter                      | Type                                                   | Constraint                             | Description                                       | Remarks |
+================================+========================================================+========================================+===================================================+=========+
| :math:`\hat{x}[n]`             | :math:`\hat{x}[n] \in \mathbb R^N`                     | :math:`N \in \mathbb{N}`               | Output data sequence of length :math:`N`          |         |
+--------------------------------+--------------------------------------------------------+----------------------------------------+---------------------------------------------------+---------+

.. rubric:: Tool Support

* :doc:`/Tools/ExcelTool/index`

* :doc:`/Tools/MatlabTool/index`

  For details refer to the online documentation of the function `'filter' <http://www.mathworks.de/help/techdoc/ref/filter.html>`__.

.. rubric:: Single Steps using the Algorithm

* :doc:`/DataPreprocessing/DataCleaning/DataDenoising/DataDenoisingWithBackwardMovingAverage/index`

.. rubric:: References

- B.\  Jaehne, Digitale Bildverarbeitung, 5th ed. Berlin: Springer Verlag, 2002.

- K.D.\  Kammeyer and K. Kroschel, Digitale Signalverarbeitung, 5th ed. Stuttgart: Teubner, 2002.