Revision 23:6cce421531e2

View differences:

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&reg; 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;
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff