Skip to content

whiledoing/smfe

Repository files navigation

smfe (sensor motion features extroactor)

Introduction

该计算库主要用来提取运动传感器信号的特征.

一个典型的运动传感器包含三个主要部分:

  1. 加速度传感器
  2. 磁通传感器
  3. 陀螺仪传感器

包含整个三个传感器的控制单元一般也被叫做IMU(inertia measurement unit)单元.

计算的特征主要包含几个部分

  1. 运动传感基本特征(加速度,速度,位移,旋转角度,角速度等)
  2. 统计特征
  3. 时域特征
  4. 频域特征
  5. 时间-频率特征

安装 && 编译

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改为对应的工具链即可.

关于第三方库的说明

本库依赖于下面几个第三方库:

  1. boost 主要几个子模块为 unit_test filesystem property_tree accumulators
  2. armadillo 线性代数C++计算库
  3. aquila 信号处理C++库
  4. wavelet1d 离散小波变换
  5. fftw 傅里叶变换计算库

armadilloaquila已经编译好(visual C++ 2012)放置在了3rd目录中,也可以自己编译将编译好的结果放置到3rd目录中即可

需要注意的是,aquila编译好的library需要根据BUILD_TYPE放置不同的目录下(可以参考cmake/modules/support_aquila.cmake模块):

  1. debug模式的lib: 放置在 Debug/Aquila.lib
  2. relase模式的lib: 放置在 Release/Aquila.lib

wavelet1d使用直接包含源码的方式加入到smfe_lib中.

fftw已经将编译好的(visual C++ 2012)放置在3rd/fftw中, 如果自己需要重新编译, 参考3rd/fftw/README.md

说明

  1. 本库的基本类型定义在include/smfe/global.h文件中

  2. 可以参考test目录下的测试代码作为example

说明

  1. 本库的基本类型定义在include/smfe/global.h文件中

  2. 可以参考test目录下的测试代码作为example

使用本库

  1. 制定boost目录
  2. 制定SMFE_DIR变量指示smfe library所在的根目录, 其中${SMFE_LIB}/include保存了 smfe的头文件, ${SMFE_LIB}/lib/debug(release)保存了smfe编译好的lib或者.a文件.
  3. SMFE_DIR中的support_smfe.cmake加入到CMAKE_MODULE_PATH
  4. 使用support_smfe(${target})命令在target工程中加入本库

具体可以参考目录test_using_smfe中的示例性使用代码

TODO

  1. 将计算信号的特征变得完全可配置

About

sensor features extroactor

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages