%
% Generates 2Hz square waves with 0.5 dutycycle.
%
function noise = makeTrainNoise(corrRudolph, nTrains, freq, maxTime)
nRudolph = nTrains - sqrt(corrRudolph)*(nTrains-1);
allSpikes = poissonMaxTime(freq*nRudolph, maxTime);
for i=1:nTrains
finalSpikes{i} = [];
end
for i=1:length(allSpikes)
repeats = nTrains / nRudolph;
repeats = floor(repeats) + (rand(1) < mod(repeats,1));
freeTrains = 1:nTrains;
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:nTrains
trainLen(i) = length(finalSpikes{i});
end
maxLen = max(trainLen);
noise = inf*ones(maxLen,nTrains);
for i=1:nTrains
noise(1:length(finalSpikes{i}),i) = finalSpikes{i};
end