当前位置: 首页 > ai >正文

单片机嵌入式滤波算法库

kw_ucFiltering库说明

本科针对常用的滤波算法进行汇总,主要包括:

  • 一阶滤波算法
  • 平滑滤波
  • 中位值滤波
  • 限幅
  • 卡尔曼滤波

截至目前(20250508)滤波算法持续更新中。

本库开源连接地址:gitee连接

一阶滤波算法实现


原理

一阶滤波算法的物理模型是一阶RC低通滤波电路,其传递函数通常表达为:

G ( s ) = 1 1 + τ s G(s)=\frac{1}{1+\tau s} G(s)=1+τs1

其中τ为时间常数。

其时域表达式通常为:

y ( k ) = ( 1 − a ) ⋅ y ( k − 1 ) + a ⋅ x ( k ) y(k) = (1-a) \cdot y(k-1) + a \cdot x(k) y(k)=(1a)y(k1)+ax(k)

其中

a = T T + τ a=\frac{T}{T+τ} a=T+τT


C库

主要变量

项目变量类型说明
1kw_ucAlgorTrans1_s结构体basic:基本类型
T:时间常数
a,b:惯性系数
*x:数据输入
y:滤波输出

主要函数

项目函数说明
1kw_ucAlgorTrans1Init初始化滤波函数
2kw_ucAlgorTrans1Link连接滤波函数的输入
3kw_ucAlgorTrans1Run滤波函数周期运行
4kw_ucAlgorTrans1CFG滤波函数配置
5kw_ucAlgorTrans1Result滤波函数结果,即为滤波输出

测试代码

#include "kw_ucAlgorCFG.h"timer_t timer;
kw_ucAlgorTrans1_s trans1;void timerCB(void *arg)
{kw_ucAlgorTrans1Run(&trans1);
}void main()
{float dataIn;float resultOut;kw_ucAlgorTrans1Init(&trans1, 10);kw_ucAlgorTrans1CFG(&trans1, 1000);kw_ucAlgorTrans1Link(&trans1, &dataIn);timer_init(&timer, 10, timerCB, NULL);timer_start(&timer);while (true){dataIn = randf(10);kw_ucAlgorTrans1Result(&trans1, &resultOut);printf("%.2f\n", resultOut);delay(10);}
}
http://www.xdnf.cn/news/4638.html

相关文章:

  • 从颜料混色到网络安全:DH算法的跨界智慧
  • Java实现桶排序算法
  • 【Git】【commit】查看未推送的提交查看指定commit的修改内容合并不连续的commit
  • 【Ubuntu】安裝向日葵远程控制
  • 可观测性方案怎么选?SelectDB vs Elasticsearch vs ClickHouse
  • [逆向工程]什么是DLL重定向(十九)
  • 基于Stable Diffusion XL模型进行文本生成图像的训练
  • 《社交应用架构生存战:React Native与Flutter的部署容灾决胜法则》
  • k8s(11) — 探针和钩子
  • SpringBoot学生操行评分系统源码设计开发
  • C++函数传值与传引用对比分析
  • 课外活动:简单了解原生测试框架Unittest前置后置的逻辑
  • 录播课视觉包装与转化率提升指南
  • 【NextPilot日志移植】整体功能概要
  • 迪士尼机器人BD-X 概况
  • 5G + AR:让增强现实真正“实时交互”起来
  • 前端取经路——框架修行:React与Vue的双修之路
  • 数据来源合法性尽职调查:保障权益的关键防线
  • Android不能下载Gradle,解决方法Could not install Gradle distribution from.......
  • 2025最新:3分钟使用Docker快速部署单节点Redis
  • python+open3d获取点云的最小外接球体及使用球体裁剪点云
  • 蓝桥杯青少 图形化编程(Scratch)每日一练——校门外的树
  • VGGNet详解
  • java集成telegram机器人
  • [特殊字符]【实战教程】用大模型LLM查询Neo4j图数据库(附完整代码)
  • 赋能金融科技创新,Telerik打造高效、安全的金融应用解决方案!
  • Linux58 ssh服务配置 jumpserver 测试双网卡 为何不能ping通ip地址
  • 从ellisys空口分析蓝牙耳机回连手机失败案例
  • 正则表达式(Regular Expression)详解
  • 关于ubuntu下交叉编译arrch64下的gtsam报错问题,boost中boost_regex.so中连接libicui18n.so.55报错的问题