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

📄 enrgy_02.cc

📁 这是一个从音频信号里提取特征参量的程序
💻 CC
📖 第 1 页 / 共 2 页
字号:
  input.assign(L"1, 2, 3, 4");  ans.assign(L"22.9766");  ma.assign(L"1");  ar.assign(L"1, -0.5");  egy0.setAlgorithm(FILTER);  egy0.setImplementation(IDENTITY);  egy0.setFloor(1.0);  egy0.setFilter(ma, ar);  egy0.compute(output, input);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }  // test the scaling modes using a longer signal  //  egy0.setAlgorithm(SUM);  input.assign(L"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,32,32,0,32,-32,16,48,48,16,-48,0,16,32,-32,-16,0,0,16,16,-32,-32,32,0,-16,-48,0,0,-16,0,-32,-48,48,-32,48,16,0,-48,-48,0,48,-32,0,16,0,16,48,48,-48,0,48,0,48,-32,48,16,-48,-16,32,32,-48,48,32,0,-48,-32,-16,48,48,16,32,0,-16,16,0,-32,-48,-48,0,16,0,-32,32,-48,32,0,48,-48,-48,32,32,0,48,48,-48,-48,0,16,-16,32,-16,16,-32,-16,0,32,48,0,0,48,0,0,-16,0,16,16,0,0,0,-32,0,32,16,0,32,-48,16,32,16,32,16,48,0,32,-16,16,-48,0,48,-32,0,-16,-48,-32,-32,16,-48,00,-16,16,-48");  ans.assign(L"142848");  egy0.setImplementation(IDENTITY);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }      ans.assign(L"11.869536406860874");  egy0.setAlgorithm(SUM);  egy0.setImplementation(LOG);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }  ans.assign(L"51.5487");  egy0.setImplementation(DB);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }  ans.assign(L"714.24");  egy0.setImplementation(POWER);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }    ans.assign(L"6.57122");  egy0.setImplementation(LOG_POWER);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }  ans.assign(L"28.5385");  egy0.setImplementation(DB_POWER);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }    ans.assign(L"26.7253");  egy0.setImplementation(RMS);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }      ans.assign(L"3.2856");  egy0.setImplementation(LOG_RMS);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }      ans.assign(L"28.5385");  egy0.setImplementation(DB_RMS);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }      // test with an all zero vector:  //  note the use of an energy floor to make sure we correctly clip the result  //  input.assign(L"0, 0, 0, 0");  egy0.setFloor(-10);  ans.assign(L"0.0");  egy0.setImplementation(IDENTITY);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }  egy0.setImplementation(LOG);  ans.assign(L"-10");  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }  egy0.setImplementation(DB);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }  egy0.setImplementation(POWER);  ans.assign(L"0");  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }    egy0.setImplementation(LOG_POWER);  ans.assign(L"-10");  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }  egy0.setImplementation(DB_POWER);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }    egy0.setImplementation(RMS);  ans.assign(L"0");  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }  egy0.setImplementation(LOG_RMS);  ans.assign(L"-10");  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }  egy0.setImplementation(DB_RMS);  ans.assign(L"-10");  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }  // test with a constant vector  //  input.assign(L"1, 1, 1, 1");  ans.assign(L"4.0");  egy0.setImplementation(IDENTITY);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }      ans.assign(L"1.386294");  egy0.setImplementation(LOG);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }  ans.assign(L"6.0206");  egy0.setImplementation(DB);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }  ans.assign(L"1.0");  egy0.setImplementation(POWER);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }    ans.assign(L"0.0");  egy0.setImplementation(LOG_POWER);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }  ans.assign(L"0.0");  egy0.setImplementation(DB_POWER);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }    ans.assign(L"1.0");  egy0.setImplementation(RMS);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }      ans.assign(L"0.0");  egy0.setImplementation(LOG_RMS);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }      ans.assign(L"0.0");  egy0.setImplementation(DB_RMS);  egy0.compute(output, input);  if (!output.almostEqual(ans)) {    ans.debug(L"expected result:");    output.debug(L"wrong result:");    return Error::handle(name(), L"compute", Error::TEST, __FILE__, __LINE__);  }      // reset indentation  //  if (level_a > Integral::NONE) {    Console::decreaseIndention();  }    //---------------------------------------------------------------------------  //  // 5. print completion message  //  //---------------------------------------------------------------------------  // reset indentation  //  if (level_a > Integral::NONE) {    Console::decreaseIndention();  }    if (level_a > Integral::NONE) {    String output(L"diagnostics passed for class ");    output.concat(name());    output.concat(L"\n");    Console::put(output);  }    // exit gracefully  //  return true;}

⌨️ 快捷键说明

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