我实施一个非常简单的带通滤波器,它的输入参数是包含该信号时,停留时间,并且截止频率为高通和低通滤波器的载体:std :: chrono的频率?
typedef std::vector<double> vec;
vec bandPass(const vec& signal, double dwellTime, double lowCutoff, double highCutoff);
我的界面的一个明显的问题是,函数调用者必须事先知道预期的时间和频率单位,并且必要时可能必须经过适当转换它们的烦恼。
我想我可以使用std::chrono
来解决我的问题,但我还没有看到它被用来测量频率。我想要:
vec bandPass(const vec& signal, milliseconds dwellTime, kHertz lowCutoff, kHertz highCutoff);
并有我的函数将所有单位转换为秒和赫兹计算。理想情况下,乘以毫秒和kHz可以得到与乘以秒和Hz相同的结果。
有没有人遇到类似的问题?写出像1/10s
这样的任何内容来表示赫兹是合法的C++吗?
我对std :: chrono没有太多经验(对于C++来说),并希望在定义我的接口之前,我可以在这里收集一些智慧词汇。任何其他建议也是受欢迎的。
我想你正在寻找['std :: chrono :: duration'](http://en.cppreference.com/w/cpp/chrono/duration)来表示时间间隔。 – AndyG