rmeddis@0
|
1 function testOME
|
rmeddis@0
|
2
|
rmeddis@0
|
3 global experiment
|
rmeddis@0
|
4 savePath=path;
|
rmeddis@0
|
5 addpath (['..' filesep 'utilities'],['..' filesep 'MAP'])
|
rmeddis@0
|
6
|
rmeddis@0
|
7 sampleRate=50000;
|
rmeddis@0
|
8
|
rmeddis@0
|
9 dt=1/sampleRate;
|
rmeddis@0
|
10 leveldBSPL=80; % dB SPL as used by Huber (may trigger AR)
|
rmeddis@0
|
11 amp=10^(leveldBSPL/20)*28e-6;
|
rmeddis@0
|
12 duration=.05;
|
rmeddis@0
|
13 time=dt: dt: duration;
|
rmeddis@0
|
14
|
rmeddis@0
|
15 %% Comparison data (human)
|
rmeddis@0
|
16 % These data are taken directly from Huber 2001 (Fig. 4)
|
rmeddis@0
|
17 HuberFrequencies=[600 800 1000 2000 3000 4000 6000 8000];
|
rmeddis@0
|
18 HuberDisplacementAt80dBSPL=[1.5E-9 1.5E-09 1.5E-09 1.0E-09 7.0E-10 ...
|
rmeddis@0
|
19 3.0E-10 2.0E-10 1.0E-10]; % m;
|
rmeddis@0
|
20 % HuberVelocityAt80dBSPL= 2*pi*HuberFrequencies.*HuberDisplacementAt80dBSPL;
|
rmeddis@0
|
21
|
rmeddis@0
|
22 figure(2), clf, subplot(2,1,1)
|
rmeddis@0
|
23 set(2,'position',[5 349 268 327])
|
rmeddis@0
|
24 semilogx(HuberFrequencies, 20*log10(HuberDisplacementAt80dBSPL/1e-10),...
|
rmeddis@0
|
25 'ko', 'MarkerFaceColor','k', 'Marker','o', 'markerSize',6)
|
rmeddis@0
|
26 % Generate test stimulus .................................................................
|
rmeddis@0
|
27
|
rmeddis@0
|
28 %% independent test using discrete frequencies
|
rmeddis@0
|
29 peakResponses=[];
|
rmeddis@0
|
30 peakTMpressure=[];
|
rmeddis@0
|
31 frequencies=[200 400 HuberFrequencies 10000];
|
rmeddis@0
|
32 for toneFrequency=frequencies
|
rmeddis@0
|
33 inputSignal=amp*sin(2*pi*toneFrequency*time);
|
rmeddis@0
|
34
|
rmeddis@0
|
35 MAPparamsName=experiment.name;
|
rmeddis@0
|
36 showPlotsAndDetails=0;
|
rmeddis@0
|
37 AN_spikesOrProbability='probability';
|
rmeddis@0
|
38 % switch off AR & MOC (Huber's patients were deaf)
|
rmeddis@0
|
39 paramChanges{1}='OMEParams.rateToAttenuationFactorProb=0;';
|
rmeddis@0
|
40 paramChanges{2}='DRNLParams.rateToAttenuationFactorProb = 0;';
|
rmeddis@0
|
41
|
rmeddis@0
|
42 global OMEoutput OMEextEarPressure TMoutput ARAttenuation
|
rmeddis@0
|
43 % BF is irrelevant
|
rmeddis@0
|
44 MAP1_14(inputSignal, sampleRate, -1, ...
|
rmeddis@0
|
45 MAPparamsName, AN_spikesOrProbability, paramChanges);
|
rmeddis@0
|
46
|
rmeddis@0
|
47 peakDisplacement=max(OMEoutput(floor(end/2):end));
|
rmeddis@0
|
48 peakResponses=[peakResponses peakDisplacement];
|
rmeddis@0
|
49
|
rmeddis@0
|
50 peakTMpressure=[peakTMpressure max(OMEextEarPressure)];
|
rmeddis@0
|
51 disp([' greatest AR attenuation: ' num2str(min(ARAttenuation))])
|
rmeddis@0
|
52 end
|
rmeddis@0
|
53
|
rmeddis@0
|
54 %% Report
|
rmeddis@0
|
55 disp('frequency displacement(m)')
|
rmeddis@0
|
56 % disp(num2str([frequencies' peakResponses']))
|
rmeddis@0
|
57 fprintf('%6.0f \t%10.3e\n',[frequencies' peakResponses']')
|
rmeddis@0
|
58
|
rmeddis@0
|
59 % stapes peak displacement
|
rmeddis@0
|
60 figure(2), subplot(2,1,1), hold on
|
rmeddis@0
|
61 semilogx(frequencies, 20*log10(peakResponses/1e-10), 'r', 'linewidth',4)
|
rmeddis@0
|
62 % ylim([1e-11 1e-8])
|
rmeddis@0
|
63 xlim([100 10000]), ylim([0 30])
|
rmeddis@0
|
64 grid on
|
rmeddis@0
|
65 title(['stapes at ' num2str(leveldBSPL) ' (NB deaf)'])
|
rmeddis@0
|
66 ylabel('disp: dB re 1e-10m')
|
rmeddis@0
|
67 xlabel('stimulus frequency (Hz)')
|
rmeddis@0
|
68 legend({'Huber et al','model'},'location','southWest')
|
rmeddis@0
|
69 set(gcf,'name','OME')
|
rmeddis@0
|
70
|
rmeddis@0
|
71 % external ear resonance
|
rmeddis@0
|
72 figure(2), subplot(2,1,2),hold off
|
rmeddis@0
|
73 semilogx(frequencies, 20*log10(peakTMpressure/28e-6)-leveldBSPL,...
|
rmeddis@0
|
74 'k', 'linewidth',2)
|
rmeddis@0
|
75 xlim([100 10000]) %, ylim([-10 30])
|
rmeddis@0
|
76 grid on
|
rmeddis@0
|
77 title(['External ear resonances' ])
|
rmeddis@0
|
78 ylabel('dB')
|
rmeddis@0
|
79 xlabel('frequency')
|
rmeddis@0
|
80 set(gcf,'name','OME: external resonances')
|
rmeddis@0
|
81 % ---------------------------------------------------------- display parameters
|
rmeddis@0
|
82 disp(['parameter file was: ' experiment.name])
|
rmeddis@0
|
83 fprintf('\n')
|
rmeddis@0
|
84
|
rmeddis@0
|
85 path(savePath); |