annotate Copy_of_multithreshold 1.46/testOME.m @ 31:c54a34161e4a

MT update
author Ray Meddis <rmeddis@essex.ac.uk>
date Mon, 11 Jul 2011 14:43:23 +0100
parents 02aa9826efe0
children
rev   line source
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);