int_spikes.m 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. function [spikes1] = int_spikes(spikes,handles);
  2. %Interpolates with cubic splines to improve alignment.
  3. %Not in use currently
  4. w_pre=handles.w_pre;
  5. w_post=handles.w_post;
  6. ls = w_pre + w_post;
  7. detect = handles.detection;
  8. int_factor = handles.int_factor;
  9. nspk=size(spikes,1);
  10. s=1:size(spikes,2);
  11. ints=1/int_factor:1/int_factor:size(spikes,2);
  12. intspikes=zeros(1,length(ints));
  13. spikes1=zeros(nspk,ls);
  14. switch detect
  15. case 'pos'
  16. for i=1:nspk
  17. intspikes(:) = spline(s,spikes(i,:),ints);
  18. [maxi, iaux]=max((intspikes(w_pre*int_factor:w_pre*int_factor+8)));
  19. iaux = iaux + w_pre*int_factor -1;
  20. spikes1(i,w_pre:-1:1) = intspikes(iaux:-int_factor:iaux-w_pre*int_factor+int_factor);
  21. spikes1(i,w_pre+1:ls) = intspikes(iaux+int_factor:int_factor:iaux+w_post*int_factor);
  22. end
  23. case 'neg'
  24. for i=1:nspk
  25. intspikes(:) = spline(s,spikes(i,:),ints);
  26. [maxi, iaux]=min((intspikes(w_pre*int_factor:w_pre*int_factor+8)));
  27. iaux = iaux + w_pre*int_factor -1;
  28. spikes1(i,w_pre:-1:1) = intspikes(iaux:-int_factor:iaux-w_pre*int_factor+int_factor);
  29. spikes1(i,w_pre+1:ls) = intspikes(iaux+int_factor:int_factor:iaux+w_post*int_factor);
  30. end
  31. case 'both'
  32. for i=1:nspk
  33. intspikes(:) = spline(s,spikes(i,:),ints);
  34. [maxi, iaux]=max(abs(intspikes(w_pre*int_factor:w_pre*int_factor+8)));
  35. iaux = iaux + w_pre*int_factor -1;
  36. spikes1(i,w_pre:-1:1) = intspikes(iaux:-int_factor:iaux-w_pre*int_factor+int_factor);
  37. spikes1(i,w_pre+1:ls) = intspikes(iaux+int_factor:int_factor:iaux+w_post*int_factor);
  38. end
  39. end