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.
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 |