OpenViBE Documentation

Epoch average

Summary

Doc_BoxAlgorithm_EpochAverage.png

  • 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 vectors

This 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.

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.

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 | ...
+----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+
The output stream will look like this :
                     +----+                      +----+
                     | O1 |                      | O2 |        ...
                     +----+                      +----+
where 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 :

+----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+
| I1 | | I2 | | I3 | | I4 | | I5 | | I6 | | I7 | | I8 | | I9 | ...
+----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+ +----+
The output stream will look like this :
                     +----+ +----+ +----+ +----+ +----+ +----+
                     | O1 | | O2 | | O3 | | O4 | | O5 | | O6 | ...
                     +----+ +----+ +----+ +----+ +----+ +----+
where :
  • 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...

Miscellaneous