annotate trunk/C++/CARParam.H @ 598:34dccba19c54

Fixed certain minor documentation bugs. Added the CAR::designFilters and CAR::stageG methods. These methods design the CAR.coeff coefficients. They have been compared to be the same as the matlab coefficients. An Ear is now contructed with a specific FS or, it uses the default. Added the PsychoAcoustics class to do ERB and Hz conversions. Added the EarTest.C main which allows the construction of an Ear class for testing.
author flatmax
date Wed, 20 Feb 2013 22:30:19 +0000
parents 359bcd461dd1
children 33c6f1921171
rev   line source
flatmax@597 1 // Copyright 2013 Matt R. Flax <flatmax\@> All Rights Reserved.
flatmax@598 2 // Author Matt Flax <flatmax@>
flatmax@597 3 //
flatmax@597 4 // This C++ file is part of an implementation of Lyon's cochlear model:
flatmax@597 5 // "Cascade of Asymmetric Resonators with Fast-Acting Compression"
flatmax@597 6 // to supplement Lyon's upcoming book "Human and Machine Hearing"
flatmax@597 7 //
flatmax@597 8 // Licensed under the Apache License, Version 2.0 (the "License");
flatmax@597 9 // you may not use this file except in compliance with the License.
flatmax@597 10 // You may obtain a copy of the License at
flatmax@597 11 //
flatmax@597 12 // http://www.apache.org/licenses/LICENSE-2.0
flatmax@597 13 //
flatmax@597 14 // Unless required by applicable law or agreed to in writing, software
flatmax@597 15 // distributed under the License is distributed on an "AS IS" BASIS,
flatmax@597 16 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
flatmax@597 17 // See the License for the specific language governing permissions and
flatmax@597 18 // limitations under the License.
flatmax@597 19 #ifndef CARPARAMS_H_
flatmax@597 20 #define CARPARAMS_H_
flatmax@597 21
flatmax@597 22 #include "Parameters.H"
flatmax@597 23
flatmax@598 24 class CAR; // required for decleration as a friend
flatmax@598 25 class Ear;
flatmax@598 26
flatmax@597 27 /**
flatmax@597 28 \author {Matt Flax <flatmax\@>}
flatmax@597 29 \date 2013.02.08
flatmax@597 30
flatmax@597 31 Parameters for the Cascaded Auditory Resonators
flatmax@597 32 */
flatmax@597 33 class CARParam : public Parameters {
flatmax@597 34 FP_TYPE velocity_scale; ///< for the velocity nonlinearity
flatmax@597 35 FP_TYPE v_offset; ///< offset gives a quadratic part
flatmax@597 36 FP_TYPE min_zeta; ///< minimum damping factor in mid-freq channels
flatmax@597 37 FP_TYPE max_zeta; ///< maximum damping factor in mid-freq channels
flatmax@597 38 FP_TYPE first_pole_theta; ///< Dick, whats this ?
flatmax@597 39 FP_TYPE zero_ratio; ///< how far zero is above pole
flatmax@597 40 FP_TYPE high_f_damping_compression; ///< 0 to 1 to compress zeta
flatmax@597 41 FP_TYPE ERB_per_step; ///< assume G&M's ERB formula
flatmax@597 42 FP_TYPE min_pole_Hz; ///< Dick, whats this ?
flatmax@597 43 FP_TYPE ERB_break_freq; ///< Greenwood map's break freq.
flatmax@597 44 FP_TYPE ERB_Q; ///< Glasberg and Moore's high-cf ratio
flatmax@597 45
flatmax@597 46 public:
flatmax@597 47
flatmax@597 48 /// Constructor with default parameter values
flatmax@597 49 CARParam(FP_TYPE velocity_scale_=0.1, FP_TYPE v_offset_=0.04, FP_TYPE min_zeta_=0.10, FP_TYPE max_zeta_=0.35,
flatmax@597 50 FP_TYPE first_pole_theta_=0.85*M_PI, FP_TYPE zero_ratio_=sqrt(2.), FP_TYPE high_f_damping_compression_=0.5,
flatmax@597 51 FP_TYPE ERB_per_step_=0.5, FP_TYPE min_pole_Hz_=30., FP_TYPE ERB_break_freq_=165.3,
flatmax@597 52 FP_TYPE ERB_Q_=1000./(24.7*4.37));
flatmax@597 53 virtual ~CARParam(); ///< Destructor
flatmax@598 54
flatmax@598 55 friend class CAR;
flatmax@598 56 friend class Ear;
flatmax@597 57 };
flatmax@597 58
flatmax@597 59 #endif // CARPARAMS_H_