annotate userProgramsTim/map_iih_onto_log.m @ 38:c2204b18f4a2 tip

End nov big change
author Ray Meddis <rmeddis@essex.ac.uk>
date Mon, 28 Nov 2011 13:34:28 +0000
parents
children
rev   line source
rmeddis@38 1 function [mappediih,centerfreqs] = map_iih_onto_log(iih,numchannels,sfreq)
rmeddis@38 2
rmeddis@38 3 %function to map an IPIH from the interval axis onto the frequency axis
rmeddis@38 4 %with no overlap and mean firing rate.
rmeddis@38 5 %
rmeddis@38 6 % Tim Juergens, September 2011
rmeddis@38 7 %
rmeddis@38 8 % input: iih: IPIH with dimensions interval (1) and time step (2)
rmeddis@38 9 % the first dimension translates to time using the actual
rmeddis@38 10 % sampling frequency
rmeddis@38 11 % numchannels: number of desired channels
rmeddis@38 12 % sfreq: sampling frequency
rmeddis@38 13 % output: mappediih: IPIH with dimensions frequency channel (1) and time
rmeddis@38 14 % step (2)
rmeddis@38 15 % centerfreqs: center frequencies of the channels of mappediih
rmeddis@38 16
rmeddis@38 17 ctr_intervals = [1/sfreq:1/sfreq:size(iih,1)/sfreq];
rmeddis@38 18 lowestBF=1/ctr_intervals(end);
rmeddis@38 19 highestBF=10000;
rmeddis@38 20
rmeddis@38 21 borderfreqs = logspace(log10(lowestBF),log10(highestBF),numchannels+1);
rmeddis@38 22
rmeddis@38 23 for iCounter = 1:numchannels
rmeddis@38 24 centerfreqs(iCounter)=(borderfreqs(iCounter)+borderfreqs(iCounter+1))/2;
rmeddis@38 25 end
rmeddis@38 26
rmeddis@38 27 for iCounter = 1:length(borderfreqs) %find the indices that correspond to the borderfrequencies of the BF filters
rmeddis@38 28 [tmp,channelbordersIPIindex(iCounter)]=min(abs(borderfreqs(iCounter)-1./ctr_intervals));
rmeddis@38 29 end
rmeddis@38 30
rmeddis@38 31 for iCounter = 1:length(centerfreqs)
rmeddis@38 32 %mapping with one interval sample overlap
rmeddis@38 33 mappediih(iCounter,:) = mean(iih(channelbordersIPIindex(end-iCounter+1):channelbordersIPIindex(end-iCounter),:));
rmeddis@38 34 end
rmeddis@38 35
rmeddis@38 36
rmeddis@38 37
rmeddis@38 38 % OPTIONAL PLOTTING
rmeddis@38 39 figure
rmeddis@38 40 YTickIdx = 1:floor(numel(centerfreqs)/6):numel(centerfreqs);
rmeddis@38 41 YTickIdxRev = numel(centerfreqs)+1-YTickIdx;
rmeddis@38 42 if ~isempty(gca)
rmeddis@38 43 axes(gca); %#ok<MAXES>
rmeddis@38 44 imagesc(mappediih);
rmeddis@38 45 set(gca, 'YTick', YTickIdx);
rmeddis@38 46 set(gca, 'YTickLabel', num2str( centerfreqs(YTickIdxRev)', '%0.0f' ));
rmeddis@38 47 ylabel('cf in Hz')
rmeddis@38 48 end