我實施一個非常簡單的帶通濾波器,它的輸入參數是包含該信號時,停留時間,並且截止頻率爲高通和低通濾波器的載體: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