Mercurial > hg > aim92
comparison model/table.c @ 0:5242703e91d3 tip
Initial checkin for AIM92 aimR8.2 (last updated May 1997).
author | tomwalters |
---|---|
date | Fri, 20 May 2011 15:19:45 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:5242703e91d3 |
---|---|
1 /* | |
2 Copyright (c) Applied Psychology Unit, Medical Research Council. 1988, 1989 | |
3 =========================================================================== | |
4 | |
5 Permission to use, copy, modify, and distribute this software without fee | |
6 is hereby granted for research purposes, provided that this copyright | |
7 notice appears in all copies and in all supporting documentation, and that | |
8 the software is not redistributed for any fee (except for a nominal shipping | |
9 charge). Anyone wanting to incorporate all or part of this software in a | |
10 commercial product must obtain a license from the Medical Research Council. | |
11 | |
12 The MRC makes no representations about the suitability of this | |
13 software for any purpose. It is provided "as is" without express or implied | |
14 warranty. | |
15 | |
16 */ | |
17 | |
18 /* | |
19 table.c - Options tables for model parameters | |
20 | |
21 */ | |
22 | |
23 /*************************************************************************** | |
24 * The model options are grouped according to the processing stages which use | |
25 * them. The stages which use each group are listed above each group. These | |
26 * lists contain sub-lists of stages from each model type, (ie, envelope, fine, | |
27 * complex, nonmult, noncalc. See model.c:FindStage() ). | |
28 * The options table for a particular group must be installed in the options | |
29 * field of the stage structure (see model.c:FindStage()) which is the lowest | |
30 * stage (as listed textually in the stage table) of the stages which use that | |
31 * group. In this way, the other stages which use that group will pick up the | |
32 * options when the complete options table is constructed, by accumulating all | |
33 * options groups from a given stage name to the bottom of the stage table. | |
34 * For example, the "auditory filter output" group listed just below is used | |
35 * by stage fbm (a "fine" model), stage bmm (a "nonmult" model), and stages | |
36 * fcp and fcr (both "complex" models). The group options table (fbmopts) | |
37 * should be installed in the stage table in the options fields for the stages | |
38 * fbm, bmm, and fcr. The stage fcp can be assigned NO_OPTS because it will | |
39 * pick up the options from stage fcr when the complete options table is | |
40 * constructed, (see gen.c:constructOptions()). | |
41 * | |
42 * Routes through the model. | |
43 * There are two parallel routes (ie sequential stages of processing): | |
44 * a) an auditory route (conventionally displayed as landscapes). | |
45 * b) a speech route (conventionally displayed as greyscales). | |
46 * Either route is a three-stage model, composed of a sequence of modules. | |
47 * The names of each of the three stages are an alias for the corresponding | |
48 * module at a particular stage of processing. (Eg, genbmm is the first of the | |
49 * three model stages in the auditory route. It is displayed as a landscape. | |
50 * It is an alias for genfbm, and the sequence of modules leading to this is | |
51 * wav,fbm). | |
52 * An additional route displays excitation patterns, which are basically | |
53 * spectra, (for example, genepn is like gennap, but viewed with the frequency | |
54 * axis as the abscissa. Similarly, gensas is like genbmm). | |
55 * | |
56 * Process Module Auditory Speech Excitation | |
57 * ---------------------------- ------ -------- ------- ---------- | |
58 * Input wave genwav | |
59 * Filterbank genfbm genbmm | |
60 * Rectifier genfbr | |
61 * Compressor genfbc gensgm genasa | |
62 * LP filter genfbl | |
63 * Adaptive threshold genfbt gennap | |
64 * Integration and downsampling genfbd gencgm genepn | |
65 * Triggered integration gensai gensai | |
66 * Integration and downsampling gensas gensas | |
67 * | |
68 * In addition, there is a spiral mapping of the auditory image, genspl, | |
69 * which is a spiral version of gensai. | |
70 * | |
71 * Note that on the speech route, gensgm is identical to gencgm but with | |
72 * enable_at=off. | |
73 * Originally, gensgm and gencgm were simply aliases for the genfbd module, | |
74 * which were to have distinct parameters using distinct options files. | |
75 * | |
76 ****************************************************************************/ | |
77 | |
78 | |
79 /******* [fbm] [bmm] [fcp,fcr] stage: "auditory filter output" ************/ | |
80 | |
81 static Option fbmopts[] = { | |
82 | |
83 { "channels_afb", chansdflt, &chansstr, "Number of channels in filter", InOutOption}, | |
84 { "mincf_afb", mindflt, &minstr, "Minimum center frequency (Hz)", InOutOption}, | |
85 { "maxcf_afb", maxdflt, &maxstr, "Maximum center frequency (Hz)", InOutOption}, | |
86 { "dencf_afb", dendflt, &denstr, "Filter density (filters/critical band)", InOutOption}, | |
87 { "interp_afb", interpdflt, &interpstr, "Levels of interpolation to apply", OutputOption}, | |
88 { "interp_afb", interpdflt, &interpstr, "Levels of interpolation to apply", SilentOption}, | |
89 { "bwmin_afb", limitdflt, &limitstr, "Minimum filter bandwith", InOutOption}, | |
90 { "quality_afb", qualdflt, &qualstr, "Ultimate qualtity factor of filters", InOutOption}, | |
91 {"audiogram_afb", audiodflt, &audiostr, "Audiogram equalisation parameter\n", InOutOption}, | |
92 | |
93 { "float_gtf", floatdflt, &floatstr, "Floating point filter calculations", OutputOption}, | |
94 { "float_gtf", floatdflt, &floatstr, "Floating point filter calculations", SilentOption}, | |
95 { "gain_gtf", gaindflt, &gainstr, "Filter output amplification", InOutOption}, | |
96 { "phase_gtf", phasedflt, &phasestr, "Phase compensation option", InOutOption}, | |
97 { "order_gtf", orderdflt, &orderstr, "Filter order\n", InOutOption}, | |
98 | |
99 ( char * ) 0 } ; | |
100 | |
101 /************** [fbr] stage: "rectified filter output" ******************/ | |
102 | |
103 static Option fbropts[] = { | |
104 | |
105 { "rectify", rectdflt, &rectstr, "Rectify filter output", InOutOption}, | |
106 | |
107 ( char * ) 0 } ; | |
108 | |
109 /*********** [fbc] [fec] stage: "compressed filter output" **************/ | |
110 | |
111 static Option fbcopts[] = { | |
112 | |
113 { "compress", logdflt, &logstr, "Apply log compression", InOutOption}, | |
114 { "compensate", compdflt, &compstr, "Cochlea output compressor\n", InputOption}, | |
115 | |
116 ( char * ) 0 } ; | |
117 | |
118 /*********** [fbu] [feu] stage: "uncompressed filter output" **************/ | |
119 | |
120 static Option fbuopts[] = { | |
121 | |
122 { "power", powerdflt, &powerstr, "Power of Compression", SilentOption}, | |
123 | |
124 ( char * ) 0 } ; | |
125 | |
126 /*********** [fbs] [fes] stage: "saturated filter output" **************/ | |
127 | |
128 static Option fbsopts[] = { | |
129 | |
130 { "saturate", satdflt, &satstr, "Introduce Saturation of non-linearity\n", SilentOption}, | |
131 | |
132 ( char * ) 0 } ; | |
133 | |
134 /*********** [fbl] [fel] stage: "low-pass filtered filter output ***********/ | |
135 | |
136 static Option fblopts[] = { | |
137 | |
138 { "meddis", meddisdflt, &meddisstr, "Enables Meddis haircell model\n", OutputOption}, | |
139 { "meddis", meddisdflt, &meddisstr, "Enables Meddis haircell model\n", SilentOption}, | |
140 | |
141 { "igain_lpf", ligaindflt, &ligainstr, "Gain of integration stage\n", OutputOption}, | |
142 { "igain_lpf", ligaindflt, &ligainstr, "Gain of integration stage\n", SilentOption}, | |
143 { "vloss_lpf", lvlossdflt, &lvlossstr, "Rest level for loss", OutputOption}, | |
144 { "vloss_lpf", lvlossdflt, &lvlossstr, "Rest level for loss", SilentOption}, | |
145 { "loss_lpf", llossdflt, &llossstr, "Loss time constant", OutputOption}, | |
146 { "loss_lpf", llossdflt, &llossstr, "Loss time constant", SilentOption}, | |
147 { "tdown_lpf", ldowndflt, &ldownstr, "Downward time constant in ms", OutputOption}, | |
148 { "tdown_lpf", ldowndflt, &ldownstr, "Downward time constant in ms", SilentOption}, | |
149 { "tup_lpf", lupdflt, &lupstr, "Upward time constant in ms", SilentOption}, | |
150 { "stages_lpf", lstagedflt, &lstagestr, "Stages of integration\n", SilentOption}, | |
151 | |
152 ( char * ) 0 } ; | |
153 | |
154 /*********** [nap,fbt] [fet] stage: "neural activity pattern" **************/ | |
155 | |
156 static Option fbtopts[] = { | |
157 | |
158 { "enable_at", stxdflt, &stxstr, "Enable adaptive thresholding module", InOutOption}, | |
159 { "trise_at", risedflt, &risestr, "Threshold adaptation rate (upwards)", InOutOption}, | |
160 {"t1recovery_at", rapiddflt, &rapidstr, "Initial recovery rate relative to filter", InOutOption}, | |
161 {"t2recovery_at", fastdflt, &faststr, "Secondary recovery rate relative to filter", InOutOption}, | |
162 { "propt2t1_at", propdflt, &propstr, "Relative height of secondary adaptation", InOutOption}, | |
163 { "frecovery_at", latdflt, &latstr, "Recovery rate across frequency", InOutOption}, | |
164 { "reclimit_at", vdraindflt, &vdrainstr, "Limitation on recovery level\n", InOutOption}, | |
165 | |
166 { "times_at", timesdflt, ×str, "Oversampling of calculation of threshold", OutputOption}, | |
167 { "times_at", timesdflt, ×str, "Oversampling of calculation of threshold", SilentOption}, | |
168 | |
169 ( char * ) 0 } ; | |
170 | |
171 /*********** [fba] [fea] stage: "adapted transduced filter output" *********/ | |
172 | |
173 static Option fbaopts[] = { | |
174 | |
175 { "mmincf_mfb", minmfdflt, &minmfstr, "Minimum modulation frequency (Hz)", InOutOption}, | |
176 { "mmaxcf_mfb", maxmfdflt, &maxmfstr, "Maximum modulation frequency (Hz)", InOutOption}, | |
177 { "mdencf_mfb", denmfdflt, &denmfstr, "Modulation filter density ", InOutOption}, | |
178 { "stepcf_mfb", stepmfdflt, &stepmfstr, "Step between images\n", InOutOption}, | |
179 | |
180 { "tadaptation", adapdflt, &adapstr, "Time constant of long term adaptation\n", SilentOption}, | |
181 | |
182 ( char * ) 0 } ; | |
183 | |
184 /*********** [fbh] [feh] stage: "hard limited filter output" **************/ | |
185 | |
186 static Option fbhopts[] = { | |
187 | |
188 { "hard_limit", harddflt, &hardstr, "Hardlimit firing rate before integration\n",OutputOption}, | |
189 { "hard_limit", harddflt, &hardstr, "Hardlimit firing rate before integration\n",SilentOption}, | |
190 | |
191 ( char * ) 0 } ; | |
192 | |
193 /***** [sgm,cgm,fbd,fbi] [fed,fei] stage: "integrated filter output" *******/ | |
194 | |
195 static Option fbiopts[] = { | |
196 | |
197 { "igain_idt", igaindflt, &igainstr, "Gain of integration stage\n", OutputOption}, | |
198 { "igain_idt", igaindflt, &igainstr, "Gain of integration stage\n", SilentOption}, | |
199 | |
200 { "vloss_idt", vlossdflt, &vlossstr, "Rest level for loss", OutputOption}, | |
201 { "vloss_idt", vlossdflt, &vlossstr, "Rest level for loss", SilentOption}, | |
202 { "loss_idt", lossdflt, &lossstr, "Loss time constant", OutputOption}, | |
203 { "loss_idt", lossdflt, &lossstr, "Loss time constant", SilentOption}, | |
204 { "tdown_idt", downdflt, &downstr, "Downward time constant in ms", OutputOption}, | |
205 { "tdown_idt", downdflt, &downstr, "Downward time constant in ms", SilentOption}, | |
206 { "tup_idt", updflt, &upstr, "Low-pass filter time constant in ms", InOutOption}, | |
207 { "stages_idt", stagedflt, &stagestr, "Stages of integration\n", InOutOption}, | |
208 | |
209 ( char * ) 0 } ; | |
210 | |
211 /*********** [spl,sai] [sie] stage: "stabilized auditory image" ************/ | |
212 | |
213 static Option saiopts[] = { | |
214 | |
215 { "napdecay_ai", cgmdflt, &cgmstr, "Neural activity decay time constant", InOutOption}, | |
216 { "ttdecay_ai", ttdflt, &ttstr, "Trigger threshold decay time constant", InOutOption}, | |
217 { "utrate_ai", utlimdflt, &utlimstr, "Upper trigger rate limit (Hz)", InOutOption}, | |
218 { "ltrate_ai", ltlimdflt, <limstr, "Lower trigger rate limit (Hz)", InOutOption}, | |
219 { "decay_ai", decaydflt, &decaystr, "Auditory image decay time constant\n", InOutOption}, | |
220 | |
221 ( char * ) 0 } ; | |
222 | |
223 /*********** [sas] [sse] stage: "stabilized auditory spectrogram" **********/ | |
224 | |
225 static Option sasopts[] = { | |
226 | |
227 { "ulim_sas", ulimdflt, &ulimstr, "Upper integration limit for auditory image", InOutOption}, | |
228 { "llim_sas", llimdflt, &llimstr, "Lower integration limit for auditory image\n", InOutOption}, | |
229 | |
230 ( char * ) 0 } ; | |
231 |