Mercurial > hg > aimc
annotate trunk/C++/Ear.H @ 706:f8e90b5d85fd tip
Delete CARFAC code from this repository.
It has been moved to https://github.com/google/carfac
Please email me with your github username to get access.
I've also created a new mailing list to discuss CARFAC development:
https://groups.google.com/forum/#!forum/carfac-dev
author | ronw@google.com |
---|---|
date | Thu, 18 Jul 2013 20:56:51 +0000 |
parents | 33c6f1921171 |
children |
rev | line source |
---|---|
flatmax@674 | 1 |
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 EAR_H_ |
flatmax@597 | 20 #define EAR_H_ |
flatmax@597 | 21 |
flatmax@597 | 22 #include "CAR.H" |
flatmax@597 | 23 #include "IHC.H" |
flatmax@597 | 24 #include "AGC.H" |
flatmax@597 | 25 |
flatmax@597 | 26 /** |
flatmax@597 | 27 \author {Matt Flax <flatmax\@>} |
flatmax@597 | 28 \date 2013.02.08 |
flatmax@597 | 29 |
flatmax@597 | 30 Class which encapsulates an ear, using the CAR, IHC and AGC classes |
flatmax@597 | 31 */ |
flatmax@597 | 32 class Ear { |
flatmax@598 | 33 FP_TYPE fs; ///< The sample rate |
flatmax@598 | 34 FP_TYPE max_channels_per_octave; ///< How many channels in each octave |
flatmax@598 | 35 int n_ch; ///< The number of channels (in the ear) |
flatmax@597 | 36 |
flatmax@598 | 37 CAR car; ///< The cascade of asymmetric resontaors for this ear |
flatmax@598 | 38 IHC ihc; ///< The inner hair cell for this ear |
flatmax@598 | 39 AGC agc; ///< The automatic gain control for this ear |
flatmax@597 | 40 |
flatmax@597 | 41 public: |
flatmax@598 | 42 /** Constructor specifying the sample rate |
flatmax@598 | 43 \param fs_ The sample rate to use |
flatmax@598 | 44 */ |
flatmax@598 | 45 Ear(FP_TYPE fs_); |
flatmax@598 | 46 |
flatmax@598 | 47 /** Constructor using the DEFAULT_SAMPLERATE as the sample rate |
flatmax@598 | 48 */ |
flatmax@598 | 49 Ear(void); |
flatmax@598 | 50 virtual ~Ear(void); |
flatmax@598 | 51 |
flatmax@598 | 52 /** Estimates the number of filter stages and executes the dsign method for each of CAR, AGC and IHC |
flatmax@598 | 53 */ |
flatmax@598 | 54 void design(void); |
flatmax@597 | 55 }; |
flatmax@597 | 56 |
flatmax@597 | 57 #endif // EAR_H_ |