%
% Generates 2Hz square waves with 0.5 dutycycle.
%
function noise = makeTrainInput(corr_syn, percSingleRepeats, nSyn, freq, maxTime)
nShare = nSyn - sqrt(corr_syn)*(nSyn-1);
allSpikes = poissonMaxTime(freq*nShare, maxTime);
for i=1:nSyn
finalSpikes{i} = [];
end
for i=1:length(allSpikes)
repeats = nSyn*percSingleRepeats;
repeats = floor(repeats) + (rand(1) < mod(repeats,1));
freeTrains = 1:nSyn;
for j=1:repeats
idx = ceil(length(freeTrains)*rand(1));
trainIdx = freeTrains(idx);
freeTrains(idx) = [];
finalSpikes{trainIdx} = [finalSpikes{trainIdx}; allSpikes(i)];
end
end
for i=1:nSyn
trainLen(i) = length(finalSpikes{i});
end
maxLen = max(trainLen);
noise = 0*ones(maxLen,nSyn);
for i=1:nSyn
noise(1:length(finalSpikes{i}),i) = finalSpikes{i};
end