annotate carfac/car_params.h @ 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.h
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 #ifndef CARFAC_Open_Source_C__Library_CARParams_h
alexbrandmeyer@609 24 #define CARFAC_Open_Source_C__Library_CARParams_h
alexbrandmeyer@609 25
alexbrandmeyer@609 26 #include "carfac_common.h"
alexbrandmeyer@609 27
alexbrandmeyer@610 28 struct CARParams {
alexbrandmeyer@610 29 CARParams(); // The constructor initializes using default parameter values.
alexbrandmeyer@610 30 CARParams(FPType vs, FPType voff, FPType min_z, FPType max_z, FPType fpt,
alexbrandmeyer@610 31 FPType zr, FPType hfdc, FPType erbps, FPType mph, FPType erbbf,
alexbrandmeyer@610 32 FPType erbq); // This is a method to set non-default params.
alexbrandmeyer@610 33 FPType velocity_scale_; // This is used for the velocity nonlinearity.
alexbrandmeyer@610 34 FPType v_offset_; // The offset gives us quadratic part.
alexbrandmeyer@610 35 FPType min_zeta_; // This is the minimum damping factor in mid-freq channels.
alexbrandmeyer@610 36 FPType max_zeta_; // This is the maximum damping factor in mid-freq channels.
alexbrandmeyer@609 37 FPType first_pole_theta_;
alexbrandmeyer@610 38 FPType zero_ratio_; // This is how far zero is above the pole.
alexbrandmeyer@610 39 FPType high_f_damping_compression_; // A range from 0 to 1 to compress theta.
alexbrandmeyer@610 40 FPType erb_per_step_; // Here we assume G&M's ERB formula.
alexbrandmeyer@609 41 FPType min_pole_hz_;
alexbrandmeyer@610 42 FPType erb_break_freq_; // This is the Greenwood map's break frequency.
alexbrandmeyer@610 43 FPType erb_q_; // This represents Glassberg and Moore's high-cf ratio.
alexbrandmeyer@609 44 };
alexbrandmeyer@609 45
alexbrandmeyer@610 46 #endif