Mercurial > hg > aimc
comparison branches/carfac_cpp/src/CARFAC.cpp @ 586:f3dde307f4b8
some refactoring
author | Ulf.Hammarqvist@gmail.com |
---|---|
date | Thu, 11 Oct 2012 20:55:03 +0000 |
parents | 9c4c3675c3f8 |
children | d59c0d65624b |
comparison
equal
deleted
inserted
replaced
585:b8a961149499 | 586:f3dde307f4b8 |
---|---|
6 #include "AGC.h" | 6 #include "AGC.h" |
7 #include "Ear.h" | 7 #include "Ear.h" |
8 | 8 |
9 #include "CARFAC_common.h" | 9 #include "CARFAC_common.h" |
10 | 10 |
11 CARFAC::CARFAC(int fs = kDefaultFs, | 11 CARFAC::CARFAC(int fs, |
12 CAR_parameters* car_params = new CAR_parameters(), | 12 CAR_parameters* car_params, |
13 IHC_parameters* ihc_params = new IHC_parameters(), | 13 IHC_parameters* ihc_params, |
14 AGC_parameters* agc_params = new AGC_parameters(), | 14 AGC_parameters* agc_params, |
15 int n_ears = 1){ | 15 int n_ears){ |
16 | 16 |
17 fs_ = fs; | 17 fs_ = fs; |
18 | 18 |
19 float pole_hz = car_params->first_pole_theta_* fs / (2*kPi); | 19 float pole_hz = car_params->first_pole_theta_* fs / (2*kPi); |
20 while (pole_hz > car_params->min_pole_hz_){ | 20 while (pole_hz > car_params->min_pole_hz_){ |
25 } | 25 } |
26 n_ch_ = pole_freqs_.size(); | 26 n_ch_ = pole_freqs_.size(); |
27 max_channels_per_octave_ = log(2) / log(pole_freqs_[0]/pole_freqs_[1]); | 27 max_channels_per_octave_ = log(2) / log(pole_freqs_[0]/pole_freqs_[1]); |
28 | 28 |
29 n_ears_ = n_ears; | 29 n_ears_ = n_ears; |
30 Ear* ear = new Ear(car_params, ihc_params, agc_params, pole_freqs_, n_ch_, fs); | 30 Ear ear = Ear(car_params, ihc_params, agc_params, pole_freqs_, n_ch_, fs); |
31 ears_.assign(n_ears_, *ear); | 31 ears_.assign(n_ears_, ear); |
32 } | 32 } |
33 | 33 |
34 float CARFAC::ERB_Hz(float cf_hz, float erb_break_freq, float erb_q){ | 34 float CARFAC::ERB_Hz(float cf_hz, float erb_break_freq, float erb_q){ |
35 return (erb_break_freq + cf_hz) / erb_q; | 35 return (erb_break_freq + cf_hz) / erb_q; |
36 } | 36 } |
37 | |
38 CARFAC::~CARFAC() { | |
39 //TODO: clean up | |
40 } |