dicklyon@530
|
1 % Copyright 2012, Google, Inc.
|
dicklyon@530
|
2 % Author Richard F. Lyon
|
dicklyon@530
|
3 %
|
dicklyon@530
|
4 % This Matlab file is part of an implementation of Lyon's cochlear model:
|
dicklyon@530
|
5 % "Cascade of Asymmetric Resonators with Fast-Acting Compression"
|
dicklyon@530
|
6 % to supplement Lyon's upcoming book "Human and Machine Hearing"
|
dicklyon@530
|
7 %
|
dicklyon@530
|
8 % Licensed under the Apache License, Version 2.0 (the "License");
|
dicklyon@530
|
9 % you may not use this file except in compliance with the License.
|
dicklyon@530
|
10 % You may obtain a copy of the License at
|
dicklyon@530
|
11 %
|
dicklyon@530
|
12 % http://www.apache.org/licenses/LICENSE-2.0
|
dicklyon@530
|
13 %
|
dicklyon@530
|
14 % Unless required by applicable law or agreed to in writing, software
|
dicklyon@530
|
15 % distributed under the License is distributed on an "AS IS" BASIS,
|
dicklyon@530
|
16 % WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
dicklyon@530
|
17 % See the License for the specific language governing permissions and
|
dicklyon@530
|
18 % limitations under the License.
|
dicklyon@530
|
19
|
dicklyon@530
|
20 function CF = CARFAC_Close_AGC_Loop(CF)
|
dicklyon@530
|
21 % function CF = CARFAC_Close_AGC_Loop(CF)
|
dicklyon@530
|
22
|
dicklyon@530
|
23 % fastest decimated rate determines interp needed:
|
dicklyon@530
|
24 decim1 = CF.AGC_params.decimation(1);
|
dicklyon@530
|
25
|
dicklyon@534
|
26 for ear = 1:CF.n_ears
|
dicklyon@534
|
27 extra_damping = CF.AGC_state(ear).AGC_memory(:, 1); % stage 1 result
|
dicklyon@530
|
28 % Update the target stage gain for the new damping:
|
dicklyon@534
|
29 new_g = CARFAC_Stage_g(CF.CAR_coeffs, extra_damping);
|
dicklyon@530
|
30 % set the deltas needed to get to the new damping:
|
dicklyon@534
|
31 CF.CAR_state(ear).dzB_memory = ...
|
dicklyon@534
|
32 (extra_damping - CF.CAR_state(ear).zB_memory) / decim1;
|
dicklyon@534
|
33 CF.CAR_state(ear).dg_memory = ...
|
dicklyon@534
|
34 (new_g - CF.CAR_state(ear).g_memory) / decim1;
|
dicklyon@530
|
35 end
|