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