You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: spm_dcm_spem_data.m
    path of file: ./repos/spm12/toolbox/SPEM_and_DCM
    
    the code of the file until where you have to start completion: function xY = spm_dcm_spem_data(xY)
% Prepare (decimate and normalise) data DCM for SPEM
% FORMAT xY = spm_dcm_spem_data(xY)
%
%   xY.Y{i}  - original data
%   xY.C{i}  - original target
%   xY.DT    - original timing
%
% creates:
%
%   xY.y{i} - normalised (decimated) lag (data - target)
%   xY.u{i} - normalised (decimated) target
%   xY.R(i) - decimation
%   xY.x(i) - intial states
%   xY.dt   - mean normalised (decimated) timing
%
%  This auxiliary routine  decimates and normalises eye movement data to a

    
function xY = spm_dcm_spem_data(xY)
% Prepare (decimate and normalise) data DCM for SPEM
% FORMAT xY = spm_dcm_spem_data(xY)
%
%   xY.Y{i}  - original data
%   xY.C{i}  - original target
%   xY.DT    - original timing
%
% creates:
%
%   xY.y{i} - normalised (decimated) lag (data - target)
%   xY.u{i} - normalised (decimated) target
%   xY.R(i) - decimation
%   xY.x(i) - intial states
%   xY.dt   - mean normalised (decimated) timing
%
%  This auxiliary routine  decimates and normalises eye movement data to a
%  single period of a (negative) cosine wave - of unit amplitude.
%__________________________________________________________________________
% Copyright (C) 2008 Wellcome Trust Centre for Neuroimaging
 
% Karl Friston
% $Id: spm_dcm_spem_data.m 6014 2014-05-23 15:00:35Z guillaume $
 
% Get frequency (in bins) and target trajectory
%==========================================================================
N  = 64;                        % number of time bins after decimation
 
% cycle over conditions or trials
%--------------------------------------------------------------------------
for i = 1:length(xY.Y)
    
    % decimate
    %----------------------------------------------------------------------
    R         = ceil(length(xY.Y{i})/N);
    Cmax      = max(abs(xY.C{i}));
    xY.y{i}   = decimate(spm_vec(xY.Y{i})/Cmax,R);
    xY.u{i}   = decimate(spm_vec(xY.C{i})/Cmax,R);
    
    % take differences (lag in relation to target)
    %----------------------------------------------------------------------
    xY.y{i}   = xY.y{i} - xY.u{i};
    
    % initial states and velocities (o - occulomotor; x - target)
    %----------------------------------------------------------------------
    xY.x(i).o = [xY.y{i}(1) + xY.u{i}(1); xY.y{i}(2) - xY.y{i}(1)];
    xY.x(i).x = [xY.u{i}(1)             ; xY.u{i}(2) - xY.u{i}(1)];
    
    % time bins
    %----------------------------------------------------------------------
    xY.dt(i)  = xY.DT*R;
    xY.R(i)   = R;
 
end