annotate carfac/car_params.cc @ 610:01986636257a

Second check-in of Alex Brandmeyer's C++ implementation of CARFAC. Addressed style issues and completed implementation of remaining functions. Still needs proper testing of the output stages against the MATLAB version, and runtime functions need improvements in efficiency.
author alexbrandmeyer
date Thu, 16 May 2013 17:33:23 +0000
parents aefe2ca0674f
children 0fbaf443ec82
rev   line source
alexbrandmeyer@609 1 //
alexbrandmeyer@609 2 // car_params.cc
alexbrandmeyer@609 3 // CARFAC Open Source C++ Library
alexbrandmeyer@609 4 //
alexbrandmeyer@609 5 // Created by Alex Brandmeyer on 5/10/13.
alexbrandmeyer@609 6 //
alexbrandmeyer@609 7 // This C++ file is part of an implementation of Lyon's cochlear model:
alexbrandmeyer@609 8 // "Cascade of Asymmetric Resonators with Fast-Acting Compression"
alexbrandmeyer@609 9 // to supplement Lyon's upcoming book "Human and Machine Hearing"
alexbrandmeyer@609 10 //
alexbrandmeyer@609 11 // Licensed under the Apache License, Version 2.0 (the "License");
alexbrandmeyer@609 12 // you may not use this file except in compliance with the License.
alexbrandmeyer@609 13 // You may obtain a copy of the License at
alexbrandmeyer@609 14 //
alexbrandmeyer@609 15 // http://www.apache.org/licenses/LICENSE-2.0
alexbrandmeyer@609 16 //
alexbrandmeyer@609 17 // Unless required by applicable law or agreed to in writing, software
alexbrandmeyer@609 18 // distributed under the License is distributed on an "AS IS" BASIS,
alexbrandmeyer@609 19 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
alexbrandmeyer@609 20 // See the License for the specific language governing permissions and
alexbrandmeyer@609 21 // limitations under the License.
alexbrandmeyer@609 22
alexbrandmeyer@609 23 #include "car_params.h"
alexbrandmeyer@609 24
alexbrandmeyer@610 25 CARParams::CARParams() {
alexbrandmeyer@610 26 velocity_scale_ = 0.1;
alexbrandmeyer@610 27 v_offset_ = 0.04;
alexbrandmeyer@610 28 min_zeta_ = 0.1;
alexbrandmeyer@610 29 max_zeta_ = 0.35;
alexbrandmeyer@609 30 first_pole_theta_ = 0.85 * PI;
alexbrandmeyer@610 31 zero_ratio_ = 1.4142;
alexbrandmeyer@610 32 high_f_damping_compression_ = 0.5;
alexbrandmeyer@610 33 erb_per_step_ = 0.5;
alexbrandmeyer@609 34 min_pole_hz_ = 30;
alexbrandmeyer@610 35 erb_break_freq_ = 165.3;
alexbrandmeyer@609 36 erb_q_ = 1000/(24.7*4.37);
alexbrandmeyer@609 37 };
alexbrandmeyer@609 38
alexbrandmeyer@610 39 CARParams::CARParams(FPType vs, FPType voff, FPType min_z, FPType max_z,
alexbrandmeyer@609 40 FPType fpt, FPType zr, FPType hfdc, FPType erbps,
alexbrandmeyer@609 41 FPType mph, FPType erbbf, FPType erbq) {
alexbrandmeyer@609 42 velocity_scale_ = vs;
alexbrandmeyer@609 43 v_offset_ = voff;
alexbrandmeyer@609 44 min_zeta_ = min_z;
alexbrandmeyer@609 45 max_zeta_ = max_z;
alexbrandmeyer@609 46 first_pole_theta_ = fpt;
alexbrandmeyer@609 47 zero_ratio_ = zr;
alexbrandmeyer@609 48 high_f_damping_compression_ = hfdc;
alexbrandmeyer@609 49 erb_per_step_ = erbps;
alexbrandmeyer@609 50 min_pole_hz_ = mph;
alexbrandmeyer@609 51 erb_break_freq_ = erbbf;
alexbrandmeyer@609 52 erb_q_ = erbq;
alexbrandmeyer@609 53 };