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