⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gaus_07.cc

📁 这是一个从音频信号里提取特征参量的程序
💻 CC
字号:
// file: $isip/class/stat/GaussianModel/gaus_07.cc// version: $Id: gaus_07.cc,v 1.7 2001/12/26 22:32:34 alphonso Exp $//// isip include files//#include "GaussianModel.h"// method: setMode//// arguments://  MODE arg: (input) mode to set//// return: a boolean value indicating status//// this method sets the computation mode and sets the initialization flag.//boolean GaussianModel::setMode(MODE arg_a) {  // mode: PRECOMPUTE and prior mode is NONE  //  we must initialize  //  if ((arg_a == PRECOMPUTE) && (mode_d == NONE)) {    mode_d = PRECOMPUTE;    is_valid_d = false;  }  // mode: PRECOMPUTE and prior mode is PRECOMPUTE  //  or NONE and prior mode is NONE  //  leave the state unchanged. we still might need to initialize  //  if is_valid_d was false.  //  // mode: NONE and prior mode is PRECOMPUTE  //  we need to re-inverse the covariance matrix  //   else if ((arg_a == NONE) && (mode_d == PRECOMPUTE)) {    mode_d = arg_a;    if (is_valid_d) {      covariance_d.inverse();    }  }  // exit gracefully  //  return true;}// method: init//// arguments: none//// return: a boolean value indicating status//// this precomputes the scale factor and the inverse of the covariance matrix// so that these computations need not be done for every gaussian evaluation.// after a call to this function://    scale_d = N/2 * log(2 * pi) + 1/2 * log(det(Cov))//    covariance_d   = inverse(Cov)//boolean GaussianModel::init() {  // if we are not in the precompute mode, we don't need to do anything.  //  if (mode_d != PRECOMPUTE) {    is_valid_d = true;    return true;  }  // if the data are valid, we also don't need to do anything.  //  else if (is_valid_d) {    return true;  }  // check the arguments  //  long len_mean = mean_d.length();  long len_cov = covariance_d.getNumRows();  if ((len_mean != len_cov) || (len_mean <= 0) || (len_cov <= 0)) {    is_valid_d = false;    return false;  }         // compute the scale factor from its components.  //  double det = Integral::log(covariance_d.determinant());  double tmp = Integral::log(Integral::TWO_PI);    scale_d = (double)0.5 * ((double)len_mean * tmp + det);    // pre-compute the inverse of the covariance matrix  //  covariance_d.inverse();  // exit gracefully  //  return (is_valid_d = true);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -