该计算库主要用来提取运动传感器信号的特征.
一个典型的运动传感器包含三个主要部分:
- 加速度传感器
- 磁通传感器
- 陀螺仪传感器
包含整个三个传感器的控制单元一般也被叫做IMU(inertia measurement unit)单元.
计算的特征主要包含几个部分
- 运动传感基本特征(加速度,速度,位移,旋转角度,角速度等)
- 统计特征
- 时域特征
- 频域特征
- 时间-频率特征
Git clone之后, 调用下面命令编译和测试库(debug版本):
1. git submodule update --init --recursive
2. mkdir build.debug
3. cd build.debug
4. cmake .. -G"NMake Makefiles" -DBOOST_ROOT=/your/boost/root/path
5. nmake
6. ctest
对于release版本, 2~4步改为:
2. mkdir build.release
3. cd build.release
4. cmake .. -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DBOOST_ROOT=/your/boost/root/path
Linux上将"NMake Makefiles"和nmake改为对应的工具链即可.
本库依赖于下面几个第三方库:
- boost 主要几个子模块为
unit_test filesystem property_tree accumulators - armadillo 线性代数C++计算库
- aquila 信号处理C++库
- wavelet1d 离散小波变换
- fftw 傅里叶变换计算库
armadillo和aquila已经编译好(visual C++ 2012)放置在了3rd目录中,也可以自己编译将编译好的结果放置到3rd目录中即可
需要注意的是,aquila编译好的library需要根据BUILD_TYPE放置不同的目录下(可以参考cmake/modules/support_aquila.cmake模块):
- debug模式的lib: 放置在
Debug/Aquila.lib - relase模式的lib: 放置在
Release/Aquila.lib
wavelet1d使用直接包含源码的方式加入到smfe_lib中.
fftw已经将编译好的(visual C++ 2012)放置在3rd/fftw中, 如果自己需要重新编译, 参考3rd/fftw/README.md
-
本库的基本类型定义在
include/smfe/global.h文件中 -
可以参考
test目录下的测试代码作为example
-
本库的基本类型定义在
include/smfe/global.h文件中 -
可以参考
test目录下的测试代码作为example
- 制定boost目录
- 制定
SMFE_DIR变量指示smfe library所在的根目录, 其中${SMFE_LIB}/include保存了 smfe的头文件,${SMFE_LIB}/lib/debug(release)保存了smfe编译好的lib或者.a文件. - 将
SMFE_DIR中的support_smfe.cmake加入到CMAKE_MODULE_PATH中 - 使用
support_smfe(${target})命令在target工程中加入本库
具体可以参考目录test_using_smfe中的示例性使用代码
- 将计算信号的特征变得完全可配置