rmeddis@38: function [mappediih,centerfreqs] = map_iih_onto_log(iih,numchannels,sfreq) rmeddis@38: rmeddis@38: %function to map an IPIH from the interval axis onto the frequency axis rmeddis@38: %with no overlap and mean firing rate. rmeddis@38: % rmeddis@38: % Tim Juergens, September 2011 rmeddis@38: % rmeddis@38: % input: iih: IPIH with dimensions interval (1) and time step (2) rmeddis@38: % the first dimension translates to time using the actual rmeddis@38: % sampling frequency rmeddis@38: % numchannels: number of desired channels rmeddis@38: % sfreq: sampling frequency rmeddis@38: % output: mappediih: IPIH with dimensions frequency channel (1) and time rmeddis@38: % step (2) rmeddis@38: % centerfreqs: center frequencies of the channels of mappediih rmeddis@38: rmeddis@38: ctr_intervals = [1/sfreq:1/sfreq:size(iih,1)/sfreq]; rmeddis@38: lowestBF=1/ctr_intervals(end); rmeddis@38: highestBF=10000; rmeddis@38: rmeddis@38: borderfreqs = logspace(log10(lowestBF),log10(highestBF),numchannels+1); rmeddis@38: rmeddis@38: for iCounter = 1:numchannels rmeddis@38: centerfreqs(iCounter)=(borderfreqs(iCounter)+borderfreqs(iCounter+1))/2; rmeddis@38: end rmeddis@38: rmeddis@38: for iCounter = 1:length(borderfreqs) %find the indices that correspond to the borderfrequencies of the BF filters rmeddis@38: [tmp,channelbordersIPIindex(iCounter)]=min(abs(borderfreqs(iCounter)-1./ctr_intervals)); rmeddis@38: end rmeddis@38: rmeddis@38: for iCounter = 1:length(centerfreqs) rmeddis@38: %mapping with one interval sample overlap rmeddis@38: mappediih(iCounter,:) = mean(iih(channelbordersIPIindex(end-iCounter+1):channelbordersIPIindex(end-iCounter),:)); rmeddis@38: end rmeddis@38: rmeddis@38: rmeddis@38: rmeddis@38: % OPTIONAL PLOTTING rmeddis@38: figure rmeddis@38: YTickIdx = 1:floor(numel(centerfreqs)/6):numel(centerfreqs); rmeddis@38: YTickIdxRev = numel(centerfreqs)+1-YTickIdx; rmeddis@38: if ~isempty(gca) rmeddis@38: axes(gca); %#ok rmeddis@38: imagesc(mappediih); rmeddis@38: set(gca, 'YTick', YTickIdx); rmeddis@38: set(gca, 'YTickLabel', num2str( centerfreqs(YTickIdxRev)', '%0.0f' )); rmeddis@38: ylabel('cf in Hz') rmeddis@38: end