To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

The primary repository for this project is hosted at git://github.com/rmeddis/MAP.git .
This repository is a read-only copy which is updated automatically every hour.

Statistics Download as Zip
| Branch: | Revision:

root / userProgramsRM / test_speechInNoise.m @ 38:c2204b18f4a2

History | View | Annotate | Download (4.27 KB)

1 38:c2204b18f4a2 rmeddis
function test_speechInNoise
2
3
leveldBSPL= 60;                  % dB SPL
4
leveldBSPLNoise=-55;
5
6
% leveldBSPL= 90;                  % test AR
7
% leveldBSPLNoise=85;
8
OMEatten=0.1;
9
OMEatten=0.00;
10
11
MOCattenuation=0.00;    % no attenuation
12
% MOCattenuation=-0.02;   % fixed
13
% MOCattenuation=0.02;    % dynamic within-channel
14
MOCtauProb=0.150;
15
16
paramChanges={};
17
18
% no attenuation
19
paramChanges={['DRNLParams.rateToAttenuationFactorProb = '...
20
    num2str(MOCattenuation) ';'],...
21
    ['DRNLParams.MOCtauProb =' num2str(MOCtauProb) ';'],...
22
    ['OMEParams.rateToAttenuationFactorProb=' num2str(OMEatten) ';'] };
23
24
%
25
fileName='twister_44kHz';
26
% fileName='1o7a_44kHz';
27
28
dbstop if error
29
restorePath=path;
30
addpath (['..' filesep 'MAP'],    ['..' filesep 'wavFileStore'], ...
31
    ['..' filesep 'utilities'])
32
33
%%  #1 parameter file name
34
MAPparamsName='Normal';
35
36
37
%% #2 probability (fast) or spikes (slow) representation
38
AN_spikesOrProbability='spikes';
39
%   or
40
AN_spikesOrProbability='probability';
41
42
43
%% #3  speech file input
44
45
beginSilence=.25;
46
endSilence=0.25;
47
noiseRampDuration=0.01;
48
49
%% #5 number of channels in the model
50
%   21-channel model (log spacing)
51
numChannels=21;
52
lowestBF=300; 	highestBF= 6000;
53
BFlist=round(logspace(log10(lowestBF), log10(highestBF), numChannels));
54
55
%   or specify your own channel BFs
56
% numChannels=1;
57
% BFlist=toneFrequency;
58
59
60
61
%% delare 'showMap' options to control graphical output
62
showMapOptions.printModelParameters=1;   % prints all parameters
63
showMapOptions.showModelOutput=1;       % plot of all stages
64
showMapOptions.printFiringRates=1;      % prints stage activity levels
65
showMapOptions.showACF=0;               % shows SACF (probability only)
66
showMapOptions.showEfferent=0;          % tracks of AR and MOC
67
showMapOptions.surfProbability=1;       % 2D plot of HSR response
68
showMapOptions.surfSpikes=0;            % 2D plot of spikes histogram
69
showMapOptions.ICrates=0;               % IC rates by CNtauGk
70
showMapOptions.PSTHbinwidth=0.010;
71
showMapOptions.colorbar=0;
72
showMapOptions.view=[0 90];
73
74
% disable certain silly options
75
if strcmp(AN_spikesOrProbability, 'spikes')
76
    % avoid nonsensical options
77
    showMapOptions.surfProbability=0;
78
    showMapOptions.showACF=0;
79
else
80
    showMapOptions.surfSpikes=0;
81
end
82
    % needed for labeling plot
83
    showMapOptions.fileName=fileName;
84
85
%% Generate stimuli
86
87
        %% file input simple or mixed
88
        [inputSignal sampleRate]=wavread(fileName);
89
        dt=1/sampleRate;
90
        inputSignal=inputSignal(:,1);
91
        targetRMS=20e-6*10^(leveldBSPL/20);
92
        rms=(mean(inputSignal.^2))^0.5;
93
        amp=targetRMS/rms;
94
        inputSignal=inputSignal*amp;
95
96
        % add silences
97
        intialSilence= zeros(1,round(beginSilence*sampleRate));
98
        finalSilence= zeros(1,round(endSilence*sampleRate));
99
        inputSignal= [intialSilence inputSignal' finalSilence];
100
101
        [inputNoise sampleRateN]=wavread('babble');
102
        inputNoise=inputNoise(1:length(inputSignal));
103
       inputNoise=inputNoise(:,1);
104
        targetRMS=20e-6*10^(leveldBSPLNoise/20);
105
        rms=(mean(inputNoise.^2))^0.5;
106
        amp=targetRMS/rms;
107
        inputNoise=inputNoise*amp;
108
        time=dt: dt: dt*length(inputNoise);
109
        rampTime=dt:dt:noiseRampDuration;
110
        ramp=[0.5*(1+cos(2*pi*rampTime/(2*noiseRampDuration)+pi)) ...
111
            ones(1,length(time)-length(rampTime))];
112
        inputNoise=inputNoise'.*ramp;
113
        inputSignal=inputSignal+inputNoise;
114
115
116
117
%% run the model
118
tic
119
120
fprintf('\n')
121
disp(['Signal duration= ' num2str(length(inputSignal)/sampleRate)])
122
disp([num2str(numChannels) ' channel model'])
123
disp('Computing ...')
124
125
MAP1_14(inputSignal, sampleRate, BFlist, ...
126
    MAPparamsName, AN_spikesOrProbability, paramChanges);
127
128
129
%% the model run is now complete. Now display the results
130
UTIL_showMAP(showMapOptions, paramChanges)
131
figure(97),
132
title(['speech/ noise: ' num2str([leveldBSPL leveldBSPLNoise]) ...
133
    ';   atten/ tau: ' num2str([MOCattenuation MOCtauProb] )],'fontSize', 14)
134
135
disp(['level=' num2str(leveldBSPL)])
136
disp(['noise level=' num2str(leveldBSPLNoise)])
137
138
global DRNLParams
139
disp(['attenuation factor =' ...
140
    num2str(DRNLParams.rateToAttenuationFactor, '%5.3f') ])
141
disp(['attenuation factor (probability)=' ...
142
    num2str(DRNLParams.rateToAttenuationFactorProb, '%5.3f') ])
143
disp(AN_spikesOrProbability)
144
disp(paramChanges)
145
toc
146
path(restorePath)