Revision 23:6cce421531e2
| MAP/MAP1_14.m | ||
|---|---|---|
| 610 | 610 |
else % no MOC available yet |
| 611 | 611 |
MOC=ones(1, segmentLength); |
| 612 | 612 |
end |
| 613 |
plot(MOC) % current channel |
|
| 613 |
% apply MOC to nonlinear input function |
|
| 614 |
nonlinOutput=stapesDisplacement.* MOC; |
|
| 614 | 615 |
|
| 615 |
% first gammatone filter |
|
| 616 |
% first gammatone filter (nonlin path)
|
|
| 616 | 617 |
for order = 1 : GTnonlinOrder |
| 617 | 618 |
[nonlinOutput GTnonlinBdry1{BFno,order}] = ...
|
| 618 | 619 |
filter(GTnonlin_b(BFno,:), GTnonlin_a(BFno,:), ... |
| 619 |
stapesDisplacement, GTnonlinBdry1{BFno,order});
|
|
| 620 |
nonlinOutput, GTnonlinBdry1{BFno,order});
|
|
| 620 | 621 |
end |
| 621 |
|
|
| 622 | 622 |
% broken stick instantaneous compression |
| 623 |
% nonlinear gain is weakend by MOC before applied to BM response |
|
| 624 |
y= nonlinOutput.*(MOC* DRNLa); % linear section. |
|
| 625 |
% compress those parts of the signal above the compression |
|
| 626 |
% threshold |
|
| 627 |
abs_x = abs(y); |
|
| 623 |
y= nonlinOutput.* DRNLa; % linear section. |
|
| 624 |
% compress parts of the signal above the compression threshold |
|
| 625 |
abs_x = abs(nonlinOutput); |
|
| 628 | 626 |
idx=find(abs_x>DRNLcompressionThreshold); |
| 629 | 627 |
if ~isempty(idx)>0 |
| 630 |
y(idx)=sign(y(idx)).*... |
|
| 631 |
(DRNLb*abs_x(idx).^DRNLc); |
|
| 628 |
y(idx)=sign(y(idx)).* (DRNLb*abs_x(idx).^DRNLc); |
|
| 632 | 629 |
end |
| 633 | 630 |
nonlinOutput=y; |
| 634 | 631 |
|
| ... | ... | |
| 1111 | 1108 |
[smoothedRates, MOCboundary{idx}] = ...
|
| 1112 | 1109 |
filter(MOCfilt_b, MOCfilt_a, rates(idx,:), ... |
| 1113 | 1110 |
MOCboundary{idx});
|
| 1111 |
% spont 'rates' is zero for IC |
|
| 1114 | 1112 |
MOCattSegment(idx,:)=smoothedRates; |
| 1115 | 1113 |
% expand timescale back to model dt from ANdt |
| 1116 | 1114 |
x= repmat(MOCattSegment(idx,:), ANspeedUpFactor,1); |
| README.md | ||
|---|---|---|
| 1 | 1 |
This is the new readMe file |
| 2 | 2 |
---------------------------- |
| 3 | 3 |
|
| 4 |
tada |
|
| 4 |
Look in the 'Help and reference data folder' for advice. |
|
| multithreshold 1.46/MAPmodel.m | ||
|---|---|---|
| 25 | 25 |
MAPparamsName, AN_spikesOrProbability); |
| 26 | 26 |
|
| 27 | 27 |
if showPlotsAndDetails |
| 28 |
options.showModelParameters=0;
|
|
| 28 |
options.printModelParameters=0;
|
|
| 29 | 29 |
options.showModelOutput=1; |
| 30 | 30 |
options.printFiringRates=1; |
| 31 | 31 |
options.showACF=0; |
| 32 | 32 |
options.showEfferent=1; |
| 33 |
showMAP(options) |
|
| 33 |
UTIL_showMAP(options)
|
|
| 34 | 34 |
end |
| 35 | 35 |
|
| 36 | 36 |
% No response, probably caused by hitting 'stop' button |
| ... | ... | |
| 133 | 133 |
end |
| 134 | 134 |
|
| 135 | 135 |
|
| 136 |
path(savePath) |
|
| 136 |
path(savePath) |
|
| multithreshold 1.46/old files/MAPmodel.m | ||
|---|---|---|
| 30 | 30 |
options.printFiringRates=1; |
| 31 | 31 |
options.showACF=0; |
| 32 | 32 |
options.showEfferent=1; |
| 33 |
showMAP(options) |
|
| 33 |
UTIL_showMAP(options)
|
|
| 34 | 34 |
end |
| 35 | 35 |
|
| 36 | 36 |
% No response, probably caused by hitting 'stop' button |
| ... | ... | |
| 133 | 133 |
end |
| 134 | 134 |
|
| 135 | 135 |
|
| 136 |
path(savePath) |
|
| 136 |
path(savePath) |
|
| multithreshold 1.46/subjGUI_MT.m | ||
|---|---|---|
| 1575 | 1575 |
MAPparamsName, AN_spikesOrProbability); |
| 1576 | 1576 |
|
| 1577 | 1577 |
if showPlotsAndDetails |
| 1578 |
options.showModelParameters=0;
|
|
| 1578 |
options.printModelParameters=0;
|
|
| 1579 | 1579 |
options.showModelOutput=1; |
| 1580 | 1580 |
options.printFiringRates=1; |
| 1581 | 1581 |
options.showACF=0; |
| 1582 | 1582 |
options.showEfferent=1; |
| 1583 |
showMAP(options) |
|
| 1583 |
options.surfProbability=0; |
|
| 1584 |
UTIL_showMAP(options) |
|
| 1584 | 1585 |
end |
| 1585 | 1586 |
|
| 1586 | 1587 |
% No response, probably caused by hitting 'stop' button |
| multithreshold 1.46/testBM.m | ||
|---|---|---|
| 19 | 19 |
% levels= 50; nLevels=length(levels); |
| 20 | 20 |
|
| 21 | 21 |
relativeFrequencies=[0.25 .5 .75 1 1.25 1.5 2]; |
| 22 |
relativeFrequencies=1; |
|
| 22 |
% relativeFrequencies=1;
|
|
| 23 | 23 |
|
| 24 | 24 |
% refBMdisplacement is the displacement of the BM at threshold |
| 25 | 25 |
% 1 nm disp at threshold (9 kHz, Ruggero) |
| ... | ... | |
| 122 | 122 |
|
| 123 | 123 |
% Tuning curve |
| 124 | 124 |
if length(relativeFrequencies)>2 |
| 125 |
figure(3), subplot(3,nBFs, nBFs+BFno) |
|
| 125 |
figure(3), subplot(3,nBFs, 2*nBFs+BFno)
|
|
| 126 | 126 |
% contour(stimulusFrequencies,levels,peakAmpBM,... |
| 127 | 127 |
% [refBMdisplacement refBMdisplacement],'r') |
| 128 | 128 |
contour(stimulusFrequencies,levels,peakAmpBM,... |
| ... | ... | |
| 138 | 138 |
|
| 139 | 139 |
% MOC contribution |
| 140 | 140 |
figure(3) |
| 141 |
subplot(3,nBFs,2*nBFs+BFno), cla
|
|
| 141 |
subplot(3,nBFs,nBFs+BFno), cla |
|
| 142 | 142 |
plot(levels,20*log10(peakEfferent), 'linewidth',2) |
| 143 | 143 |
ylabel('MOC (dB attenuation)'), xlabel('level')
|
| 144 | 144 |
title(['peak MOC: model= ' AN_spikesOrProbability]) |
| parameterStore/MAPparamsNormal.m | ||
|---|---|---|
| 57 | 57 |
% Acoustic reflex: maximum attenuation should be around 25 dB Price (1966) |
| 58 | 58 |
% i.e. a minimum ratio of 0.056. |
| 59 | 59 |
% 'spikes' model: AR based on brainstem spiking activity (LSR) |
| 60 |
OMEParams.rateToAttenuationFactor=0.004; % * N(all ICspikes)
|
|
| 60 |
OMEParams.rateToAttenuationFactor=0.006; % * N(all ICspikes)
|
|
| 61 | 61 |
% OMEParams.rateToAttenuationFactor=0; % * N(all ICspikes) |
| 62 | 62 |
|
| 63 | 63 |
% 'probability model': Ar based on AN firing probabilities (LSR) |
| ... | ... | |
| 75 | 75 |
DRNLParams.BFlist=BFlist; |
| 76 | 76 |
|
| 77 | 77 |
% DRNL nonlinear path |
| 78 |
DRNLParams.a=3e4; % nonlinear path gain (below compression threshold) |
|
| 79 |
DRNLParams.a=5e2; % DRNL.a=0 means no OHCs (no nonlinear path) |
|
| 78 |
DRNLParams.a=5e4; % DRNL.a=0 means no OHCs (no nonlinear path) |
|
| 80 | 79 |
|
| 81 | 80 |
DRNLParams.b=8e-6; % *compression threshold raised compression |
| 82 | 81 |
% DRNLParams.b=1; % b=1 means no compression |
| ... | ... | |
| 100 | 99 |
|
| 101 | 100 |
% DRNL MOC efferents |
| 102 | 101 |
DRNLParams.MOCdelay = efferentDelay; % must be < segment length! |
| 102 |
|
|
| 103 | 103 |
% 'spikes' model: MOC based on brainstem spiking activity (HSR) |
| 104 |
DRNLParams.rateToAttenuationFactor = .009; % strength of MOC |
|
| 105 |
DRNLParams.rateToAttenuationFactor = .004; % strength of MOC |
|
| 104 |
DRNLParams.rateToAttenuationFactor = .01; % strength of MOC |
|
| 106 | 105 |
% DRNLParams.rateToAttenuationFactor = 0; % strength of MOC |
| 106 |
% 'probability' model: MOC based on AN spiking activity (HSR) |
|
| 107 |
DRNLParams.rateToAttenuationFactorProb = .005; % strength of MOC |
|
| 108 |
% DRNLParams.rateToAttenuationFactorProb = .0; % strength of MOC |
|
| 109 |
DRNLParams.MOCrateThreshold =70; % spikes/s probability only |
|
| 107 | 110 |
|
| 108 |
% 'probability' model: MOC based on AN spiking activity (HSR) |
|
| 109 |
DRNLParams.rateToAttenuationFactorProb = .004; % strength of MOC |
|
| 110 |
% DRNLParams.rateToAttenuationFactorProb = .0; % strength of MOC |
|
| 111 | 111 |
DRNLParams.MOCtau =.1; % smoothing for MOC |
| 112 |
DRNLParams.MOCrateThreshold =50; % set to AN rate threshold |
|
| 113 | 112 |
|
| 114 | 113 |
|
| 115 | 114 |
%% #4 IHC_cilia_RPParams |
| testPrograms/demoTwisterProbability.m | ||
|---|---|---|
| 10 | 10 |
|
| 11 | 11 |
|
| 12 | 12 |
%% #2 probability (fast) or spikes (slow) representation |
| 13 |
% AN_spikesOrProbability='spikes'; |
|
| 14 |
% or |
|
| 15 | 13 |
AN_spikesOrProbability='probability'; |
| 16 | 14 |
|
| 17 | 15 |
|
| 18 | 16 |
%% #3 pure tone, harmonic sequence or speech file input |
| 19 |
signalType= 'tones'; |
|
| 20 |
duration=0.100; % seconds |
|
| 21 |
duration=0.020; % seconds |
|
| 22 |
sampleRate= 64000; |
|
| 23 |
% toneFrequency= 250:250:8000; % harmonic sequence (Hz) |
|
| 24 |
toneFrequency= 2000; % or a pure tone (Hz8 |
|
| 25 |
|
|
| 26 |
rampDuration=.005; % seconds |
|
| 27 |
|
|
| 28 |
% or |
|
| 29 | 17 |
signalType= 'file'; |
| 30 | 18 |
fileName='twister_44kHz'; |
| 31 |
% fileName='new-da-44khz'; |
|
| 32 | 19 |
|
| 33 | 20 |
|
| 34 | 21 |
%% #4 rms level |
| 35 |
% signal details |
|
| 36 |
leveldBSPL=70; % dB SPL |
|
| 22 |
leveldBSPL=60; % dB SPL |
|
| 37 | 23 |
|
| 38 | 24 |
|
| 39 | 25 |
%% #5 number of channels in the model |
| ... | ... | |
| 42 | 28 |
lowestBF=250; highestBF= 8000; |
| 43 | 29 |
BFlist=round(logspace(log10(lowestBF), log10(highestBF), numChannels)); |
| 44 | 30 |
|
| 45 |
% or specify your own channel BFs |
|
| 46 |
% BFlist=toneFrequency; |
|
| 47 |
|
|
| 48 |
|
|
| 49 | 31 |
%% #6 change model parameters |
| 50 | 32 |
paramChanges=[]; |
| 51 | 33 |
|
| 52 |
% or |
|
| 53 |
% Parameter changes can be used to change one or more model parameters |
|
| 54 |
% *after* the MAPparams file has been read |
|
| 55 |
% This example declares only one fiber type with a calcium clearance time |
|
| 56 |
% constant of 80e-6 s (HSR fiber) when the probability option is selected. |
|
| 57 |
% switch AN_spikesOrProbability |
|
| 58 |
% case 'probability' |
|
| 59 |
% paramChanges={'IHCpreSynapseParams.tauCa=80e-6;'};
|
|
| 60 |
% otherwise |
|
| 61 |
% paramChanges=[]; |
|
| 62 |
% end |
|
| 63 | 34 |
|
| 64 | 35 |
%% delare showMap options |
| 65 | 36 |
showMapOptions=[]; % use defaults |
| 66 | 37 |
|
| 67 | 38 |
% or (example: show everything including an smoothed SACF output |
| 68 |
showMapOptions.showModelParameters=1;
|
|
| 39 |
showMapOptions.printModelParameters=1;
|
|
| 69 | 40 |
showMapOptions.showModelOutput=1; |
| 70 | 41 |
showMapOptions.printFiringRates=1; |
| 71 | 42 |
showMapOptions.showACF=0; |
| 72 |
showMapOptions.showEfferent=1;
|
|
| 43 |
showMapOptions.showEfferent=0;
|
|
| 73 | 44 |
|
| 74 | 45 |
%% Generate stimuli |
| 75 | 46 |
|
| ... | ... | |
| 99 | 70 |
toc |
| 100 | 71 |
|
| 101 | 72 |
% the model run is now complete. Now display the results |
| 102 |
showMAP(showMapOptions) |
|
| 73 |
UTIL_showMAP(showMapOptions)
|
|
| 103 | 74 |
|
| 104 | 75 |
toc |
| 105 | 76 |
path(restorePath) |
| testPrograms/demoTwisterSpikes.m | ||
|---|---|---|
| 1 | 1 |
function demoTwisterSpikes |
| 2 | 2 |
|
| 3 | 3 |
% MAPdemo runs the MATLAB auditory periphery model (MAP1_14) as far as |
| 4 |
% the AN (probabilities) or IC (spikes) with graphical output
|
|
| 4 |
% IC (spikes) with graphical output |
|
| 5 | 5 |
|
| 6 |
% Things you might want to change; #1 - #5 |
|
| 7 | 6 |
|
| 8 | 7 |
%% #1 parameter file name |
| 9 | 8 |
MAPparamsName='Normal'; |
| ... | ... | |
| 11 | 10 |
|
| 12 | 11 |
%% #2 probability (fast) or spikes (slow) representation |
| 13 | 12 |
AN_spikesOrProbability='spikes'; |
| 14 |
% or |
|
| 15 |
% AN_spikesOrProbability='probability'; |
|
| 16 | 13 |
|
| 17 | 14 |
|
| 18 | 15 |
%% #3 pure tone, harmonic sequence or speech file input |
| 19 |
signalType= 'tones'; |
|
| 20 |
duration=0.100; % seconds |
|
| 21 |
duration=0.020; % seconds |
|
| 22 |
sampleRate= 64000; |
|
| 23 |
% toneFrequency= 250:250:8000; % harmonic sequence (Hz) |
|
| 24 |
toneFrequency= 2000; % or a pure tone (Hz8 |
|
| 25 |
|
|
| 26 |
rampDuration=.005; % seconds |
|
| 27 |
|
|
| 28 |
% or |
|
| 29 | 16 |
signalType= 'file'; |
| 30 | 17 |
fileName='twister_44kHz'; |
| 31 |
% fileName='new-da-44khz'; |
|
| 32 | 18 |
|
| 33 | 19 |
|
| 34 | 20 |
%% #4 rms level |
| ... | ... | |
| 42 | 28 |
lowestBF=250; highestBF= 8000; |
| 43 | 29 |
BFlist=round(logspace(log10(lowestBF), log10(highestBF), numChannels)); |
| 44 | 30 |
|
| 45 |
% or specify your own channel BFs |
|
| 46 |
% BFlist=toneFrequency; |
|
| 47 |
|
|
| 48 | 31 |
|
| 49 | 32 |
%% #6 change model parameters |
| 50 | 33 |
paramChanges=[]; |
| 51 | 34 |
|
| 52 |
% or |
|
| 53 |
% Parameter changes can be used to change one or more model parameters |
|
| 54 |
% *after* the MAPparams file has been read |
|
| 55 |
% This example declares only one fiber type with a calcium clearance time |
|
| 56 |
% constant of 80e-6 s (HSR fiber) when the probability option is selected. |
|
| 57 |
% switch AN_spikesOrProbability |
|
| 58 |
% case 'probability' |
|
| 59 |
% paramChanges={'IHCpreSynapseParams.tauCa=80e-6;'};
|
|
| 60 |
% otherwise |
|
| 61 |
% paramChanges=[]; |
|
| 62 |
% end |
|
| 63 |
|
|
| 64 | 35 |
%% delare showMap options |
| 65 | 36 |
showMapOptions=[]; % use defaults |
| 66 | 37 |
|
| 67 | 38 |
% or (example: show everything including an smoothed SACF output |
| 68 |
showMapOptions.showModelParameters=1;
|
|
| 39 |
showMapOptions.printModelParameters=1;
|
|
| 69 | 40 |
showMapOptions.showModelOutput=1; |
| 70 | 41 |
showMapOptions.printFiringRates=1; |
| 71 | 42 |
showMapOptions.showACF=0; |
| 72 |
showMapOptions.showEfferent=1;
|
|
| 43 |
showMapOptions.showEfferent=0;
|
|
| 73 | 44 |
|
| 74 | 45 |
%% Generate stimuli |
| 75 | 46 |
|
| ... | ... | |
| 103 | 74 |
toc |
| 104 | 75 |
|
| 105 | 76 |
% the model run is now complete. Now display the results |
| 106 |
showMAP(showMapOptions) |
|
| 77 |
UTIL_showMAP(showMapOptions)
|
|
| 107 | 78 |
|
| 108 | 79 |
toc |
| 109 | 80 |
path(restorePath) |
| testPrograms/hs_err_pid1016.log | ||
|---|---|---|
| 1 |
# |
|
| 2 |
# An unexpected error has been detected by Java Runtime Environment: |
|
| 3 |
# |
|
| 4 |
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000000fef5110, pid=1016, tid=6396 |
|
| 5 |
# |
|
| 6 |
# Java VM: Java HotSpot(TM) 64-Bit Server VM (1.6.0-b105 mixed mode) |
|
| 7 |
# Problematic frame: |
|
| 8 |
# C [awt.dll+0x185110] |
|
| 9 |
# |
|
| 10 |
# If you would like to submit a bug report, please visit: |
|
| 11 |
# http://java.sun.com/webapps/bugreport/crash.jsp |
|
| 12 |
# |
|
| 13 |
|
|
| 14 |
--------------- T H R E A D --------------- |
|
| 15 |
|
|
| 16 |
Current thread (0x000000001181c800): JavaThread "AWT-EventQueue-0" [_thread_in_native, id=6396] |
|
| 17 |
|
|
| 18 |
siginfo: ExceptionCode=0xc0000005, reading address 0xffffffffffffffff |
|
| 19 |
|
|
| 20 |
Registers: |
|
| 21 |
EAX=0x800000ea47fdfdc2, EBX=0x0000000000000001, ECX=0x00000000111de260, EDX=0x0000000011238318 |
|
| 22 |
ESP=0x00000000309cdb80, EBP=0x000000000e690f00, ESI=0x000000001181c990, EDI=0x0000000000000000 |
|
| 23 |
EIP=0x000000000fef5110, EFLAGS=0x0000000000010202 |
|
| 24 |
|
|
| 25 |
Top of Stack: (sp=0x00000000309cdb80) |
|
| 26 |
0x00000000309cdb80: 000000001181c800 0000000000000000 |
|
| 27 |
0x00000000309cdb90: 00000000309cdcd0 0000000015dfd008 |
|
| 28 |
0x00000000309cdba0: 0000000000000001 000000000fef6dd3 |
|
| 29 |
0x00000000309cdbb0: 0000000000000001 000000000e690f00 |
|
| 30 |
0x00000000309cdbc0: 000000001181c990 0000000000000000 |
|
| 31 |
0x00000000309cdbd0: 0000000011238318 00000000169b9f50 |
|
| 32 |
0x00000000309cdbe0: 0000000000000004 00000000152cd810 |
|
| 33 |
0x00000000309cdbf0: 0000000000000000 0000000000000000 |
|
| 34 |
0x00000000309cdc00: 0000000000000001 0000000000000102 |
|
| 35 |
0x00000000309cdc10: 00000000122a308e 0000000000000001 |
|
| 36 |
0x00000000309cdc20: 00000000309cdca8 00000000122afc24 |
|
| 37 |
0x00000000309cdc30: 0000000000000000 0000000026cb7e80 |
|
| 38 |
0x00000000309cdc40: 0000000000000000 0000000015dfd008 |
|
| 39 |
0x00000000309cdc50: 0000000000000001 0000000000000000 |
|
| 40 |
0x00000000309cdc60: 00000000309cdc50 00000000309cdc68 |
|
| 41 |
0x00000000309cdc70: 0000000000000000 00000000309cdcd0 |
|
| 42 |
|
|
| 43 |
Instructions: (pc=0x000000000fef5110) |
|
| 44 |
0x000000000fef5100: e8 5b 72 f9 ff 48 8b 0d 04 9a 08 00 48 8b 04 d8 |
|
| 45 |
0x000000000fef5110: 48 8b 58 30 e8 67 72 f9 ff 48 8b c3 48 83 c4 20 |
|
| 46 |
|
|
| 47 |
|
|
| 48 |
Stack: [0x0000000030950000,0x00000000309d0000), sp=0x00000000309cdb80, free space=502k |
|
| 49 |
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) |
|
| 50 |
C [awt.dll+0x185110] |
|
| 51 |
|
|
| 52 |
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) |
|
| 53 |
j sun.awt.Win32GraphicsConfig.getBounds(I)Ljava/awt/Rectangle;+0 |
|
| 54 |
j sun.awt.Win32GraphicsConfig.getBounds()Ljava/awt/Rectangle;+8 |
|
| 55 |
j com.mathworks.mwswing.WindowUtils.getVirtualScreenBounds()Ljava/awt/Rectangle;+98 |
|
| 56 |
j com.mathworks.mwswing.MJUtilities.getVirtualScreenBounds()Ljava/awt/Rectangle;+0 |
|
| 57 |
j com.mathworks.mwswing.desk.DTSingleClientFrame.refineLocation(Lcom/mathworks/mwswing/desk/DTLocation;)Lcom/mathworks/mwswing/desk/DTFloatingLocation;+495 |
|
| 58 |
j com.mathworks.mwswing.desk.DTSingleClientFrame.addClient(Lcom/mathworks/mwswing/desk/DTClient;Lcom/mathworks/mwswing/desk/DTLocation;)V+297 |
|
| 59 |
j com.mathworks.mwswing.desk.Desktop.setClientShowing(Lcom/mathworks/mwswing/desk/DTClient;ZLcom/mathworks/mwswing/desk/DTLocation;ZZ)V+956 |
|
| 60 |
j com.mathworks.mwswing.desk.Desktop.setClientShowing(Lcom/mathworks/mwswing/desk/DTClient;ZLcom/mathworks/mwswing/desk/DTLocation;Z)V+7 |
|
| 61 |
j com.mathworks.mwswing.desk.Desktop.addClient(Ljava/awt/Component;Ljava/lang/String;ZLcom/mathworks/mwswing/desk/DTLocation;ZLcom/mathworks/mwswing/desk/DTClientListener;)V+314 |
|
| 62 |
j com.mathworks.mde.desk.MLDesktop.addClient(Ljava/awt/Component;Ljava/lang/String;ZLcom/mathworks/mwswing/desk/DTLocation;ZLcom/mathworks/mwswing/desk/DTClientListener;)V+40 |
|
| 63 |
j com.mathworks.mde.help.HelpBrowser.createHelpBrowser(Z)Lcom/mathworks/mde/help/HelpBrowser;+90 |
|
| 64 |
j com.mathworks.mde.help.HelpBrowserRegistrar.getHelpBrowser(Z)Lcom/mathworks/mlservices/MLHelpBrowser;+1 |
|
| 65 |
v ~StubRoutines::call_stub |
|
| 66 |
j sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+0 |
|
| 67 |
j sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+87 |
|
| 68 |
J java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; |
|
| 69 |
j com.mathworks.mlservices.MLHelpServices.getRegisteredService(Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/Object;+71 |
|
| 70 |
j com.mathworks.mlservices.MLHelpServices.instantiateHelpBrowser(Z)Lcom/mathworks/mlservices/MLHelpBrowser;+12 |
|
| 71 |
j com.mathworks.mlservices.MLHelpServices.invoke()V+1 |
|
| 72 |
j com.mathworks.mde.desk.MLDesktop$ShowHelpAction.actionPerformed(Ljava/awt/event/ActionEvent;)V+0 |
|
| 73 |
j javax.swing.AbstractButton.fireActionPerformed(Ljava/awt/event/ActionEvent;)V+84 |
|
| 74 |
j javax.swing.AbstractButton$Handler.actionPerformed(Ljava/awt/event/ActionEvent;)V+5 |
|
| 75 |
j javax.swing.DefaultButtonModel.fireActionPerformed(Ljava/awt/event/ActionEvent;)V+35 |
|
| 76 |
j javax.swing.DefaultButtonModel.setPressed(Z)V+117 |
|
| 77 |
j javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Ljava/awt/event/MouseEvent;)V+35 |
|
| 78 |
j java.awt.AWTEventMulticaster.mouseReleased(Ljava/awt/event/MouseEvent;)V+8 |
|
| 79 |
j java.awt.AWTEventMulticaster.mouseReleased(Ljava/awt/event/MouseEvent;)V+8 |
|
| 80 |
j java.awt.AWTEventMulticaster.mouseReleased(Ljava/awt/event/MouseEvent;)V+8 |
|
| 81 |
j java.awt.Component.processMouseEvent(Ljava/awt/event/MouseEvent;)V+64 |
|
| 82 |
j javax.swing.JComponent.processMouseEvent(Ljava/awt/event/MouseEvent;)V+23 |
|
| 83 |
j com.mathworks.mwswing.MJButton.processMouseEvent(Ljava/awt/event/MouseEvent;)V+37 |
|
| 84 |
j java.awt.Component.processEvent(Ljava/awt/AWTEvent;)V+81 |
|
| 85 |
j java.awt.Container.processEvent(Ljava/awt/AWTEvent;)V+18 |
|
| 86 |
j java.awt.Component.dispatchEventImpl(Ljava/awt/AWTEvent;)V+562 |
|
| 87 |
j java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V+42 |
|
| 88 |
J java.awt.LightweightDispatcher.retargetMouseEvent(Ljava/awt/Component;ILjava/awt/event/MouseEvent;)V |
|
| 89 |
j java.awt.LightweightDispatcher.processMouseEvent(Ljava/awt/event/MouseEvent;)Z+139 |
|
| 90 |
j java.awt.LightweightDispatcher.dispatchEvent(Ljava/awt/AWTEvent;)Z+50 |
|
| 91 |
j java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V+12 |
|
| 92 |
j java.awt.Window.dispatchEventImpl(Ljava/awt/AWTEvent;)V+19 |
|
| 93 |
J java.awt.EventDispatchThread.pumpOneEventForFilters(I)Z |
|
| 94 |
J java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V |
|
| 95 |
j java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+11 |
|
| 96 |
j java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4 |
|
| 97 |
j java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3 |
|
| 98 |
j java.awt.EventDispatchThread.run()V+9 |
|
| 99 |
v ~StubRoutines::call_stub |
|
| 100 |
|
|
| 101 |
--------------- P R O C E S S --------------- |
|
| 102 |
|
|
| 103 |
Java Threads: ( => current thread ) |
|
| 104 |
0x0000000030c4a800 JavaThread "Image Fetcher 0" daemon [_thread_blocked, id=2956] |
|
| 105 |
0x0000000030c47c00 JavaThread "Inactive RequestProcessor thread [Was:TimedSoftReference/org.openide.util.TimedSoftReference]" daemon [_thread_blocked, id=2312] |
|
| 106 |
0x0000000030c4a000 JavaThread "Thread-410" [_thread_blocked, id=3948] |
|
| 107 |
0x0000000030c4b800 JavaThread "Timer-8" [_thread_blocked, id=7832] |
|
| 108 |
0x0000000030c49800 JavaThread "Thread-94" [_thread_blocked, id=1800] |
|
| 109 |
0x0000000030c49400 JavaThread "Thread-20" [_thread_blocked, id=3944] |
|
| 110 |
0x0000000030c48400 JavaThread "Prefs Updater" [_thread_blocked, id=6592] |
|
| 111 |
0x0000000030c47800 JavaThread "Thread-7" [_thread_blocked, id=6296] |
|
| 112 |
0x0000000030c47000 JavaThread "Active Reference Queue Daemon" daemon [_thread_blocked, id=3096] |
|
| 113 |
0x0000000030c46800 JavaThread "Timer-3" daemon [_thread_blocked, id=4900] |
|
| 114 |
0x0000000030c46000 JavaThread "Timer-2" daemon [_thread_blocked, id=6248] |
|
| 115 |
0x0000000011809400 JavaThread "TimerQueue" daemon [_thread_blocked, id=2784] |
|
| 116 |
=>0x000000001181c800 JavaThread "AWT-EventQueue-0" [_thread_in_native, id=6396] |
|
| 117 |
0x000000001179b800 JavaThread "AWT-Windows" daemon [_thread_in_native, id=4168] |
|
| 118 |
0x0000000011799000 JavaThread "AWT-Shutdown" [_thread_blocked, id=5348] |
|
| 119 |
0x0000000011798800 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=1520] |
|
| 120 |
0x000000000fb14800 JavaThread "Timer-0" [_thread_blocked, id=2516] |
|
| 121 |
0x000000000fa83c00 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=6708] |
|
| 122 |
0x000000000fa81800 JavaThread "CompilerThread1" daemon [_thread_blocked, id=7064] |
|
| 123 |
0x000000000fa75800 JavaThread "CompilerThread0" daemon [_thread_blocked, id=6704] |
|
| 124 |
0x000000000fa74400 JavaThread "Attach Listener" daemon [_thread_blocked, id=5696] |
|
| 125 |
0x000000000fa57000 JavaThread "Finalizer" daemon [_thread_blocked, id=5540] |
|
| 126 |
0x000000000fa56400 JavaThread "Reference Handler" daemon [_thread_blocked, id=1012] |
|
| 127 |
0x0000000003d2fc00 JavaThread "main" [_thread_in_native, id=6784] |
|
| 128 |
|
|
| 129 |
Other Threads: |
|
| 130 |
0x000000000fa52400 VMThread [id=4948] |
|
| 131 |
0x000000000fa89400 WatcherThread [id=1092] |
|
| 132 |
|
|
| 133 |
VM state:not at safepoint (normal execution) |
|
| 134 |
|
|
| 135 |
VM Mutex/Monitor currently owned by a thread: None |
|
| 136 |
|
|
| 137 |
Heap |
|
| 138 |
PSYoungGen total 7488K, used 7456K [0x00000000265a0000, 0x0000000027080000, 0x00000000296a0000) |
|
| 139 |
eden space 7296K, 100% used [0x00000000265a0000,0x0000000026cc0000,0x0000000026cc0000) |
|
| 140 |
from space 192K, 83% used [0x0000000026ce0000,0x0000000026d08000,0x0000000026d10000) |
|
| 141 |
to space 1920K, 0% used [0x0000000026ea0000,0x0000000026ea0000,0x0000000027080000) |
|
| 142 |
PSOldGen total 45376K, used 35394K [0x000000001d2a0000, 0x000000001fef0000, 0x00000000265a0000) |
|
| 143 |
object space 45376K, 78% used [0x000000001d2a0000,0x000000001f530b20,0x000000001fef0000) |
|
| 144 |
PSPermGen total 83392K, used 45466K [0x00000000152a0000, 0x000000001a410000, 0x000000001d2a0000) |
|
| 145 |
object space 83392K, 54% used [0x00000000152a0000,0x0000000017f069f0,0x000000001a410000) |
|
| 146 |
|
|
| 147 |
Dynamic libraries: |
|
| 148 |
0x0000000140000000 - 0x0000000140138000 C:\Program Files\MATLAB\R2008a\bin\win64\MATLAB.exe |
|
| 149 |
0x0000000076d20000 - 0x0000000076ec9000 C:\Windows\SYSTEM32\ntdll.dll |
|
| 150 |
0x0000000076b00000 - 0x0000000076c1f000 C:\Windows\system32\kernel32.dll |
|
| 151 |
0x000007fefcd20000 - 0x000007fefcd8b000 C:\Windows\system32\KERNELBASE.dll |
|
| 152 |
0x0000000180000000 - 0x0000000180401000 C:\Program Files\MATLAB\R2008a\bin\win64\libut.dll |
|
| 153 |
0x000007fefdd40000 - 0x000007fefdd57000 C:\Windows\system32\imagehlp.dll |
|
| 154 |
0x000007fefdfb0000 - 0x000007fefe04f000 C:\Windows\system32\msvcrt.dll |
|
| 155 |
0x0000000076ef0000 - 0x0000000076ef7000 C:\Windows\system32\PSAPI.DLL |
|
| 156 |
0x00000000011f0000 - 0x0000000001218000 C:\Program Files\MATLAB\R2008a\bin\win64\LIBEXPAT.dll |
|
| 157 |
0x0000000073330000 - 0x00000000733f9000 C:\Windows\WinSxS\amd64_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.5592_none_88e45feb2faab9ce\MSVCR80.dll |
|
| 158 |
0x000000004a800000 - 0x000000004a917000 C:\Program Files\MATLAB\R2008a\bin\win64\icuuc36.dll |
|
| 159 |
0x000007fefef50000 - 0x000007feff02b000 C:\Windows\system32\ADVAPI32.dll |
|
| 160 |
0x000007fefd940000 - 0x000007fefd95f000 C:\Windows\SYSTEM32\sechost.dll |
|
| 161 |
0x000007fefe050000 - 0x000007fefe17d000 C:\Windows\system32\RPCRT4.dll |
|
| 162 |
0x0000000001220000 - 0x0000000001223000 C:\Program Files\MATLAB\R2008a\bin\win64\icudt36.dll |
|
| 163 |
0x000000004ab00000 - 0x000000004ab0f000 C:\Program Files\MATLAB\R2008a\bin\win64\icuio36.dll |
|
| 164 |
0x0000000001250000 - 0x0000000001356000 C:\Program Files\MATLAB\R2008a\bin\win64\icuin36.dll |
|
| 165 |
0x0000000071c30000 - 0x0000000071d39000 C:\Windows\WinSxS\amd64_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.5592_none_88e45feb2faab9ce\MSVCP80.dll |
|
| 166 |
0x0000000076c20000 - 0x0000000076d1a000 C:\Windows\system32\USER32.dll |
|
| 167 |
0x000007fefd1c0000 - 0x000007fefd227000 C:\Windows\system32\GDI32.dll |
|
| 168 |
0x000007fefd150000 - 0x000007fefd15e000 C:\Windows\system32\LPK.dll |
|
| 169 |
0x000007fefd870000 - 0x000007fefd939000 C:\Windows\system32\USP10.dll |
|
| 170 |
0x0000000001370000 - 0x00000000014e4000 C:\Program Files\MATLAB\R2008a\bin\win64\libmwservices.dll |
|
| 171 |
0x0000000001500000 - 0x0000000001570000 C:\Program Files\MATLAB\R2008a\bin\win64\libmx.dll |
|
| 172 |
0x0000000001580000 - 0x0000000001597000 C:\Program Files\MATLAB\R2008a\bin\win64\zlib1.dll |
|
| 173 |
0x00000000015a0000 - 0x0000000001648000 C:\Program Files\MATLAB\R2008a\bin\win64\libmwmathutil.dll |
|
| 174 |
0x0000000001660000 - 0x00000000016b5000 C:\Program Files\MATLAB\R2008a\bin\win64\mpath.dll |
|
| 175 |
0x00000000016d0000 - 0x00000000016f1000 C:\Program Files\MATLAB\R2008a\bin\win64\mlutil.dll |
|
| 176 |
0x000007fef9110000 - 0x000007fef91b0000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_a4d6a923711520a9\COMCTL32.dll |
|
| 177 |
0x000007fefde30000 - 0x000007fefdec7000 C:\Windows\system32\comdlg32.dll |
|
| 178 |
0x000007fefdcc0000 - 0x000007fefdd31000 C:\Windows\system32\SHLWAPI.dll |
|
| 179 |
0x000007fefe180000 - 0x000007fefef08000 C:\Windows\system32\SHELL32.dll |
|
| 180 |
0x000007fefc100000 - 0x000007fefc116000 C:\Windows\system32\NETAPI32.dll |
|
| 181 |
0x000007fefc0f0000 - 0x000007fefc0fc000 C:\Windows\system32\netutils.dll |
|
| 182 |
0x000007fefc7c0000 - 0x000007fefc7e3000 C:\Windows\system32\srvcli.dll |
|
| 183 |
0x000007fefc140000 - 0x000007fefc155000 C:\Windows\system32\wkscli.dll |
|
| 184 |
0x000007fefdd60000 - 0x000007fefddad000 C:\Windows\system32\WS2_32.dll |
|
| 185 |
0x000007fefef40000 - 0x000007fefef48000 C:\Windows\system32\NSI.dll |
|
| 186 |
0x0000000001710000 - 0x0000000001765000 C:\Program Files\MATLAB\R2008a\bin\win64\mcr.dll |
|
| 187 |
0x0000000001780000 - 0x00000000017a5000 C:\Program Files\MATLAB\R2008a\bin\win64\iqm.dll |
|
| 188 |
0x00000000017c0000 - 0x00000000017e1000 C:\Program Files\MATLAB\R2008a\bin\win64\bridge.dll |
|
| 189 |
0x0000000001800000 - 0x0000000001811000 C:\Program Files\MATLAB\R2008a\bin\win64\libmex.dll |
|
| 190 |
0x0000000001830000 - 0x00000000018bc000 C:\Program Files\MATLAB\R2008a\bin\win64\m_dispatcher.dll |
|
| 191 |
0x00000000018d0000 - 0x00000000018f5000 C:\Program Files\MATLAB\R2008a\bin\win64\datasvcs.dll |
|
| 192 |
0x0000000012000000 - 0x0000000012295000 C:\Program Files\MATLAB\R2008a\bin\win64\xerces-c_2_7.dll |
|
| 193 |
0x0000000001920000 - 0x00000000021b1000 C:\Program Files\MATLAB\R2008a\bin\win64\m_interpreter.dll |
|
| 194 |
0x00000000021d0000 - 0x0000000002201000 C:\Program Files\MATLAB\R2008a\bin\win64\libmat.dll |
|
| 195 |
0x0000000002220000 - 0x0000000002325000 C:\Program Files\MATLAB\R2008a\bin\win64\libhdf5.dll |
|
| 196 |
0x0000000002330000 - 0x000000000239f000 C:\Program Files\MATLAB\R2008a\bin\win64\profiler.dll |
|
| 197 |
0x00000000023b0000 - 0x00000000023ba000 C:\Program Files\MATLAB\R2008a\bin\win64\libmwmathrng.dll |
|
| 198 |
0x00000000023d0000 - 0x00000000023ea000 C:\Program Files\MATLAB\R2008a\bin\win64\m_pcodeio.dll |
|
| 199 |
0x0000000002400000 - 0x000000000244a000 C:\Program Files\MATLAB\R2008a\bin\win64\m_ir.dll |
|
| 200 |
0x0000000002460000 - 0x0000000002a1b000 C:\Program Files\MATLAB\R2008a\bin\win64\m_parser.dll |
|
| 201 |
0x0000000002a30000 - 0x0000000002a42000 C:\Program Files\MATLAB\R2008a\bin\win64\ir_xfmr.dll |
|
| 202 |
0x0000000002a60000 - 0x0000000002c7b000 C:\Program Files\MATLAB\R2008a\bin\win64\mcos.dll |
|
| 203 |
0x0000000002c90000 - 0x0000000002c9c000 C:\Program Files\MATLAB\R2008a\bin\win64\mtok.dll |
|
| 204 |
0x0000000002cb0000 - 0x0000000002cd0000 C:\Program Files\MATLAB\R2008a\bin\win64\m_pcodegen.dll |
|
| 205 |
0x000007fef4250000 - 0x000007fef4375000 C:\Windows\system32\dbghelp.dll |
|
| 206 |
0x0000000002ce0000 - 0x0000000002cf0000 C:\Program Files\MATLAB\R2008a\bin\win64\boost_thread-vc80-mt-1_34_1.dll |
|
| 207 |
0x0000000002d00000 - 0x0000000002dc0000 C:\Program Files\MATLAB\R2008a\bin\win64\udd.dll |
|
| 208 |
0x0000000002dd0000 - 0x0000000002f12000 C:\Program Files\MATLAB\R2008a\bin\win64\libmwgui.dll |
|
| 209 |
0x0000000002f30000 - 0x000000000316a000 C:\Program Files\MATLAB\R2008a\bin\win64\hg.dll |
|
| 210 |
0x0000000003180000 - 0x00000000031d6000 C:\Program Files\MATLAB\R2008a\bin\win64\jmi.dll |
|
| 211 |
0x00000000031f0000 - 0x000000000322e000 C:\Program Files\MATLAB\R2008a\bin\win64\libmwhardcopy.dll |
|
| 212 |
0x0000000003240000 - 0x000000000329c000 C:\Program Files\MATLAB\R2008a\bin\win64\libuij.dll |
|
| 213 |
0x00000000032b0000 - 0x000000000353c000 C:\Program Files\MATLAB\R2008a\bin\win64\numerics.dll |
|
| 214 |
0x0000000003550000 - 0x000000000355c000 C:\Program Files\MATLAB\R2008a\bin\win64\libmwblas.dll |
|
| 215 |
0x0000000003570000 - 0x000000000357f000 C:\Program Files\MATLAB\R2008a\bin\win64\libmwbinder.dll |
|
| 216 |
0x0000000003590000 - 0x00000000035b4000 C:\Program Files\MATLAB\R2008a\bin\win64\libmwlapack.dll |
|
| 217 |
0x00000000035d0000 - 0x00000000035db000 C:\Program Files\MATLAB\R2008a\bin\win64\libmwfftw.dll |
|
| 218 |
0x00000000035f0000 - 0x0000000003625000 C:\Program Files\MATLAB\R2008a\bin\win64\libmwrookfastbp.dll |
|
| 219 |
0x0000000003640000 - 0x000000000366e000 C:\Program Files\MATLAB\R2008a\bin\win64\libmwma57.dll |
|
| 220 |
0x0000000010000000 - 0x00000000100d3000 C:\Program Files\MATLAB\R2008a\bin\win64\libifcoremd.dll |
|
| 221 |
0x0000000003680000 - 0x000000000389d000 C:\Program Files\MATLAB\R2008a\bin\win64\libmmd.dll |
|
| 222 |
0x00000000038a0000 - 0x00000000038a9000 C:\Program Files\MATLAB\R2008a\bin\win64\libmwcsparse.dll |
|
| 223 |
0x00000000038c0000 - 0x000000000398a000 C:\Program Files\MATLAB\R2008a\bin\win64\libmwumfpack.dll |
|
| 224 |
0x00000000039a0000 - 0x00000000039ad000 C:\Program Files\MATLAB\R2008a\bin\win64\libmwamd.dll |
|
| 225 |
0x00000000039c0000 - 0x0000000003a52000 C:\Program Files\MATLAB\R2008a\bin\win64\libmwcholmod.dll |
|
| 226 |
0x0000000003a70000 - 0x0000000003a7c000 C:\Program Files\MATLAB\R2008a\bin\win64\libmwcolamd.dll |
|
| 227 |
0x0000000003a90000 - 0x0000000003b49000 C:\Program Files\MATLAB\R2008a\bin\win64\uiw.dll |
|
| 228 |
0x0000000003b60000 - 0x0000000003b6a000 C:\Program Files\MATLAB\R2008a\bin\win64\uinone.dll |
|
| 229 |
0x000000006e030000 - 0x000000006e1cc000 C:\Windows\WinSxS\amd64_microsoft.vc80.mfc_1fc8b3b9a1e18e3b_8.0.50727.5592_none_8448f49f328da8c3\MFC80.DLL |
|
| 230 |
0x000007fefaf90000 - 0x000007fefb001000 C:\Windows\system32\WINSPOOL.DRV |
|
| 231 |
0x000007fefd230000 - 0x000007fefd433000 C:\Windows\system32\ole32.dll |
|
| 232 |
0x000007fefded0000 - 0x000007fefdfa7000 C:\Windows\system32\OLEAUT32.dll |
|
| 233 |
0x0000000003b80000 - 0x0000000003c10000 C:\Program Files\MATLAB\R2008a\bin\win64\udd_mi.dll |
|
| 234 |
0x0000000003c20000 - 0x0000000003c38000 C:\Program Files\MATLAB\R2008a\bin\win64\mwoles05.DLL |
|
| 235 |
0x0000000003c50000 - 0x0000000003cb9000 C:\Program Files\MATLAB\R2008a\bin\win64\comcli.dll |
|
| 236 |
0x0000000071c10000 - 0x0000000071c30000 C:\Windows\WinSxS\amd64_microsoft.vc80.atl_1fc8b3b9a1e18e3b_8.0.50727.5592_none_8a1e1b372ed7b012\ATL80.DLL |
|
| 237 |
0x0000000003cd0000 - 0x0000000003cde000 C:\Program Files\MATLAB\R2008a\bin\win64\mlautoregister.dll |
|
| 238 |
0x000007fefef10000 - 0x000007fefef3e000 C:\Windows\system32\IMM32.DLL |
|
| 239 |
0x000007fefd040000 - 0x000007fefd149000 C:\Windows\system32\MSCTF.dll |
|
| 240 |
0x000000006fa00000 - 0x000000006fa3f000 C:\PROGRA~2\Sophos\SOPHOS~1\SOPHOS~2.DLL |
|
| 241 |
0x0000000007740000 - 0x000000000810e000 C:\Program Files\MATLAB\R2008a\bin\win64\mkl.dll |
|
| 242 |
0x0000000003e50000 - 0x0000000003e9b000 C:\Program Files\MATLAB\R2008a\bin\win64\libguide40.dll |
|
| 243 |
0x0000000003eb0000 - 0x0000000003eb8000 C:\Program Files\MATLAB\R2008a\bin\win64\mklcompat.dll |
|
| 244 |
0x0000000008110000 - 0x00000000086b7000 C:\Program Files\MATLAB\R2008a\bin\win64\mllapack.dll |
|
| 245 |
0x0000000007310000 - 0x0000000007404000 C:\Program Files\MATLAB\R2008a\bin\win64\libfftw3i.dll |
|
| 246 |
0x0000000007410000 - 0x00000000074fe000 C:\Program Files\MATLAB\R2008a\bin\win64\libfftw3f.dll |
|
| 247 |
0x000007fefcc70000 - 0x000007fefcc7f000 C:\Windows\system32\profapi.dll |
|
| 248 |
0x000007fefcba0000 - 0x000007fefcbaf000 C:\Windows\system32\CRYPTBASE.dll |
|
| 249 |
0x000007fefb790000 - 0x000007fefb984000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_fa396087175ac9ac\comctl32.dll |
|
| 250 |
0x000007fefd960000 - 0x000007fefdb37000 C:\Windows\system32\SETUPAPI.dll |
|
| 251 |
0x000007fefcfe0000 - 0x000007fefd016000 C:\Windows\system32\CFGMGR32.dll |
|
| 252 |
0x000007fefd020000 - 0x000007fefd03a000 C:\Windows\system32\DEVOBJ.dll |
|
| 253 |
0x000007fefd570000 - 0x000007fefd609000 C:\Windows\system32\CLBCatQ.DLL |
|
| 254 |
0x000007fefb1f0000 - 0x000007fefb31c000 C:\Windows\system32\propsys.dll |
|
| 255 |
0x000007fefa7a0000 - 0x000007fefa7cd000 C:\Windows\system32\ntmarta.dll |
|
| 256 |
0x000007fefd160000 - 0x000007fefd1b2000 C:\Windows\system32\WLDAP32.dll |
|
| 257 |
0x000007fef9e00000 - 0x000007fef9e27000 C:\Windows\system32\iphlpapi.dll |
|
| 258 |
0x000007fef9df0000 - 0x000007fef9dfb000 C:\Windows\system32\WINNSI.DLL |
|
| 259 |
0x000007fefc340000 - 0x000007fefc39b000 C:\Windows\system32\DNSAPI.dll |
|
| 260 |
0x000007fef99d0000 - 0x000007fef99e1000 C:\Windows\system32\dhcpcsvc6.DLL |
|
| 261 |
0x000007fef98e0000 - 0x000007fef98f8000 C:\Windows\system32\dhcpcsvc.DLL |
|
| 262 |
0x000007fefcb10000 - 0x000007fefcb35000 C:\Windows\system32\SspiCli.dll |
|
| 263 |
0x000000006e860000 - 0x000000006e863000 C:\Windows\system32\icmp.Dll |
|
| 264 |
0x000000000eeb0000 - 0x000000000f401000 C:\Program Files\MATLAB\R2008a\sys\java\jre\win64\jre1.6.0\bin\server\jvm.dll |
|
| 265 |
0x000007fefa880000 - 0x000007fefa8bb000 C:\Windows\system32\WINMM.dll |
|
| 266 |
0x0000000006b50000 - 0x0000000006b5a000 C:\Program Files\MATLAB\R2008a\sys\java\jre\win64\jre1.6.0\bin\hpi.dll |
|
| 267 |
0x0000000006b70000 - 0x0000000006b7e000 C:\Program Files\MATLAB\R2008a\sys\java\jre\win64\jre1.6.0\bin\verify.dll |
|
| 268 |
0x0000000006ff0000 - 0x0000000007017000 C:\Program Files\MATLAB\R2008a\sys\java\jre\win64\jre1.6.0\bin\java.dll |
|
| 269 |
0x0000000006b80000 - 0x0000000006b92000 C:\Program Files\MATLAB\R2008a\sys\java\jre\win64\jre1.6.0\bin\zip.dll |
|
| 270 |
0x0000000007500000 - 0x0000000007516000 C:\Program Files\MATLAB\R2008a\bin\win64\nativejava.dll |
|
| 271 |
0x0000000007520000 - 0x0000000007536000 C:\Program Files\MATLAB\R2008a\bin\win64\nativejmi.dll |
|
| 272 |
0x00000000087d0000 - 0x00000000087d7000 C:\Program Files\MATLAB\R2008a\bin\win64\nativeservices.dll |
|
| 273 |
0x000000000fd70000 - 0x000000000ffc0000 C:\Program Files\MATLAB\R2008a\sys\java\jre\win64\jre1.6.0\bin\awt.dll |
|
| 274 |
0x0000000011e60000 - 0x0000000011ec9000 C:\Program Files\MATLAB\R2008a\sys\java\jre\win64\jre1.6.0\bin\fontmanager.dll |
|
| 275 |
0x00000000089b0000 - 0x00000000089c7000 C:\Program Files\MATLAB\R2008a\sys\java\jre\win64\jre1.6.0\bin\net.dll |
|
| 276 |
|
|
| 277 |
VM Arguments: |
|
| 278 |
jvm_args: -Xss512k -XX:PermSize=32M -Xms64m -XX:NewRatio=3 -XX:MaxPermSize=128M -Xmx196m -XX:MaxDirectMemorySize=2147400000 -Dsun.java2d.noddraw=true -Dsun.awt.nopixfmt=true -Xshare:off -Xrs -Djava.library.path=C:\Program Files\MATLAB\R2008a\bin\win64 vfprintf abort |
|
| 279 |
java_command: <unknown> |
|
| 280 |
Launcher Type: generic |
|
| 281 |
|
|
| 282 |
Environment Variables: |
|
| 283 |
CLASSPATH=.;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip |
|
| 284 |
PATH=C:\Program Files (x86)\Nokia\PC Connectivity Solution\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files\Intel\DMIX;C:\Program Files (x86)\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;c:\Program Files\WIDCOMM\Bluetooth Software\;c:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\10.0\DLLShared\;C:\Program Files (x86)\Common Files\Adobe\AGL;C:\Program Files\MATLAB\R2010b\bin;C:\Program Files\MATLAB\R2010a\bin;C:\Program Files\MATLAB\R2008a\bin;C:\Program Files\MATLAB\R2008a\bin\win64;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files\Microsoft Windows Performance Toolkit\ |
|
| 285 |
USERNAME=rmeddis |
|
| 286 |
OS=Windows_NT |
|
| 287 |
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 37 Stepping 2, GenuineIntel |
|
| 288 |
|
|
| 289 |
|
|
| 290 |
|
|
| 291 |
--------------- S Y S T E M --------------- |
|
| 292 |
|
|
| 293 |
OS: Windows NT 6.1 Build 7601 Service Pack 1 |
|
| 294 |
|
|
| 295 |
CPU:total 4 em64t ht |
|
| 296 |
|
|
| 297 |
Memory: 4k page, physical 8181592k(5524620k free), swap 16361336k(13575508k free) |
|
| 298 |
|
|
| 299 |
vm_info: Java HotSpot(TM) 64-Bit Server VM (1.6.0-b105) for windows-amd64, built on Nov 29 2006 00:38:01 by "java_re" with unknown MS VC++:1400 |
|
| 300 |
|
|
| testPrograms/html/myConv.html | ||
|---|---|---|
| 1 |
|
|
| 2 |
<!DOCTYPE html |
|
| 3 |
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"> |
|
| 4 |
<html xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd"> |
|
| 5 |
<head> |
|
| 6 |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
|
| 7 |
|
|
| 8 |
<!-- |
|
| 9 |
This HTML is auto-generated from an M-file. |
|
| 10 |
To make changes, update the M-file and republish this document. |
|
| 11 |
--> |
|
| 12 |
<title>myConv</title> |
|
| 13 |
<meta name="generator" content="MATLAB 7.6"> |
|
| 14 |
<meta name="date" content="2011-06-05"> |
|
| 15 |
<meta name="m-file" content="myConv"><style> |
|
| 16 |
|
|
| 17 |
body {
|
|
| 18 |
background-color: white; |
|
| 19 |
margin:10px; |
|
| 20 |
} |
|
| 21 |
|
|
| 22 |
h1 {
|
|
| 23 |
color: #990000; |
|
| 24 |
font-size: x-large; |
|
| 25 |
} |
|
| 26 |
|
|
| 27 |
h2 {
|
|
| 28 |
color: #990000; |
|
| 29 |
font-size: medium; |
|
| 30 |
} |
|
| 31 |
|
|
| 32 |
/* Make the text shrink to fit narrow windows, but not stretch too far in |
|
| 33 |
wide windows. */ |
|
| 34 |
p,h1,h2,div.content div {
|
|
| 35 |
max-width: 600px; |
|
| 36 |
/* Hack for IE6 */ |
|
| 37 |
width: auto !important; width: 600px; |
|
| 38 |
} |
|
| 39 |
|
|
| 40 |
pre.codeinput {
|
|
| 41 |
background: #EEEEEE; |
|
| 42 |
padding: 10px; |
|
| 43 |
} |
|
| 44 |
@media print {
|
|
| 45 |
pre.codeinput {word-wrap:break-word; width:100%;}
|
|
| 46 |
} |
|
| 47 |
|
|
| 48 |
span.keyword {color: #0000FF}
|
|
| 49 |
span.comment {color: #228B22}
|
|
| 50 |
span.string {color: #A020F0}
|
|
| 51 |
span.untermstring {color: #B20000}
|
|
| 52 |
span.syscmd {color: #B28C00}
|
|
| 53 |
|
|
| 54 |
pre.codeoutput {
|
|
| 55 |
color: #666666; |
|
| 56 |
padding: 10px; |
|
| 57 |
} |
|
| 58 |
|
|
| 59 |
pre.error {
|
|
| 60 |
color: red; |
|
| 61 |
} |
|
| 62 |
|
|
| 63 |
p.footer {
|
|
| 64 |
text-align: right; |
|
| 65 |
font-size: xx-small; |
|
| 66 |
font-weight: lighter; |
|
| 67 |
font-style: italic; |
|
| 68 |
color: gray; |
|
| 69 |
} |
|
| 70 |
|
|
| 71 |
</style></head> |
|
| 72 |
<body> |
|
| 73 |
<div class="content"> |
|
| 74 |
<h2>Contents</h2> |
|
| 75 |
<div> |
|
| 76 |
<ul> |
|
| 77 |
<li><a href="#3">testing convolution speculation</a></li> |
|
| 78 |
<li><a href="#4">convolution function</a></li> |
|
| 79 |
<li><a href="#5">normalise conv function</a></li> |
|
| 80 |
<li><a href="#6">adjust for spike current</a></li> |
|
| 81 |
<li><a href="#7">convolution</a></li> |
|
| 82 |
</ul> |
|
| 83 |
</div><pre class="codeinput">signalDuration=.1; |
|
| 84 |
spikeTime= signalDuration/2; |
|
| 85 |
<span class="keyword">for</span> sampleRate=[1000 2000]; |
|
| 86 |
</pre><pre class="codeinput"> disp([<span class="string">'sample rate= '</span> num2str(sampleRate)]) |
|
| 87 |
</pre><pre class="codeoutput">sample rate= 1000 |
|
| 88 |
</pre><pre class="codeoutput">sample rate= 2000 |
|
| 89 |
</pre><h2>testing convolution speculation<a name="3"></a></h2><pre class="codeinput">dt= 1/sampleRate; |
|
| 90 |
signalLength=round(signalDuration/dt); |
|
| 91 |
spikeArray=zeros(1,signalLength); |
|
| 92 |
spikeLocation=round(spikeTime/dt); |
|
| 93 |
spikeArray(spikeLocation)=1; |
|
| 94 |
disp([<span class="string">'length of spike array= '</span> num2str(length(spikeArray))]) |
|
| 95 |
t=dt*(1:length(spikeArray)); |
|
| 96 |
plot(t, spikeArray) |
|
| 97 |
</pre><pre class="codeoutput">length of spike array= 100 |
|
| 98 |
</pre><img vspace="5" hspace="5" src="myConv_01.png"> <pre class="codeoutput">length of spike array= 200 |
|
| 99 |
</pre><img vspace="5" hspace="5" src="myConv_06.png"> <h2>convolution function<a name="4"></a></h2><pre class="codeinput">CNspikeToCurrentTau=0.01; |
|
| 100 |
t=dt:dt:3*CNspikeToCurrentTau; |
|
| 101 |
CNalphaFunction=<span class="keyword">...</span> |
|
| 102 |
(1/CNspikeToCurrentTau)*t.*exp(-t/CNspikeToCurrentTau); |
|
| 103 |
|
|
| 104 |
plot(t, CNalphaFunction) |
|
| 105 |
</pre><img vspace="5" hspace="5" src="myConv_02.png"> <img vspace="5" hspace="5" src="myConv_07.png"> <h2>normalise conv function<a name="5"></a></h2><pre class="codeinput">CNalphaFunction=CNalphaFunction/sum(CNalphaFunction); |
|
| 106 |
plot(t, CNalphaFunction) |
|
| 107 |
disp([<span class="string">'area under function= '</span> num2str(sum(CNalphaFunction))]) |
|
| 108 |
</pre><pre class="codeoutput">area under function= 1 |
|
| 109 |
</pre><img vspace="5" hspace="5" src="myConv_03.png"> <pre class="codeoutput">area under function= 1 |
|
| 110 |
</pre><img vspace="5" hspace="5" src="myConv_08.png"> <h2>adjust for spike current<a name="6"></a></h2><pre class="codeinput">CNcurrentPerSpike=2; |
|
| 111 |
CNalphaFunction=CNalphaFunction*CNcurrentPerSpike; |
|
| 112 |
plot(t, CNalphaFunction) |
|
| 113 |
</pre><img vspace="5" hspace="5" src="myConv_04.png"> <img vspace="5" hspace="5" src="myConv_09.png"> <h2>convolution<a name="7"></a></h2><pre class="codeinput">result=conv(spikeArray,CNalphaFunction); |
|
| 114 |
t=dt*(1:length(result)); |
|
| 115 |
plot(t, result) |
|
| 116 |
disp([<span class="string">'area under function= '</span> num2str(sum(result))]) |
|
| 117 |
</pre><pre class="codeoutput">area under function= 2 |
|
| 118 |
</pre><img vspace="5" hspace="5" src="myConv_05.png"> <pre class="codeoutput">area under function= 2 |
|
| 119 |
</pre><img vspace="5" hspace="5" src="myConv_10.png"> <pre class="codeinput"><span class="keyword">end</span> |
|
| 120 |
</pre><p class="footer"><br> |
|
| 121 |
Published with MATLAB® 7.6<br></p> |
|
| 122 |
</div> |
|
| 123 |
<!-- |
|
| 124 |
##### SOURCE BEGIN ##### |
|
| 125 |
signalDuration=.1; |
|
| 126 |
spikeTime= signalDuration/2; |
|
| 127 |
for sampleRate=[1000 2000]; |
|
| 128 |
disp(['sample rate= ' num2str(sampleRate)]) |
|
| 129 |
|
|
| 130 |
%% testing convolution speculation |
|
| 131 |
dt= 1/sampleRate; |
|
| 132 |
signalLength=round(signalDuration/dt); |
|
| 133 |
spikeArray=zeros(1,signalLength); |
|
| 134 |
spikeLocation=round(spikeTime/dt); |
|
| 135 |
spikeArray(spikeLocation)=1; |
|
| 136 |
disp(['length of spike array= ' num2str(length(spikeArray))]) |
|
| 137 |
t=dt*(1:length(spikeArray)); |
|
| 138 |
plot(t, spikeArray) |
|
| 139 |
|
|
| 140 |
%% convolution function |
|
| 141 |
CNspikeToCurrentTau=0.01; |
|
| 142 |
t=dt:dt:3*CNspikeToCurrentTau; |
|
| 143 |
CNalphaFunction=... |
|
| 144 |
(1/CNspikeToCurrentTau)*t.*exp(-t/CNspikeToCurrentTau); |
|
| 145 |
|
|
| 146 |
plot(t, CNalphaFunction) |
|
| 147 |
|
|
| 148 |
%% normalise conv function |
|
| 149 |
CNalphaFunction=CNalphaFunction/sum(CNalphaFunction); |
|
| 150 |
plot(t, CNalphaFunction) |
|
| 151 |
disp(['area under function= ' num2str(sum(CNalphaFunction))]) |
|
| 152 |
|
|
| 153 |
%% adjust for spike current |
|
| 154 |
CNcurrentPerSpike=2; |
|
| 155 |
CNalphaFunction=CNalphaFunction*CNcurrentPerSpike; |
|
| 156 |
plot(t, CNalphaFunction) |
|
| 157 |
|
|
| 158 |
%% convolution |
|
| 159 |
result=conv(spikeArray,CNalphaFunction); |
|
| 160 |
t=dt*(1:length(result)); |
|
| 161 |
plot(t, result) |
|
| 162 |
disp(['area under function= ' num2str(sum(result))]) |
|
| 163 |
|
|
| 164 |
end |
|
| 165 |
|
|
| 166 |
|
|
| 167 |
|
|
| 168 |
|
|
| 169 |
##### SOURCE END ##### |
|
| 170 |
--> |
|
| 171 |
</body> |
|
| 172 |
</html> |
|
| testPrograms/myConv.m | ||
|---|---|---|
| 1 |
signalDuration=.1; |
|
| 2 |
spikeTime= signalDuration/2; |
|
| 3 |
for sampleRate=[1000 2000]; |
|
| 4 |
disp(['sample rate= ' num2str(sampleRate)]) |
|
| 5 |
|
|
| 6 |
%% testing convolution speculation |
|
| 7 |
dt= 1/sampleRate; |
|
| 8 |
signalLength=round(signalDuration/dt); |
|
| 9 |
spikeArray=zeros(1,signalLength); |
|
| 10 |
spikeLocation=round(spikeTime/dt); |
|
| 11 |
spikeArray(spikeLocation)=1; |
|
| 12 |
disp(['length of spike array= ' num2str(length(spikeArray))]) |
|
| 13 |
t=dt*(1:length(spikeArray)); |
|
| 14 |
plot(t, spikeArray) |
|
| 15 |
|
|
| 16 |
%% convolution function |
|
| 17 |
CNspikeToCurrentTau=0.01; |
|
| 18 |
t=dt:dt:3*CNspikeToCurrentTau; |
|
| 19 |
CNalphaFunction=... |
|
| 20 |
(1/CNspikeToCurrentTau)*t.*exp(-t/CNspikeToCurrentTau); |
|
| 21 |
|
|
| 22 |
plot(t, CNalphaFunction) |
|
| 23 |
|
|
| 24 |
%% normalise conv function |
|
| 25 |
CNalphaFunction=CNalphaFunction/sum(CNalphaFunction); |
|
| 26 |
plot(t, CNalphaFunction) |
|
| 27 |
disp(['area under function= ' num2str(sum(CNalphaFunction))]) |
|
| 28 |
|
|
| 29 |
%% adjust for spike current |
|
| 30 |
CNcurrentPerSpike=2; |
|
| 31 |
CNalphaFunction=CNalphaFunction*CNcurrentPerSpike; |
|
| 32 |
plot(t, CNalphaFunction) |
|
| 33 |
|
|
| 34 |
%% convolution |
|
| 35 |
result=conv(spikeArray,CNalphaFunction); |
|
| 36 |
t=dt*(1:length(result)); |
|
| 37 |
plot(t, result) |
|
| 38 |
disp(['area under function= ' num2str(sum(result))]) |
|
| 39 |
|
|
| 40 |
end |
|
| 41 |
|
|
| 42 |
|
|
| 43 |
|
|
| testPrograms/showMAP.m | ||
|---|---|---|
| 1 |
function showMAP (options) |
|
| 2 |
% defaults |
|
| 3 |
% options.showModelParameters=1; |
|
| 4 |
% options.showModelOutput=1; |
|
| 5 |
% options.printFiringRates=1; |
|
| 6 |
% options.showACF=1; |
|
| 7 |
% options.showEfferent=1; |
|
| 8 |
% options.surfProbability=0; |
|
| 9 |
% options.fileName=[]; |
|
| 10 |
|
|
| 11 |
dbstop if warning |
|
| 12 |
|
|
| 13 |
global dt ANdt saveAN_spikesOrProbability savedBFlist saveMAPparamsName... |
|
| 14 |
savedInputSignal TMoutput OMEoutput ARattenuation ... |
|
| 15 |
DRNLoutput IHC_cilia_output IHCrestingCiliaCond IHCrestingV... |
|
| 16 |
IHCoutput ANprobRateOutput ANoutput savePavailable tauCas ... |
|
| 17 |
CNoutput ICoutput ICmembraneOutput ICfiberTypeRates MOCattenuation |
|
| 18 |
global OMEParams DRNLParams IHC_cilia_RPParams IHCpreSynapseParams |
|
| 19 |
global AN_IHCsynapseParams MacGregorParams MacGregorMultiParams |
|
| 20 |
|
|
| 21 |
|
|
| 22 |
restorePath=path; |
|
| 23 |
addpath ( ['..' filesep 'utilities'], ['..' filesep 'parameterStore']) |
|
| 24 |
|
|
| 25 |
if nargin<1 |
|
| 26 |
options.showModelParameters=1; |
|
| 27 |
options.showModelOutput=1; |
|
| 28 |
options.printFiringRates=1; |
|
| 29 |
options.showACF=0; |
|
| 30 |
options.showEfferent=1; |
|
| 31 |
options.surfProbability=0; |
|
| 32 |
options.fileName=[]; |
|
| 33 |
end |
|
| 34 |
|
|
| 35 |
if options.showModelParameters |
|
| 36 |
% Read parameters from MAPparams<***> file in 'parameterStore' folder |
|
| 37 |
% and print out all parameters |
|
| 38 |
cmd=['MAPparams' saveMAPparamsName ... |
|
| 39 |
'(-1, 1/dt, 1);']; |
|
| 40 |
eval(cmd); |
|
| 41 |
end |
|
| 42 |
|
|
| 43 |
if options.printFiringRates |
|
| 44 |
%% print summary firing rates |
|
| 45 |
fprintf('\n\n')
|
|
| 46 |
disp('summary')
|
|
| 47 |
disp(['AR: ' num2str(min(ARattenuation))]) |
|
| 48 |
disp(['MOC: ' num2str(min(min(MOCattenuation)))]) |
|
| 49 |
nANfiberTypes=length(tauCas); |
|
| 50 |
if strcmp(saveAN_spikesOrProbability, 'spikes') |
|
| 51 |
nANfibers=size(ANoutput,1); |
|
| 52 |
nHSRfibers=nANfibers/nANfiberTypes; |
|
| 53 |
duration=size(TMoutput,2)*dt; |
|
| 54 |
disp(['AN: ' num2str(sum(sum(ANoutput(end-nHSRfibers+1:end,:)))/... |
|
| 55 |
(nHSRfibers*duration))]) |
|
| 56 |
|
|
| 57 |
nCNneurons=size(CNoutput,1); |
|
| 58 |
nHSRCNneuronss=nCNneurons/nANfiberTypes; |
|
| 59 |
disp(['CN: ' num2str(sum(sum(CNoutput(end-nHSRCNneuronss+1:end,:)))... |
|
| 60 |
/(nHSRCNneuronss*duration))]) |
|
| 61 |
disp(['IC: ' num2str(sum(sum(ICoutput))/duration)]) |
|
| 62 |
% disp(['IC by type: ' num2str(mean(ICfiberTypeRates,2)')]) |
|
| 63 |
else |
|
| 64 |
disp(['AN: ' num2str(mean(mean(ANprobRateOutput)))]) |
|
| 65 |
[PSTH pointsPerBin]= UTIL_makePSTH(ANprobRateOutput, dt, 0.001); |
|
| 66 |
disp(['max max AN: ' num2str(max(max(... |
|
| 67 |
PSTH/pointsPerBin )))]) |
|
| 68 |
end |
|
| 69 |
end |
|
| 70 |
|
|
| 71 |
|
|
| 72 |
%% figure (99) summarises main model output |
|
| 73 |
if options.showModelOutput |
|
| 74 |
plotInstructions.figureNo=99; |
|
| 75 |
signalRMS=mean(savedInputSignal.^2)^0.5; |
|
| 76 |
signalRMSdb=20*log10(signalRMS/20e-6); |
|
| 77 |
|
|
| 78 |
% plot signal (1) |
|
| 79 |
plotInstructions.displaydt=dt; |
|
| 80 |
plotInstructions.numPlots=6; |
|
| 81 |
plotInstructions.subPlotNo=1; |
|
| 82 |
plotInstructions.title=... |
|
| 83 |
['stimulus: ' num2str(signalRMSdb, '%4.0f') ' dB SPL']; |
|
| 84 |
r=size(savedInputSignal,1); |
|
| 85 |
if r==1, savedInputSignal=savedInputSignal'; end |
|
| 86 |
UTIL_plotMatrix(savedInputSignal', plotInstructions); |
|
| 87 |
|
|
| 88 |
% stapes (2) |
|
| 89 |
plotInstructions.subPlotNo=2; |
|
| 90 |
plotInstructions.title= ['stapes displacement']; |
|
| 91 |
UTIL_plotMatrix(OMEoutput, plotInstructions); |
|
| 92 |
|
|
| 93 |
% DRNL (3) |
|
| 94 |
plotInstructions.subPlotNo=3; |
|
| 95 |
plotInstructions.title= ['BM displacement']; |
|
| 96 |
plotInstructions.yValues= savedBFlist; |
|
| 97 |
UTIL_plotMatrix(DRNLoutput, plotInstructions); |
|
| 98 |
|
|
| 99 |
switch saveAN_spikesOrProbability |
|
| 100 |
case 'spikes' |
|
| 101 |
% AN (4) |
|
| 102 |
plotInstructions.displaydt=ANdt; |
|
| 103 |
plotInstructions.title='AN'; |
|
| 104 |
plotInstructions.subPlotNo=4; |
|
| 105 |
plotInstructions.yLabel='BF'; |
|
| 106 |
plotInstructions.yValues= savedBFlist; |
|
| 107 |
plotInstructions.rasterDotSize=1; |
|
| 108 |
plotInstructions.plotDivider=1; |
|
| 109 |
if sum(sum(ANoutput))<100 |
|
| 110 |
plotInstructions.rasterDotSize=3; |
|
| 111 |
end |
|
| 112 |
UTIL_plotMatrix(ANoutput, plotInstructions); |
|
| 113 |
|
|
| 114 |
% CN (5) |
|
| 115 |
plotInstructions.displaydt=ANdt; |
|
| 116 |
plotInstructions.subPlotNo=5; |
|
| 117 |
plotInstructions.title='CN spikes'; |
|
| 118 |
if sum(sum(CNoutput))<100 |
|
| 119 |
plotInstructions.rasterDotSize=3; |
|
| 120 |
end |
|
| 121 |
UTIL_plotMatrix(CNoutput, plotInstructions); |
|
| 122 |
|
|
| 123 |
% IC (6) |
|
| 124 |
plotInstructions.displaydt=ANdt; |
|
| 125 |
plotInstructions.subPlotNo=6; |
|
| 126 |
plotInstructions.title='IC'; |
|
| 127 |
if size(ICoutput,1)>3 |
|
| 128 |
if sum(sum(ICoutput))<100 |
|
| 129 |
plotInstructions.rasterDotSize=3; |
|
| 130 |
end |
|
| 131 |
UTIL_plotMatrix(ICoutput, plotInstructions); |
|
| 132 |
else |
|
| 133 |
plotInstructions.title='IC (HSR) membrane potential'; |
|
| 134 |
plotInstructions.displaydt=dt; |
|
| 135 |
plotInstructions.yLabel='V'; |
|
| 136 |
plotInstructions.zValuesRange= [-.1 0]; |
|
| 137 |
UTIL_plotMatrix(ICmembraneOutput, plotInstructions); |
|
| 138 |
end |
|
| 139 |
|
|
| 140 |
otherwise % probability (4-6) |
|
| 141 |
plotInstructions.displaydt=dt; |
|
| 142 |
plotInstructions.numPlots=2; |
|
| 143 |
plotInstructions.subPlotNo=2; |
|
| 144 |
plotInstructions.yLabel='BF'; |
|
| 145 |
if nANfiberTypes>1, |
|
| 146 |
plotInstructions.yLabel='LSR HSR'; |
|
| 147 |
plotInstructions.plotDivider=1; |
|
| 148 |
end |
|
| 149 |
plotInstructions.title='AN - spike probability'; |
|
| 150 |
UTIL_plotMatrix(ANprobRateOutput, plotInstructions); |
|
| 151 |
end |
|
| 152 |
end |
|
| 153 |
|
|
| 154 |
%% surface plot of probability |
|
| 155 |
if options.surfProbability |
|
| 156 |
figure(97), clf |
|
| 157 |
% select only HSR fibers at the bottom of the matrix |
|
| 158 |
ANprobRateOutput= ANprobRateOutput(end-length(savedBFlist)+1:end,:); |
|
| 159 |
[nY nX]=size(ANprobRateOutput); |
|
| 160 |
if nY>2 |
|
| 161 |
time=dt*(1:nX); |
|
| 162 |
surf(time, savedBFlist, ANprobRateOutput) |
|
| 163 |
shading interp |
|
| 164 |
set(gca, 'yScale','log') |
|
| 165 |
xlim([0 max(time)]), ylim([0 max(savedBFlist)]), zlim([0 1000]) |
|
| 166 |
xlabel('time (s)')
|
|
| 167 |
ylabel('best frequency (Hz)')
|
|
| 168 |
zlabel('spike rate')
|
|
| 169 |
view([-20 60]) |
|
| 170 |
if isfield(options, 'fileName') |
|
| 171 |
title ([options.fileName ': ' num2str(signalRMSdb,'% 3.0f') ' dB']) |
|
| 172 |
else |
|
| 173 |
title ([ num2str(signalRMSdb,'% 3.0f') ' dB']) |
|
| 174 |
end |
|
| 175 |
|
|
| 176 |
end |
|
| 177 |
end |
|
| 178 |
|
|
| 179 |
|
|
| 180 |
%% plot efferent control values as dB |
|
| 181 |
if options.showEfferent |
|
| 182 |
plotInstructions=[]; |
|
| 183 |
plotInstructions.figureNo=98; |
|
| 184 |
figure(98), clf |
|
| 185 |
plotInstructions.displaydt=dt; |
|
| 186 |
plotInstructions.numPlots=2; |
|
| 187 |
plotInstructions.subPlotNo=1; |
|
| 188 |
plotInstructions.zValuesRange=[ -25 0]; |
|
| 189 |
plotInstructions.title= ['AR strength. Signal level= ' ... |
|
| 190 |
num2str(signalRMSdb,'%4.0f') ' dB SPL']; |
|
| 191 |
UTIL_plotMatrix(20*log10(ARattenuation), plotInstructions); |
|
| 192 |
|
|
| 193 |
plotInstructions.subPlotNo=2; |
|
| 194 |
plotInstructions.yValues= savedBFlist; |
|
| 195 |
plotInstructions.yLabel= 'BF'; |
|
| 196 |
plotInstructions.title= ['MOC strength']; |
|
| 197 |
plotInstructions.zValuesRange=[ -25 0]; |
|
| 198 |
subplot(2,1,2) |
|
| 199 |
% imagesc(MOCattenuation) |
|
| 200 |
UTIL_plotMatrix(20*log10(MOCattenuation), plotInstructions); |
|
| 201 |
colorbar |
|
| 202 |
end |
|
| 203 |
|
|
| 204 |
%% ACF plot if required |
|
| 205 |
if options.showACF |
|
| 206 |
tic |
|
| 207 |
method.dt=dt; |
|
| 208 |
method.segmentNo=1; |
|
| 209 |
method.nonlinCF=savedBFlist; |
|
| 210 |
|
|
| 211 |
minPitch= 80; maxPitch= 4000; numPitches=100; % specify lags |
|
| 212 |
pitches=10.^ linspace(log10(minPitch), log10(maxPitch),numPitches); |
|
| 213 |
pitches=fliplr(pitches); |
|
| 214 |
filteredSACFParams.lags=1./pitches; % autocorrelation lags vector |
|
| 215 |
filteredSACFParams.acfTau= .003; % time constant of running ACF |
|
| 216 |
filteredSACFParams.lambda= 0.12; % slower filter to smooth ACF |
|
| 217 |
filteredSACFParams.lambda= 0.01; % slower filter to smooth ACF |
|
| 218 |
|
|
| 219 |
filteredSACFParams.plotACFs=0; % special plot (see code) |
|
| 220 |
filteredSACFParams.plotFilteredSACF=0; % 0 plots unfiltered ACFs |
|
| 221 |
filteredSACFParams.plotMoviePauses=.3; % special plot (see code) |
|
| 222 |
|
|
| 223 |
filteredSACFParams.usePressnitzer=0; % attenuates ACF at long lags |
|
| 224 |
filteredSACFParams.lagsProcedure= 'useAllLags'; |
|
| 225 |
% filteredSACFParams.lagsProcedure= 'useBernsteinLagWeights'; |
|
| 226 |
% filteredSACFParams.lagsProcedure= 'omitShortLags'; |
|
| 227 |
filteredSACFParams.criterionForOmittingLags=3; |
|
| 228 |
filteredSACFParams.plotACFsInterval=200; |
|
| 229 |
|
|
| 230 |
if filteredSACFParams.plotACFs |
|
| 231 |
% plot original waveform on ACF plot |
|
| 232 |
figure(13), clf |
|
| 233 |
subplot(4,1,1) |
|
| 234 |
t=dt*(1:length(savedInputSignal)); |
|
| 235 |
plot(t,savedInputSignal) |
|
| 236 |
xlim([0 t(end)]) |
|
| 237 |
title(['stimulus: ' num2str(signalRMSdb, '%4.0f') ' dB SPL']); |
|
| 238 |
end |
|
| 239 |
|
|
| 240 |
% plot original waveform on summary/smoothed ACF plot |
|
| 241 |
figure(96), clf |
|
| 242 |
subplot(2,1,1) |
|
| 243 |
t=dt*(1:length(savedInputSignal)); |
|
| 244 |
plot(t,savedInputSignal) |
|
| 245 |
xlim([0 t(end)]) |
|
| 246 |
title(['stimulus: ' num2str(signalRMSdb, '%4.0f') ' dB SPL']); |
|
| 247 |
|
|
| 248 |
|
|
| 249 |
% compute ACF |
|
| 250 |
switch saveAN_spikesOrProbability |
|
| 251 |
case 'probability' |
|
| 252 |
inputToACF=ANprobRateOutput.^0.5; |
|
| 253 |
otherwise |
|
| 254 |
inputToACF=ANoutput; |
|
| 255 |
end |
|
| 256 |
|
|
| 257 |
disp ('computing ACF...')
|
|
| 258 |
[P, BFlist, sacf, boundaryValue] = ... |
|
| 259 |
filteredSACF(inputToACF, method, filteredSACFParams); |
|
| 260 |
disp(' ACF done.')
|
|
| 261 |
|
|
| 262 |
% SACF |
|
| 263 |
subplot(2,1,2) |
|
| 264 |
imagesc(P) |
|
| 265 |
ylabel('periodicities (Hz)')
|
|
| 266 |
xlabel('time (s)')
|
|
| 267 |
title(['running smoothed (root) SACF. ' saveAN_spikesOrProbability ' input']) |
|
| 268 |
pt=[1 get(gca,'ytick')]; % force top xtick to show |
|
| 269 |
set(gca,'ytick',pt) |
|
| 270 |
set(gca,'ytickLabel', round(pitches(pt))) |
|
| 271 |
tt=get(gca,'xtick'); |
|
| 272 |
set(gca,'xtickLabel', round(100*t(tt))/100) |
|
| 273 |
end |
|
| 274 |
|
|
| 275 |
path(restorePath) |
|
| testPrograms/test_MAP1_14.m | ||
|---|---|---|
| 22 | 22 |
% Set the signal rms level (in leveldBSPL) |
| 23 | 23 |
% |
| 24 | 24 |
% #5 |
| 25 |
% Indentify the channels in terms of their best frequencies in the vector
|
|
| 25 |
% Identify the channels in terms of their best frequencies in the vector |
|
| 26 | 26 |
% BFlist. |
| 27 | 27 |
% |
| 28 | 28 |
% Last minute changes to the parameters fetched earlier can be made using |
| ... | ... | |
| 39 | 39 |
|
| 40 | 40 |
%% #2 probability (fast) or spikes (slow) representation |
| 41 | 41 |
AN_spikesOrProbability='spikes'; |
| 42 |
|
|
| 42 | 43 |
% or |
| 44 |
% NB probabilities are not corrected for refractory effects |
|
| 43 | 45 |
AN_spikesOrProbability='probability'; |
| 44 | 46 |
|
| 45 | 47 |
|
| 46 | 48 |
%% #3 pure tone, harmonic sequence or speech file input |
| 47 | 49 |
signalType= 'tones'; |
| 48 |
duration=0.100; % seconds |
|
| 49 |
% duration=0.020; % seconds |
|
| 50 |
sampleRate= 64000; |
|
| 50 |
sampleRate= 100000; |
|
| 51 |
duration=0.010; % seconds |
|
| 51 | 52 |
% toneFrequency= 250:250:8000; % harmonic sequence (Hz) |
| 52 |
toneFrequency= 1000; % or a pure tone (Hz8 |
|
| 53 |
|
|
| 53 |
toneFrequency= 4000; % or a pure tone (Hz8 |
|
| 54 | 54 |
rampDuration=.005; % seconds |
| 55 | 55 |
|
| 56 | 56 |
% or |
| 57 |
signalType= 'file'; |
|
| 58 |
fileName='twister_44kHz'; |
|
| 59 |
% fileName='new-da-44khz'; |
|
| 57 |
% signalType= 'file'; |
|
| 58 |
% fileName='twister_44kHz'; |
|
| 60 | 59 |
|
| 61 |
% ? and mix with an optional second file? |
|
| 62 |
mixerFile=[]; |
|
| 63 |
%or |
|
| 64 |
mixerFile='babble'; |
|
| 65 |
leveldBSPL2=60; |
|
| 66 | 60 |
|
| 67 | 61 |
%% #4 rms level |
| 68 | 62 |
% signal details |
| ... | ... | |
| 91 | 85 |
% 'IHCpreSynapseParams.tauCa=86e-6;'}; |
| 92 | 86 |
% paramChanges={'DRNLParams.rateToAttenuationFactorProb = 0;'};
|
| 93 | 87 |
|
| 94 |
%% delare showMap options |
|
| 95 |
showMapOptions=[]; % use defaults |
|
| 88 |
|
|
| 89 |
%% delare 'showMap' options to control graphical output |
|
| 90 |
global showMapOptions |
|
| 96 | 91 |
|
| 97 | 92 |
% or (example: show everything including an smoothed SACF output |
| 98 |
showMapOptions.showModelParameters=1; |
|
| 99 |
showMapOptions.showModelOutput=1; |
|
| 100 |
showMapOptions.printFiringRates=1; |
|
| 101 |
showMapOptions.showACF=0; |
|
| 102 |
showMapOptions.showEfferent=1; |
|
| 103 |
if strcmp(AN_spikesOrProbability, 'probability') |
|
| 104 |
showMapOptions.surfProbability=1; |
|
| 93 |
showMapOptions.printModelParameters=1; % prints all parameters |
|
| 94 |
showMapOptions.showModelOutput=1; % plot of all stages |
|
| 95 |
showMapOptions.printFiringRates=1; % prints stage activity levels |
|
| 96 |
showMapOptions.showACF=0; % shows SACF (probability only) |
|
| 97 |
showMapOptions.showEfferent=1; % tracks of AR and MOC |
|
| 98 |
showMapOptions.surfProbability=1; % 2D plot of HSR response |
|
| 99 |
if strcmp(AN_spikesOrProbability, 'spikes') |
|
| 100 |
% avoid nonsensical options |
|
| 101 |
showMapOptions.surfProbability=0; |
|
| 102 |
showMapOptions.showACF=0; |
|
| 105 | 103 |
end |
| 106 | 104 |
if strcmp(signalType, 'file') |
| 105 |
% needed for labeling plot |
|
| 107 | 106 |
showMapOptions.fileName=fileName; |
| 107 |
else |
|
| 108 |
showMapOptions.fileName=[]; |
|
| 108 | 109 |
end |
| 109 | 110 |
|
| 110 | 111 |
%% Generate stimuli |
| ... | ... | |
| 116 | 117 |
case 'tones' |
| 117 | 118 |
inputSignal=createMultiTone(sampleRate, toneFrequency, ... |
| 118 | 119 |
leveldBSPL, duration, rampDuration); |
| 119 |
|
|
| 120 |
|
|
| 120 | 121 |
case 'file' |
| 121 | 122 |
%% file input simple or mixed |
| 122 | 123 |
[inputSignal sampleRate]=wavread(fileName); |
| 123 |
dt=1/sampleRate;
|
|
| 124 |
dt=1/sampleRate; |
|
| 124 | 125 |
inputSignal=inputSignal(:,1); |
| 125 | 126 |
targetRMS=20e-6*10^(leveldBSPL/20); |
| 126 | 127 |
rms=(mean(inputSignal.^2))^0.5; |
| ... | ... | |
| 128 | 129 |
inputSignal=inputSignal*amp; |
| 129 | 130 |
silence= zeros(1,round(0.1/dt)); |
| 130 | 131 |
inputSignal= [silence inputSignal' silence]; |
| 131 |
|
|
| 132 |
if ~isempty(mixerFile) |
|
| 133 |
[inputSignal2 sampleRate2]=wavread(mixerFile); |
|
| 134 |
if ~isequal(sampleRate,sampleRate2) |
|
| 135 |
error... |
|
| 136 |
('file and mixer file have different sample rates')
|
|
| 137 |
end |
|
| 138 |
inputSignal2=inputSignal2(:,1); |
|
| 139 |
[r c]=size(inputSignal); |
|
| 140 |
inputSignal2=inputSignal2(1:r); |
|
| 141 |
targetRMS=20e-6*10^(leveldBSPL2/20); |
|
| 142 |
rms=(mean(inputSignal2.^2))^0.5; |
|
| 143 |
amp=targetRMS/rms; |
|
| 144 |
inputSignal2=inputSignal2*amp; |
|
| 145 |
rampDuration=dt*length(inputSignal2)/3; |
|
| 146 |
if rampDuration>0.5*duration, rampDuration=duration/2; end |
|
| 147 |
rampTime=dt:dt:rampDuration; |
|
| 148 |
time=dt*(1:length(inputSignal2)); |
|
| 149 |
ramp=[0.5*(1+cos(2*pi*rampTime/(2*rampDuration)+pi)) ... |
|
| 150 |
ones(1,length(time)-length(rampTime))]; |
|
| 151 |
inputSignal2=inputSignal2.*ramp'; |
|
| 152 |
ramp=fliplr(ramp); |
|
| 153 |
inputSignal2=inputSignal2.*ramp'; |
|
| 154 |
end |
|
| 155 |
|
|
| 156 |
inputSignal=inputSignal+inputSignal2; |
|
| 157 | 132 |
end |
| 158 | 133 |
|
| 159 | 134 |
|
| ... | ... | |
| 167 | 142 |
|
| 168 | 143 |
restorePath=path; |
| 169 | 144 |
addpath (['..' filesep 'MAP']) |
| 145 |
addpath (['..' filesep 'utilities']) |
|
| 170 | 146 |
|
| 171 | 147 |
MAP1_14(inputSignal, sampleRate, BFlist, ... |
| 172 | 148 |
MAPparamsName, AN_spikesOrProbability, paramChanges); |
| 173 |
path(restorePath) |
|
| 174 | 149 |
toc |
| 175 | 150 |
|
| 176 | 151 |
% the model run is now complete. Now display the results |
| 177 |
showMAP(showMapOptions)
|
|
| 152 |
disp(' param changes to list of parameters below')
|
|
| 178 | 153 |
for i=1:length(paramChanges) |
| 179 | 154 |
disp(paramChanges{i})
|
| 180 | 155 |
end |
| 156 |
UTIL_showMAP(showMapOptions) |
|
| 157 |
|
|
| 181 | 158 |
|
| 182 | 159 |
toc |
| 183 | 160 |
path(restorePath) |
| ... | ... | |
| 204 | 181 |
|
| 205 | 182 |
% add 10 ms silence |
| 206 | 183 |
silence= zeros(1,round(0.03/dt)); |
| 184 |
silence= zeros(1,round(0.01/dt)); |
|
| 207 | 185 |
inputSignal= [silence inputSignal silence]; |
| 208 | 186 |
|
| userPrograms/Pavel_MAP1_14.m | ||
|---|---|---|
| 1 |
function Pavel_MAP1_14 |
|
| 2 |
% test_MAP1_14 is a general purpose test routine that can be adjusted to |
|
| 3 |
% test a number of different applications of MAP1_14 |
|
| 4 |
% |
|
| 5 |
% A range of options are supplied in the early part of the program |
|
| 6 |
% |
|
| 7 |
% One use of the function is to create demonstrations; filenames <demoxx> |
|
| 8 |
% to illustrate particular features |
|
| 9 |
% |
|
| 10 |
% #1 |
|
| 11 |
% Identify the file (in 'MAPparamsName') containing the model parameters |
|
| 12 |
% |
|
| 13 |
% #2 |
|
| 14 |
% Identify the kind of model required (in 'AN_spikesOrProbability'). |
|
| 15 |
% A full brainstem model (spikes) can be computed or a shorter model |
|
| 16 |
% (probability) that computes only so far as the auditory nerve |
|
| 17 |
% |
|
| 18 |
% #3 |
|
| 19 |
% Choose between a tone signal or file input (in 'signalType') |
|
| 20 |
% |
|
| 21 |
% #4 |
|
| 22 |
% Set the signal rms level (in leveldBSPL) |
|
| 23 |
% |
|
| 24 |
% #5 |
|
| 25 |
% Identify the channels in terms of their best frequencies in the vector |
|
| 26 |
% BFlist. |
|
| 27 |
% |
|
| 28 |
% Last minute changes to the parameters fetched earlier can be made using |
|
| 29 |
% the cell array of strings 'paramChanges'. |
|
| 30 |
% Each string must have the same format as the corresponding line in the |
|
| 31 |
% file identified in 'MAPparamsName' |
|
| 32 |
% |
|
| 33 |
% When the demonstration is satisfactory, freeze it by renaming it <demoxx> |
|
| 34 |
|
|
| 35 |
|
|
| 36 |
%% #1 parameter file name |
|
| 37 |
MAPparamsName='Normal'; |
|
| 38 |
|
|
| 39 |
|
|
| 40 |
%% #2 probability (fast) or spikes (slow) representation |
|
| 41 |
AN_spikesOrProbability='spikes'; |
|
| 42 |
|
|
| 43 |
% or |
|
| 44 |
% AN_spikesOrProbability='probability'; |
|
| 45 |
% NB probabilities are not corrected for refractory effects |
|
| 46 |
|
|
| 47 |
|
|
| 48 |
%% #3 pure tone, harmonic sequence or speech file input |
|
| 49 |
signalType= 'tones'; |
|
| 50 |
sampleRate= 100000; |
|
| 51 |
duration=0.1; % seconds |
|
| 52 |
% toneFrequency= 250:250:8000; % harmonic sequence (Hz) |
|
| 53 |
toneFrequency= 1000; % or a pure tone (Hz8 |
|
| 54 |
rampDuration=.005; % seconds |
|
| 55 |
|
|
| 56 |
% or |
|
| 57 |
% signalType= 'file'; |
|
| 58 |
% fileName='twister_44kHz'; |
|
| 59 |
|
|
| 60 |
|
|
| 61 |
%% #4 rms level |
|
| 62 |
% signal details |
|
| 63 |
leveldBSPL= 30; % dB SPL |
|
| 64 |
|
|
| 65 |
|
|
| 66 |
%% #5 number of channels in the model |
|
| 67 |
% 21-channel model (log spacing) |
|
| 68 |
% numChannels=21; |
|
| 69 |
% lowestBF=250; highestBF= 8000; |
|
| 70 |
% BFlist=round(logspace(log10(lowestBF), log10(highestBF), numChannels)); |
|
| 71 |
|
|
| 72 |
% or specify your own channel BFs |
|
| 73 |
numChannels=1; |
|
| 74 |
BFlist=toneFrequency; |
|
| 75 |
|
|
| 76 |
|
|
| 77 |
%% #6 change model parameters |
|
| 78 |
paramChanges=[]; |
|
| 79 |
|
|
| 80 |
% or |
|
| 81 |
% Parameter changes can be used to change one or more model parameters |
|
| 82 |
% *after* the MAPparams file has been read |
|
| 83 |
% This example declares only one fiber type with a calcium clearance time |
|
| 84 |
% constant of 80e-6 s (HSR fiber) when the probability option is selected. |
|
| 85 |
% It also removes the speed up that normally takes place for AN spikes |
|
| 86 |
% It also increases the number of AN fibers computed to 500. |
|
| 87 |
paramChanges={...
|
|
| 88 |
'AN_IHCsynapseParams.ANspeedUpFactor=1;', ... |
|
| 89 |
'IHCpreSynapseParams.tauCa=86e-6;',... |
|
| 90 |
'AN_IHCsynapseParams.numFibers= 500;' }; |
|
| 91 |
|
|
| 92 |
|
|
| 93 |
%% delare 'showMap' options to control graphical output |
|
| 94 |
global showMapOptions |
|
| 95 |
|
|
| 96 |
% or (example: show everything including an smoothed SACF output |
|
| 97 |
showMapOptions.printModelParameters=1; % prints all parameters |
|
| 98 |
showMapOptions.showModelOutput=1; % plot of all stages |
|
| 99 |
showMapOptions.printFiringRates=1; % prints stage activity levels |
|
| 100 |
showMapOptions.showACF=0; % shows SACF (probability only) |
|
| 101 |
showMapOptions.showEfferent=0; % tracks of AR and MOC |
|
| 102 |
showMapOptions.surfProbability=0; % 2D plot of HSR response |
|
| 103 |
if strcmp(AN_spikesOrProbability, 'spikes') |
|
| 104 |
% avoid nonsensical options |
|
| 105 |
showMapOptions.surfProbability=0; |
|
| 106 |
showMapOptions.showACF=0; |
|
| 107 |
end |
|
| 108 |
if strcmp(signalType, 'file') |
|
| 109 |
% needed for labeling plot |
|
| 110 |
showMapOptions.fileName=fileName; |
|
| 111 |
else |
|
| 112 |
showMapOptions.fileName=[]; |
|
| 113 |
end |
|
| 114 |
|
|
| 115 |
%% Generate stimuli |
|
| 116 |
|
|
| 117 |
dbstop if error |
|
| 118 |
restorePath=path; |
|
| 119 |
addpath (['..' filesep 'MAP'], ['..' filesep 'wavFileStore']) |
|
| 120 |
switch signalType |
|
| 121 |
case 'tones' |
|
| 122 |
inputSignal=createMultiTone(sampleRate, toneFrequency, ... |
|
| 123 |
leveldBSPL, duration, rampDuration); |
|
| 124 |
|
|
| 125 |
case 'file' |
|
| 126 |
%% file input simple or mixed |
|
| 127 |
[inputSignal sampleRate]=wavread(fileName); |
|
| 128 |
dt=1/sampleRate; |
|
| 129 |
inputSignal=inputSignal(:,1); |
|
| 130 |
targetRMS=20e-6*10^(leveldBSPL/20); |
|
| 131 |
rms=(mean(inputSignal.^2))^0.5; |
|
| 132 |
amp=targetRMS/rms; |
|
| 133 |
inputSignal=inputSignal*amp; |
|
Also available in: Unified diff