aureservoir::SimFilter< T > Class Template Reference

#include <simulate.h>

Inheritance diagram for aureservoir::SimFilter< T >:

Inheritance graph
[legend]
Collaboration diagram for aureservoir::SimFilter< T >:

Collaboration graph
[legend]

Detailed Description

template<typename T>
class aureservoir::SimFilter< T >

This is an extension of the bandpass style neurons to general n-order IIR-filter neurons.
See also:
class SimBP
The IIR Filter is implemented in Transposed Direct Form 2, which has good numeric stability properties. It is also possible to cascade multiple IIR Filters in serie, for better numerical performance.
See also:
http://ccrma.stanford.edu/~jos/filters/Transposed_Direct_Forms.html
The filter calculates the following difference equation (same usage as Matlab's filter object): a[0]*y[n] = b[0]*x[n] + b[1]*x[n-1] + ... + b[nb]*x[n-nb]

Public Member Functions

 SimFilter (ESN< T > *esn)
virtual ~SimFilter ()
virtual SimFilter< T > * clone (ESN< T > *esn) const
class SimFilter Implementation
virtual void setIIRCoeff (const typename DEMatrix< T >::Type &B, const typename DEMatrix< T >::Type &A, int series=1) throw (AUExcept)
virtual void simulate (const typename ESN< T >::DEMatrix &in, typename ESN< T >::DEMatrix &out)
class SimBase Implementation
virtual void reallocate ()
additional interface for filter neurons and delay&sum readout
virtual void setBPCutoffConst (T f1, T f2) throw (AUExcept)
virtual void setBPCutoff (const typename ESN< T >::DEVector &f1, const typename ESN< T >::DEVector &f2) throw (AUExcept)
virtual void initDelayLine (int index, const typename DEVector< T >::Type &initbuf) throw (AUExcept)
virtual DEMatrix< T >
::Type 
getDelays () throw (AUExcept)
virtual DEVector< T >
::Type & 
getDelayBuffer (int output, int nr) throw (AUExcept)

Data Fields

SerialIIRFilter< T > filter_
ESN< T >::DEMatrix last_out_
ESN< T >::DEVector t_

Protected Attributes

ESN< T > * esn_

Constructor & Destructor Documentation

template<typename T>
aureservoir::SimFilter< T >::SimFilter ( ESN< T > *  esn  )  [inline]

template<typename T>
virtual aureservoir::SimFilter< T >::~SimFilter (  )  [inline, virtual]


Member Function Documentation

template<typename T>
virtual SimFilter<T>* aureservoir::SimFilter< T >::clone ( ESN< T > *  esn  )  const [inline, virtual]

virtual constructor idiom

Implements aureservoir::SimBase< T >.

Reimplemented in aureservoir::SimFilter2< T >, aureservoir::SimFilterDS< T >, and aureservoir::SimSquare< T >.

template<typename T>
void aureservoir::SimFilter< T >::setIIRCoeff ( const typename DEMatrix< T >::Type &  B,
const typename DEMatrix< T >::Type &  A,
int  series = 1 
) throw (AUExcept) [inline, virtual]

sets the filter coefficients

Parameters:
B matrix with numerator coefficient vectors (m x nb) m ... nr of parallel filters (neurons) nb ... nr of filter coefficients
A matrix with denominator coefficient vectors (m x na) m ... nr of parallel filters (neurons) na ... nr of filter coefficients
seris nr of serial IIR filters, e.g. if series=2 the coefficients B and A will be divided in its half and calculated with 2 serial IIR filters

Reimplemented from aureservoir::SimBase< T >.

template<typename T>
void aureservoir::SimFilter< T >::simulate ( const typename ESN< T >::DEMatrix in,
typename ESN< T >::DEMatrix out 
) [inline, virtual]

implementation of the algorithm

See also:
class SimBase::simulate

Implements aureservoir::SimBase< T >.

Reimplemented in aureservoir::SimFilter2< T >, aureservoir::SimFilterDS< T >, and aureservoir::SimSquare< T >.

template<typename T>
void aureservoir::SimBase< T >::reallocate (  )  [inline, virtual, inherited]

reallocates data buffers

Reimplemented in aureservoir::SimFilterDS< T >, and aureservoir::SimSquare< T >.

template<typename T>
void aureservoir::SimBase< T >::setBPCutoffConst ( f1,
f2 
) throw (AUExcept) [inline, virtual, inherited]

Reimplemented in aureservoir::SimBP< T >.

template<typename T>
void aureservoir::SimBase< T >::setBPCutoff ( const typename ESN< T >::DEVector f1,
const typename ESN< T >::DEVector f2 
) throw (AUExcept) [inline, virtual, inherited]

Reimplemented in aureservoir::SimBP< T >.

template<typename T>
void aureservoir::SimBase< T >::initDelayLine ( int  index,
const typename DEVector< T >::Type &  initbuf 
) throw (AUExcept) [inline, virtual, inherited]

Reimplemented in aureservoir::SimFilterDS< T >.

template<typename T>
DEMatrix< T >::Type aureservoir::SimBase< T >::getDelays (  )  throw (AUExcept) [inline, virtual, inherited]

Reimplemented in aureservoir::SimFilterDS< T >.

template<typename T>
DEVector< T >::Type & aureservoir::SimBase< T >::getDelayBuffer ( int  output,
int  nr 
) throw (AUExcept) [inline, virtual, inherited]

Reimplemented in aureservoir::SimFilterDS< T >.


Field Documentation

template<typename T>
SerialIIRFilter<T> aureservoir::SimFilter< T >::filter_

the filter object

template<typename T>
ESN<T>::DEMatrix aureservoir::SimBase< T >::last_out_ [inherited]

output from last simulation

template<typename T>
ESN<T>::DEVector aureservoir::SimBase< T >::t_ [inherited]

temporary object needed for algorithm calculation

template<typename T>
ESN<T>* aureservoir::SimBase< T >::esn_ [protected, inherited]

reference to the data of the network


The documentation for this class was generated from the following files:
Generated on Wed Mar 12 21:16:11 2008 for aureservoir by  doxygen 1.5.3