Mercurial > hg > aimc
comparison src/CAR.cpp @ 488:af4bc33b2e1c carfac_cpp
(none)
author | Ulf.Hammarqvist@gmail.com |
---|---|
date | Sat, 07 Apr 2012 09:41:39 +0000 |
parents | d56da20c09ae |
children | 20de0b60b694 |
comparison
equal
deleted
inserted
replaced
487:d56da20c09ae | 488:af4bc33b2e1c |
---|---|
6 CAR_coefficients::CAR_coefficients(CAR_parameters* car_params, float fs, | 6 CAR_coefficients::CAR_coefficients(CAR_parameters* car_params, float fs, |
7 FloatArray pole_freqs){ | 7 FloatArray pole_freqs){ |
8 | 8 |
9 float f = pow(car_params->zero_ratio_, 2) + 1; | 9 float f = pow(car_params->zero_ratio_, 2) + 1; |
10 | 10 |
11 // dirty FloatArray initialisation. Redo this later | 11 // TODO: dirty FloatArray initialisation. Redo this later |
12 r1_coeffs_= pole_freqs; | 12 r1_coeffs_= pole_freqs; |
13 a0_coeffs_= pole_freqs; | 13 a0_coeffs_= pole_freqs; |
14 c0_coeffs_= pole_freqs; | 14 c0_coeffs_= pole_freqs; |
15 h_coeffs_= pole_freqs; | 15 h_coeffs_= pole_freqs; |
16 g0_coeffs_= pole_freqs; | 16 g0_coeffs_= pole_freqs; |
20 | 20 |
21 float min_zeta_mod; | 21 float min_zeta_mod; |
22 float x; | 22 float x; |
23 float ff = car_params->high_f_damping_compression_; | 23 float ff = car_params->high_f_damping_compression_; |
24 | 24 |
25 // temp loop until we get eigen in | 25 // TODO: temp loop until we get eigen in (or we just leave it like this) |
26 for(float i=0; i<theta.size(); i++){ | 26 for(float i=0; i<pole_freqs.size(); i++){ |
27 theta[i] *= (2*kPi*fs); // scalar mult. | 27 theta[i] *= (2*kPi*fs); // scalar mult. |
28 c0_coeffs_[i] = sin(theta[i]); | 28 c0_coeffs_[i] = sin(theta[i]); |
29 a0_coeffs_[i] = cos(theta[i]); | 29 a0_coeffs_[i] = cos(theta[i]); |
30 | 30 |
31 x = theta[i]/kPi; | 31 x = theta[i]/kPi; |
32 zr_coeffs_[i] = kPi * (x - ff * x*x*x); | 32 zr_coeffs_[i] = kPi * (x - ff * x*x*x); |
33 | 33 |
34 min_zeta_mod = (car_params->min_zeta_ + 0.25 * | 34 min_zeta_mod = (car_params->min_zeta_ + 0.25 * |
35 (CARFAC::ERB_Hz(pole_freqs[i])/pole_freqs[i]-car_params->min_zeta_)); | 35 (CARFAC::ERB_Hz(pole_freqs[i])/pole_freqs[i]-car_params->min_zeta_)); |
36 | |
37 r1_coeffs_[i] = 1-zr_coeffs_[i]*min_zeta_mod; | 36 r1_coeffs_[i] = 1-zr_coeffs_[i]*min_zeta_mod; |
38 | 37 |
39 h_coeffs_[i] = c0_coeffs_[i] * f; | 38 h_coeffs_[i] = c0_coeffs_[i] * f; |
39 | |
40 g0_coeffs_[i] = 0; // TODO: matlab design a bit hacky - think for bit | |
40 } | 41 } |
41 | |
42 // g0_coeffs_[i] = ... TODO: restructure this! | |
43 | 42 |
44 } | 43 } |
45 | 44 |
46 CAR_coefficients::~CAR_coefficients(){ | 45 CAR_coefficients::~CAR_coefficients(){ |
47 // TODO Auto-generated destructor stub | 46 // TODO Auto-generated destructor stub |