% % Generates 2Hz square waves with 0.5 dutycycle. % function insignal = makeDaughterInsignal(corrRudolph, nDaughters, ... upFreq, downFreq, maxTime) nRudolph = nDaughters - sqrt(corrRudolph)*(nDaughters-1); pShare = 1/nRudolph; baseFreq = 2; dutyCycle = 0.5; stateTime = dutyCycle/baseFreq; isUpstate = 1; % Start with upstate startTime = 0; motherSpikes = []; for startTime = 0:stateTime:(maxTime-stateTime) if(isUpstate) curFreq = upFreq*nRudolph; else curFreq = downFreq*nRudolph; end motherSpikes = [motherSpikes; ... startTime + poissonMaxTime(curFreq, stateTime)]; isUpstate = ~isUpstate; end len = length(motherSpikes); v = (rand(len, nDaughters) < pShare).*repmat(motherSpikes,1,nDaughters); v(find(v == 0)) = inf; v = sort(v); vlen = 1+max(mod(find(v < inf) - 1, len)); insignal = v(1:vlen,:);