# Epoch average

## Summary

- Plugin name : Epoch average
- Version : 1.0
- Author : Yann Renard
- Compnay : INRIA/IRISA
- Short description : Averages matrices among time, this can be used to enhance ERPs
- Documentation template generation date : Jun 8 2009

## Description

This box can average matrices of different types including signal, spectrum or feature vectorsThis box prosed several methods of averaging for streamed epoched streamed.

## Inputs

The input type of this box can be changed. Its type must be derived of type Streamed matrix stream node identifiers in order to be parsed by the input reader. If the author changes the input type, the output type will be changed the same way.### 1. Input epochs

This input receives the input streamed matrix to average.

- Type identifier : Streamed matrix
*(0x544a003e, 0x6dcba5f6)*

## Outputs

The output type of this box can be changed. Its type must be derived of type Streamed matrix stream node identifiers in order for the writer to format the output chunks. If the author changes the output type, the input type will be changed the same way.### 1. Averaged epochs

This output sends the averaged streamed matrix. Averaging method is done according to the box settings.

- Type identifier : Streamed matrix
*(0x544a003e, 0x6dcba5f6)*

## Settings

### 1. Averaging type

This setting gives the method to use in order to average the input matrices. It can be of two types :*Epoch block average*: in this case, the averaging is done on a number of epochs (see next setting). Once this exact number of input is received, the average is computed and output.*Moving average*: in this case, the averaging is done at every input reception on the last few buffers, starting as soon as enough input has been received.

- Type identifier :
*Epoch average method (0x6530bdb1, 0xd057bbfe)*

- Default value : [
*(0x426377e7, 0xcf8e32cd)*]

### 2. Epoch count

This setting tells the box how much buffer it should use in order to compute the average.

- Type identifier :
*Integer (0x007deef9, 0x2f3e95c6)*

- Default value : [
*4*]

## Examples

Let's study two cases. First, suppose you have such box with*Epoch block average*set and

*four*epochs. The input stream is as follows :

+----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ | I1 | | I2 | | I3 | | I4 | | I5 | | I6 | | I7 | | I8 | | I9 | ... +----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+

+----+ +----+ | O1 | | O2 | ... +----+ +----+

`O1`

is the average of `I1`

, `I2`

, `I3`

and `I4`

and where `O2`

is the average of `I5`

, `I6`

, `I7`

and `I8`

.
Now consider the case where you configured this box with *Moving average* and *four* epochs. Given the same input stream :

+----+ +----+ +----+ +----+ +----+ +----+ | O1 | | O2 | | O3 | | O4 | | O5 | | O6 | ... +----+ +----+ +----+ +----+ +----+ +----+

`O1`

is the average of`I1`

,`I2`

,`I3`

and`I4`

`O2`

is the average of`I2`

,`I3`

,`I4`

and`I5`

`O3`

is the average of`I3`

,`I4`

,`I5`

and`I6`

`O4`

is the average of`I4`

,`I5`

,`I6`

and`I7`

- etc...