comparison src/CAR.cpp @ 494:24828350536a carfac_cpp

Fixed the ERB_Hz default parameter bug also in c++ Introduced FloatMatrix to build on the concept of FloatArray typedef
author Ulf.Hammarqvist@gmail.com
date Sun, 08 Apr 2012 19:40:13 +0000
parents 20de0b60b694
children 83cd5bbf2a3e
comparison
equal deleted inserted replaced
493:3029dec89440 494:24828350536a
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 // TODO: dirty FloatArray initialisation. Redo this later 11 // TODO: dirty FloatArray initialization.
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;
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 * (CARFAC::ERB_Hz(
35 (CARFAC::ERB_Hz(pole_freqs[i])/pole_freqs[i]-car_params->min_zeta_)); 35 pole_freqs[i], car_params->erb_break_freq_,
36 car_params->erb_q_) / pole_freqs[i]
37 - car_params->min_zeta_));
38
36 r1_coeffs_[i] = 1-zr_coeffs_[i]*min_zeta_mod; 39 r1_coeffs_[i] = 1-zr_coeffs_[i]*min_zeta_mod;
37 40
38 h_coeffs_[i] = c0_coeffs_[i] * f; 41 h_coeffs_[i] = c0_coeffs_[i] * f;
39 42
40 //TODO: g0_coeffs_ calculated here for now. Let's talk about this, need 43 //TODO: g0_coeffs_ calculated here for now. Let's talk about this, need