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