ts_xcorr.m 788 B

12345678910111213141516171819202122232425262728293031
  1. function [tscorr,lgs] = ts_xcorr(ts1,ts2,varargin)
  2. iod = @utils.inputordefault;
  3. if size(ts1,1)>size(ts1,2)
  4. ts1 = ts1';
  5. end
  6. if size(ts2,1)>size(ts2,2)
  7. ts2 = ts2';
  8. end
  9. mints = min([ts1,ts2]);
  10. [dt,varargin] = iod('dt',0.001,varargin);% 1 ms timebin
  11. [maxlagt,varargin] = iod('maxlagt',0.2,varargin); % 200 ms lag
  12. [titlestr,varargin] = iod('titlestr',[],varargin);
  13. [ax,varargin] = iod('ax',[],varargin);
  14. if isempty(ax)
  15. ax = draw.jaxes();
  16. end
  17. tbin1 = round((ts1 - mints)./dt) + 1;
  18. tbin2 = round((ts2 - mints)./dt) + 1;
  19. sp1 = zeros(1,max([tbin1,tbin2]));
  20. sp2 = zeros(1,max([tbin1,tbin2]));
  21. sp1(tbin1) = 1;
  22. sp2(tbin2) = 1;
  23. [tscorr,lgs]=xcorr(sp1,sp2,maxlagt./dt);
  24. lgs = lgs.*dt;% re-transform into seconds
  25. tscorr(lgs==0)=0;
  26. plot(ax,lgs,tscorr);
  27. ylabel('xcorr');
  28. title(titlestr);
  29. end