NAME
delay_unit - tapped delay line for vector sequence
PROTOTYPE
unitptr delay_unit( int n, int t, unitptr dest)
ARGUMENTS
- int n
- dimensionality of input and output vectors
- int t
- number of delay steps
- unitptr dest
- host unit for newly created instance
RETURN VALUE:
- unitptr u
- pointer to newly created unit
INTERFACE OF CREATED UNIT:
- X_in[n]:
- (input field 0) input vector
- CTL_in[1]:
- (input field 1) inverse time constant c
- out_0[n]:
- (output field 0) output vector (input at time
of most recent exec operation = 1 time step ago)
- ...
-
- out_t-1[n]:
- (output field t-1) output vector (input
t steps ago)
EXECUTION:
For f=t-1,t-2,...1:
out_f[i] = (1-c) * out_f[i] + c * out_(f-1) [i]
For f=0:
out_0[i] = (1-c) * out_0[i] + c * X_in[i]
INITIALIZATION:
A call of ctrl_unit(cmode,u) with cmode=NST_I_ZERO or
cmode=NST_INIT sets all values out_f[i] to zero.
DESCRIPTION:
The created unit becomes a subunit of unit dest. The unit
provides a buffer chain of leaky integrators. It buffers
the t most recent
input vectors and makes them available at output fields 0
(holds input present during previous exec call) to t-1
(input t exec steps ago).
Each field has n pins. Constant MAXDELAY is the maximal
number plus one of delay steps for which this routine
will work.
All new output values become a linear (precisely: a convex)
combination of the old value and of the newly computed
activity. A decay of the old value is determined by a decay
factor (1-c), where c is the value at the control pin
CTL_in[0] (default is c=1). The newly computed activity
value is multiplicatively scaled by the factor c and super-
imposed over the decayed old value. This has the effect,
that each output behaves like a leaky integrator with a time
constant of 1/c iteration steps. Special cases result for
c=1 and c=0. In the former case, the new output completely
replace the old value. This is the default setting after
creation of the unit. In the latter case, the output value
retains its old value (in fact, in this case, the internal
computation is suppressed; therefore, c=0 can be used to
switch the unit off).
This unit is intended to facilitate construction of
recurrent networks.
DEFAULTS:
c=1, out_f[i]=0
FILE:
nst_util
FILE
/homes/jontrup/nst5/man/../o.sol2//../foldersrc/nst_util.c