comparison testPrograms/oldTestPrograms/MAPtwoToneDemo1D.m @ 38:c2204b18f4a2 tip

End nov big change
author Ray Meddis <rmeddis@essex.ac.uk>
date Mon, 28 Nov 2011 13:34:28 +0000
parents
children
comparison
equal deleted inserted replaced
37:771a643d5c29 38:c2204b18f4a2
1 % function MAPtwoToneDemo
2 % Not for distribution but code worth keeping
3 % Demonstration of two-tone suppression in the AN using a
4 % single channel
5 %
6
7 dbstop if error
8 % create access to all MAP 1_8 facilities
9 % addpath ('..\modules', '..\utilities', '..\parameterStore', '..\wavFileStore' , '..\testPrograms')
10 addpath (['..' filesep 'modules'], ['..' filesep 'utilities'], ['..' filesep 'parameterStore'], ['..' filesep 'wavFileStore'] , ['..' filesep 'testPrograms'])
11
12 moduleSequence= 1:7; % up to the AN
13 figure(3), clf
14 primaryToneFrequency=2000;
15 suppressorFrequency=primaryToneFrequency*1.5;
16
17 primaryDB=30;
18 suppressors=20:10:80;
19 frameCount=0;
20 for suppressorDB=suppressors
21 frameCount=frameCount+1;
22 lowestBF=1000; highestBF= 5000; numChannels=30;
23 BFlist=round(logspace(log10(lowestBF), log10(highestBF), numChannels));
24 BFlist=2000;
25 duration=.020; % seconds
26 sampleRate= 40000; % Hz (higher sample rate needed for BF>8000 Hz)
27 dt=1/sampleRate; % seconds
28
29 % for conditionNo=1:3 % probe alone/ suppressor alone/ combined
30 for conditionNo=1:3 % probe alone/ suppressor alone/ combined
31 switch conditionNo
32 case 1
33 primaryLevelDB=primaryDB;
34 suppressorLevelDB= -100;
35 plotGuide.subPlotNo= 1; % initialize subplot count
36 figureTitle=['probe alone: ' num2str(primaryToneFrequency) ' Hz; ' num2str(primaryLevelDB) ' dB SPL'];
37
38 case 2
39 primaryLevelDB=-100;
40 suppressorLevelDB=suppressorDB;
41 plotGuide.subPlotNo= 2; % initialize subplot count
42 figureTitle=['suppressor alone: ' num2str(suppressorFrequency) ' Hz; ' num2str(suppressorLevelDB) ' dB SPL'];
43 case 3
44 primaryLevelDB=primaryDB;
45 suppressorLevelDB=suppressorDB;
46 plotGuide.subPlotNo= 3; % initialize subplot count
47 figureTitle=['probe + suppressor'];
48 end
49
50 % primary BF tone
51 time1=dt: dt: duration;
52 amp=10^(primaryLevelDB/20)*28e-6;
53 inputSignal=amp*sin(2*pi*primaryToneFrequency*time1);
54 rampDuration=.005; rampTime=dt:dt:rampDuration;
55 ramp=[0.5*(1+cos(2*pi*rampTime/(2*rampDuration)+pi)) ones(1,length(time1)-length(rampTime))];
56 inputSignal=inputSignal.*ramp;
57 inputSignal=inputSignal.*fliplr(ramp);
58
59 % suppressor
60 tone2Duration=duration/2; % s
61 time2= dt: dt: tone2Duration;
62 % B: tone on
63 amp=10^(suppressorLevelDB/20)*28e-6;
64 inputSignal2=amp*sin(2*pi*suppressorFrequency*time2);
65 rampDuration=.005; rampTime=dt:dt:rampDuration;
66 ramp=[0.5*(1+cos(2*pi*rampTime/(2*rampDuration)+pi)) ones(1,length(time2)-length(rampTime))];
67 inputSignal2=inputSignal2.*ramp;
68 % A: initial silence (delay to suppressor)
69 silence=zeros(1,length(time2));
70 inputSignal2=[silence inputSignal2];
71
72 % add tone and suppressor components
73 inputSignal=inputSignal+inputSignal2;
74
75 % specify model parameters
76 method=MAPparamsDEMO(BFlist, sampleRate);
77 % parameter change (must be global to take effect)
78 global AN_IHCsynapseParams
79 AN_IHCsynapseParams.mode= 'probability';
80 % method.useEfferent=0;
81
82 method.plotGraphs= 1; % please plot
83
84 figure(4), subplot(3,1,conditionNo)
85 plot(time1, inputSignal, 'k')% *************
86
87 [ANresponse, method, A]=MAPsequenceSeg(inputSignal, method, moduleSequence);
88 response{conditionNo}=ANresponse;
89 % F(frameCount) = getframe(gcf);
90 end
91
92 % peakResponse=max(max([response{1} response{2} response{3}]));
93 % figure(3), subplot(4,1,1)
94 % mesh((response{1}), [0 peakResponse])
95 % title(['primary: ' num2str(primaryDB) ' dB SPL'])
96 % zlim([0 5000]), view([-28 36])
97 %
98 % figure(3), subplot(4,1,2)
99 % mesh((response{2}), [0 peakResponse])
100 % title(['suppressor: ' num2str(suppressorDB) ' dB SPL'])
101 % zlim([0 5000]), view([-28 36])
102 %
103 % figure(3), subplot(4,1,3)
104 % mesh((response{3}), [0 peakResponse])
105 % title([' primary + suppressor '])
106 % zlim([0 5000]), view([-28 36])
107 %
108 % figure(3), subplot(4,1,4)
109 % sum= response{3}-response{1}-response{2};
110 % mesh(sum)
111 % zlim([-2000 2000])
112 % title(' difference matrix (combined - primary - suppressor)')
113 % view([-28 20])
114 % disp( [num2str([ suppressorDB primaryDB max(max(sum))])] )
115 %
116 % colormap(jet)
117 pause(1)
118 end
119
120 figure(4)
121 xlabel('time (s)')
122 figure(3)
123 xlabel('time (s)')
124
125 % figure(99), movie(F, 1, 1)
126 % UTIL_showAllMAPStructures