Mercurial > hg > aimc
diff carfac/agc_params.cc @ 611:0fbaf443ec82
Carfac C++ revision 3, indluding more style improvements. The output structs are now classes again, and have separate storage methods for each output structure along with flags in the Run and RunSegment methods to allow for only storing NAPs if desired.
author | alexbrandmeyer |
---|---|
date | Fri, 17 May 2013 19:52:45 +0000 |
parents | 01986636257a |
children | 3786bc6e5155 |
line wrap: on
line diff
--- a/carfac/agc_params.cc Thu May 16 17:33:23 2013 +0000 +++ b/carfac/agc_params.cc Fri May 17 19:52:45 2013 +0000 @@ -27,27 +27,29 @@ AGCParams::AGCParams() { n_stages_ = 4; agc_stage_gain_ = 2; - FPType agc1f = 1.0; - FPType agc2f = 1.65; + FPType agc2_factor = 1.65; + std::vector<FPType> stage_values = {1.0, 1.4, 2.0, 2.8}; time_constants_.resize(n_stages_); - time_constants_ << 1 * 0.002, 4 * 0.002, 16 * 0.002, 64 * 0.002; + agc1_scales_.resize(n_stages_); + agc2_scales_.resize(n_stages_); + for (int i = 0; i < n_stages_; ++i) { + time_constants_(i) = pow(4, i) * 0.002; + agc1_scales_(i) = stage_values.at(i); + agc2_scales_(i) = stage_values.at(i) * agc2_factor; + } decimation_ = {8, 2, 2, 2}; - agc1_scales_.resize(n_stages_); - agc1_scales_ << 1.0 * agc1f, 1.4 * agc1f, 2.0 * agc1f, 2.8 * agc1f; - agc2_scales_.resize(n_stages_); - agc2_scales_ << 1.0 * agc2f, 1.4 * agc2f, 2.0 * agc2f, 2.8 * agc2f; agc_mix_coeff_ = 0.5; } // The overloaded constructor allows for use of different AGC parameters. -AGCParams::AGCParams(int ns, FPType agcsg, FPType agcmc, FloatArray tc, - std::vector<int> dec, FloatArray agc1sc, - FloatArray agc2sc) { - n_stages_ = ns; - agc_stage_gain_ = agcsg; - agc_mix_coeff_ = agcmc; - time_constants_ = tc; - decimation_ = dec; - agc1_scales_ = agc1sc; - agc2_scales_ = agc2sc; +AGCParams::AGCParams(int n_stages, FPType agc_stage_gain, FPType agc_mix_coeff, + FloatArray time_constants, std::vector<int> decimation, + FloatArray agc1_scales, FloatArray agc2_scales) { + n_stages_ = n_stages; + agc_stage_gain_ = agc_stage_gain; + agc_mix_coeff_ = agc_mix_coeff; + time_constants_ = time_constants; + decimation_ = decimation; + agc1_scales_ = agc1_scales; + agc2_scales_ = agc2_scales; } \ No newline at end of file