算法库
概述
EmeyeStudio 提供了丰富的信号处理和数据分析算法库,支持滤波、统计分析、FFT 频谱分析、数值变换、数学运算等功能。
电机控制专用算法已拆分为独立文档,便于针对性查阅:
- PMSM 磁链观测器:永磁同步电机最小阶磁链观测器及完整使用案例
- EmAdapt 参数适配:电机控制器参数自动适配
功能列表
1. 滤波器
1.1 滑动平均滤波
- 用途:平滑信号,去除高频噪声
- 参数:窗口大小(建议 3-21)
- 特点:简单高效,适合实时处理
1.2 指数平滑滤波
- 用途:平滑信号,计算效率高
- 参数:平滑系数 α(0-1,值越大响应越快)
- 特点:一阶 IIR 滤波,仅需存储上一状态
1.3 中值滤波
- 用途:去除脉冲噪声和异常值
- 参数:窗口大小(建议 3-11)
- 特点:非线性滤波,保留边缘
1.4 低通滤波
- 用途:衰减高频信号,保留低频信号
- 参数:截止频率、采样率
- 特点:二阶 IIR 滤波器
1.5 高通滤波
- 用途:衰减低频信号,保留高频信号
- 参数:截止频率、采样率
- 特点:二阶 IIR 滤波器
1.6 带通滤波
- 用途:保留特定频率范围的信号
- 参数:低截止频率、高截止频率、采样率
- 特点:组合低通和高通滤波
2. 统计分析
2.1 基本统计量
| 统计量 | 说明 |
|---|---|
| 均值 | 数据的平均值 |
| 方差 | 数据的离散程度 |
| 标准差 | 方差的平方根 |
| 最小值 | 数据中的最小值 |
| 最大值 | 数据中的最大值 |
| RMS | 均方根值 |
| 峰峰值 | 最大值与最小值之差 |
2.2 滑动窗口统计
在滑动窗口内计算统计量,用于实时数据分析。
3. FFT 频谱分析
3.1 功能说明
- 基 2-FFT 算法
- 支持多种窗函数
- 输出幅度谱、相位谱、频率轴
3.2 窗函数
| 窗函数 | 适用场景 |
|---|---|
| 矩形窗 | 瞬态信号 |
| 汉宁窗 | 一般用途 |
| 汉明窗 | 语音处理 |
| 布莱克曼窗 | 高动态范围 |
| 平顶窗 | 精确幅度测量 |
4. 数值变换
4.1 积分运算
| 方法 | 说明 |
|---|---|
| 梯形法 | 线性插值积分 |
| 辛普森法 | 二次插值积分,精度更高 |
4.2 微分运算
| 方法 | 说明 |
|---|---|
| 前向差分 | 使用前向点计算 |
| 后向差分 | 使用后向点计算 |
| 中心差分 | 使用前后两点计算,精度较高 |
5. 数学运算
支持的数学函数:
- 三角函数:sin, cos, tan, asin, acos, atan
- 双曲函数:sinh, cosh, tanh
- 指数/对数:exp, log, log10
- 其他:sqrt, abs, ceil, floor, pow
使用注意事项
- FFT 点数:必须是 2 的幂(如 256, 512, 1024, 2048 等)
- 滤波器截止频率:必须小于采样率的一半(奈奎斯特频率)
- 数据长度:所有算法要求输入数据长度大于 0