To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

The primary repository for this project is hosted at git://github.com/rmeddis/MAP.git .
This repository is a read-only copy which is updated automatically every hour.

Statistics Download as Zip
| Branch: | Revision:

root / userProgramsTim / map_iih_onto_log.m @ 38:c2204b18f4a2

History | View | Annotate | Download (1.81 KB)

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