annotate multithreshold 1.46/testOME.m @ 6:ec0dd749986c

Making a start on the documentation
author Ray Meddis <rmeddis@essex.ac.uk>
date Fri, 27 May 2011 14:12:18 +0100
parents f233164f4c86
children 5b23b9f11806
rev   line source
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);