% Delay embedding for input-output prediction 

%  Time index for delay embedding prediction
%  [tx,ty,T] = pred_time_index(x,parm)
% --- Input
% x : Input data  : Xdim x Tsample x Ntrial
% parm : Time delay embedding parameter
% parm.Tau       = Lag time
% parm.Dtau      = Number of embedding dimension
% parm.Tpred     = Prediction time step :
%                  y(t+Tpred) = W * [x(t); ...; x(t-Tdelay)]
%                             = W(1)*x(t) + ... + W(Dtau)*x(t-Tdelay)
%                  ydata(t)   = W * xdata(t)
% --- Output
%	%  Time period for prediction
%	T  = Ndata - Tpred - Tdelay;  Tdelay = Tau * (Dtau - 1)
%	tx = 1:(Ndata-Tpred);
%	ty = (Tpred+Tdelay+1):Ndata;
%
% X(1:Tdelay+1) -> Y(Tdelay + Tpred + 1)
%
% ydata(:,1:T)  =   y(:,ty)
% xdata(:,1:T+Tdelay) = x(:,tx);

Please note that there are time index differences 
for original variable x(t) & y(t) and xdata(t) & ydata(t)

example
 Tau   = 2
 Dtau  = 2
 Tpred = 1

 ydata(t) t =                    1    2    3    4    5    6    7
 xdata(t) t =               1    2    3    4    5    6    7    8
              ----|----|----|----|----|----|----|----|----|----|
  x(tx)  tx =     1    2    3    4    5    6    7    8    9    10

xdata(1) = [x(3); x(1)]
xdata(2) = [x(4); x(2)]

...
ydata(1) = y(4)
ydata(2) = y(5)
