function peaklist=getpeaklist(data,thresh); % PEAKLIST = GETPEAKLIST(DATA,THRESH) % Returns a list of indices to peaks in 1xn array DATA, where a peak must % be greater than THRESH and peaks are separated by at least 5 entries. savefig = gcf; %figure; %hold on; %plot(data); data = data .* (data > thresh); data = conv(data,blackman(5)); data = data(3:length(data)); % shift back over to compensate for filtering %plot(data); i=3; npeaks = 0; peaklist=0; y0list=0; while i <= length(data)-2, if (data(i) > 0) & (data(i) >= data(i-1)) & (data(i) >= data(i-2)) & (data(i) >= data(i+1)) & (data(i) >= data(i+2)), % we've found [filtered] peak - now compute at sub-pixel accuracy by % fitting parabola npeaks = npeaks + 1; [a,x0,y0]=fitparabola(data(i-1:i+1)); peaklist(npeaks) = i + x0; y0list(npeaks) = y0; % peaklist(npeaks) = i; i = i+5; else i = i+1; end end %plot(peaklist,y0list,'r.'); figure(savefig);