changeset 547:cffa9e98eb45

stubbed CAR_coefficients constructor
author Ulf.Hammarqvist@gmail.com
date Sat, 31 Mar 2012 18:15:17 +0000
parents e5ae2ed4249c
children ff12d0432d9c
files branches/carfac_cpp/src/CAR.cpp branches/carfac_cpp/src/CAR.h branches/carfac_cpp/src/CARFAC.cpp branches/carfac_cpp/src/CARFAC.h
diffstat 4 files changed, 30 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/branches/carfac_cpp/src/CAR.cpp	Sat Mar 31 17:36:22 2012 +0000
+++ b/branches/carfac_cpp/src/CAR.cpp	Sat Mar 31 18:15:17 2012 +0000
@@ -1,9 +1,27 @@
 #include "CAR.h"
 #include "CARFAC_common.h"
+#include <cmath>
 
-CAR_coefficients::CAR_coefficients(CAR_parameters* CAR_params, float fs,
+CAR_coefficients::CAR_coefficients(CAR_parameters* car_params, float fs,
                                    FloatArray pole_freqs){
-  // TODO stuff goes here
+
+  // initialisation of the FloatArray coefficients, if needed.
+
+  float f = pow(car_params->zero_ratio_, 2) + 1;
+
+  FloatArray theta = pole_freqs;
+  FloatArray c0 = pole_freqs;
+  FloatArray a0 = pole_freqs;
+
+  // temp until we get eigen in
+  for(float i=0; i<theta.size(); i++){
+      theta[i] *= (2*kPi*fs); // scalar mult.
+      c0[i] = sin(theta[i]);
+      a0[i] = cos(theta[i]);
+  }
+
+  // etc
+
 }
 
 CAR_coefficients::~CAR_coefficients(){
--- a/branches/carfac_cpp/src/CAR.h	Sat Mar 31 17:36:22 2012 +0000
+++ b/branches/carfac_cpp/src/CAR.h	Sat Mar 31 18:15:17 2012 +0000
@@ -40,6 +40,13 @@
 public:
   CAR_coefficients(CAR_parameters*, float, FloatArray);
   virtual ~CAR_coefficients();
+
+  FloatArray r1_coeffs;
+  FloatArray a0_coeffs;
+  FloatArray c0_coeffs;
+  FloatArray h_coeffs;
+  FloatArray g0_coeffs;
+
 private:
   CAR_coefficients();
 };
--- a/branches/carfac_cpp/src/CARFAC.cpp	Sat Mar 31 17:36:22 2012 +0000
+++ b/branches/carfac_cpp/src/CARFAC.cpp	Sat Mar 31 18:15:17 2012 +0000
@@ -21,11 +21,11 @@
 
   float pole_hz = car_params->first_pole_theta_* fs / (2*kPi);
   while (pole_hz > car_params->min_pole_hz_){
-      pole_freqs_.push_back(pole_hz); // STL specific
+      pole_freqs_.push_back(pole_hz); // TODO: STL specific
       pole_hz = pole_hz - car_params->erb_per_step_ *
                 ERB_Hz(pole_hz, erb_break_freq, erb_q);
   }
-  n_ch_ = pole_freqs_.size(); // STL specific
+  n_ch_ = pole_freqs_.size();
 
   max_channels_per_octave_ = log(2) / log(pole_freqs_[0]/pole_freqs_[1]);
 
--- a/branches/carfac_cpp/src/CARFAC.h	Sat Mar 31 17:36:22 2012 +0000
+++ b/branches/carfac_cpp/src/CARFAC.h	Sat Mar 31 18:15:17 2012 +0000
@@ -13,7 +13,7 @@
 public:
   CARFAC(int, CAR_parameters*, IHC_parameters*, AGC_parameters*, float, float);
   virtual ~CARFAC();
-  static float ERB_Hz(float,float,float);
+  static float ERB_Hz(float, float, float);
 
   float fs_;
   float max_channels_per_octave_;