Marsyas  0.5.0-beta1
Public Member Functions
DeInterleaveSizecontrol Class Reference

Reorder input observations. More...

#include <DeInterleaveSizecontrol.h>

Inherits MarSystem.

Public Member Functions

MarSystemclone () const
 DeInterleaveSizecontrol (std::string name)
 DeInterleaveSizecontrol (const DeInterleaveSizecontrol &a)
void myProcess (realvec &in, realvec &out)
 Processes data.
 ~DeInterleaveSizecontrol ()

Detailed Description

Reorder input observations.

This is designed, so that its output can potentially be meaningfully split by the Parallel MarSystem.

if you want to deinterleave samples (possibly with different channels containing different numbers of samples): transpose, then deinterleave using this marsystem, then transpose again (using the Transposer MarSystem).

Same basic functionality as Deinterleave. As opposed to that one, this is not matrix multiplication based, and therefore has additional support for rows (observations) of different lengths.

For example: the second input row has only 5 entries instead of the 8 of the first (rest is assumed to be zero padded) - then the result for three sets (numSets - control = 3) would not only reorder the elements of the 8 elements (ordered 0th,1st,2nd,3rd,4th,5th,6th,7th) of the first row to the new order 0th,3rd,6th,1st,4th,7th,2nd,5th but also reorder the sedond row in the following order: 0th,3rd,1st,4th,2nd(,5th,6th,7th following - i.e. unchanged).

In general this means that: The **input** realvec is assumed to be organized in numSets equal modulo sets - i.e. in manner of:

    n*numSets,n*numSets+1,...,n*numSets+(numSets-1)

This marsystem ensures that the **output** will be ordered with the sets grouped together - i.e. in a manner of

    numSet[0][0],numSet[0][1],numSet[0][2],...,numSet[0][inObervations/numsets],
    numSet[1][0],numSet[1][1],numSet[1][2],...,numSet[1][inObervations/numsets],
    ...,
    numSet[numSets-1][0],numSet[numSets-1][1],numSet[numSets-1][2],...,numSet[numSets-1][inObervations/numsets]

Note that, if the number of observations is not divisible by the number of Sets, then the first "rest" groups will have one element more than the remaining groups. (With "rest" being the rest of the division of the number of observations by the number of Sets).

Controls:

Definition at line 71 of file DeInterleaveSizecontrol.h.


Constructor & Destructor Documentation

DeInterleaveSizecontrol ( std::string  name)

Definition at line 24 of file DeInterleaveSizecontrol.cpp.

Definition at line 36 of file DeInterleaveSizecontrol.cpp.

Definition at line 45 of file DeInterleaveSizecontrol.cpp.


Member Function Documentation

MarSystem * clone ( ) const [virtual]

Implements MarSystem.

Definition at line 50 of file DeInterleaveSizecontrol.cpp.

void myProcess ( realvec in,
realvec out 
) [virtual]

Processes data.

Parameters:
inInput data to read.
outOutput data to write.

Implement this method in subclass to define specific data processing.

Implements MarSystem.

Definition at line 71 of file DeInterleaveSizecontrol.cpp.


The documentation for this class was generated from the following files: