嵌入式算法
文章平均质量分 61
嵌入式算法
薛皮话梅
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【嵌入式算法】字符串匹配KMP算法
摘要:改进的字符串匹配算法–KMP算法原创 2022-02-08 16:15:11 · 256 阅读 · 0 评论 -
【嵌入式算法】数据流与环形队列
摘要:对生产-消费模型的数据处理,使用环形队列管理,提高内存利用率。1、应用场景所谓生产-消费模型,即数据的产生和利用是异步处理,先”生产“了,然后才有”消费“。对嵌入式系统一般是数据接收与解析,数据缓存与发送。因为时序或者空间要求,两者需要异步处理;对于这种数据流,采用环形队列,先进先出的方式保存。2、环形队列队列是一种常用的数据结构,按照“先进先出”的原则进行操作的,环形队列是数据元素存储一轮后,再从头部开始入队,首尾相接,是一个装载固定数量元素的闭环。typedef struct{原创 2022-02-08 16:14:47 · 305 阅读 · 0 评论 -
【嵌入式算法】排序算法
关键字:冒泡排序、选择排序、插入排序、标准库函数qsort摘要:嵌入式系统中尤其涉及数据采集的,需要对数据进行简单处理后再进行业务层功能,考虑到硬件的资源限制,对于数据排序,一般只是应用这四种简单的排序算法。本文讲解不同算法进行从小到大的升序排列的过程。1、冒泡排序冒泡排序(bubble sort)是一种C语言入门级的简单排序算法,重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序错误进行交换。重复地检查对比直到没有相邻元素需要交换,也就是说该元素列已经排序完成。算法的名字由来是因为越小(大原创 2022-01-29 16:16:51 · 542 阅读 · 0 评论 -
【嵌入式算法】矩阵转置与压缩
在整个物联网系统中,嵌入式设备作为数据采集、过滤、缓存、传输的节点,前面系列文章分别介绍了嵌入式设备相关的各种数据过滤、校验和压缩存储算法。缓存和传输阶段,考虑到嵌入式设备的存储空间和传输带宽限制,数据包的压缩还可进一步优化。以嵌入式终端环境数据采集为例,以10秒间隔采样温度、湿度、气压、风速、四项环境数据,正常情况下,数据在短时间内都是小幅波动或者维持不变。假如采集结果(瞎编的,表意为主)如下表:数据按字节流存储到文件或者传输出去,占30字节。unsigned char source_data[3原创 2022-01-27 14:43:42 · 286 阅读 · 0 评论 -
【嵌入式算法】行程编码
1、行程编码嵌入式设备采集的数据,变化比较平缓,长时间趋于稳定的状态,其采样结果会有大量连续且相同的数值,对应这些数据,常规的压缩算法在硬件资源有限的嵌入式设备无法运行,代码空间和RAM要求不能满足的情况下,简单有效的行程编码不失为一种最佳选择。行程编码(Run Length Encoding,RLE), 又称游程编码,主要思路是将一个相同值的连续串用一个代表值和串长来代替。例如字符串“AAABBBBCCCCCJJJJJJ”,可以用“3A4B5C6J”来记录,原本长度18字节的字符串使用8个字节即可无损原创 2022-01-27 14:43:17 · 2831 阅读 · 0 评论 -
【嵌入式算法】MD5的应用与实现
1、MD5概念MD5信息摘要算法(MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。输入任意长度的数据经过处理,输出都是128位的信息(数字指纹)。不同的输入得到的不同的结果,在有限范围内是唯一的,毕竟字符的组合是无限的,大于2^128种。MD5加密过程是一个有损的加密过程,几乎不能还原出原始数据。2、MD5算法(C语言版)md5.h#ifndef MD5_H#de原创 2022-01-27 14:42:53 · 419 阅读 · 0 评论 -
【嵌入式算法】空间向量夹角公式及其应用
有些设备正常工作时需按合适的方位安装,比如GPS天线必须朝向天空才能保证信号最佳,温湿度传感器监测口必须朝向被测目标才能及时响应。软件需求是在安装角度异常时提醒用户改变位置。那设备如何感知当前方位呢?需要一颗加速度传感器硬件支持,辅以算法实现。1、重力加速度根据物理常识,地面上任何物体静止时都受到1g的重力加速度,且方向是竖直向下。因为倾斜角的不同,1g的加速度按向量分解到xyz三轴:acc_x=1g.sinθ.cosϕacc_y=-1g.sinθ.sinϕacc_z=1g.cosϕ符号.代原创 2022-01-27 14:42:26 · 2872 阅读 · 0 评论 -
【嵌入式算法】CRC校验算法
数据传输过程中差错不可避免,接收方在收到数据后,先对数据的准确性进行校验,异常数据特殊处理。校验的方式有很多,常见的有CRC循环冗余校验。CRC算法检错能力强,效率高,是信息通信领域最为普遍的校验方式。CRC校验算法应用广,且实现算法简单,但其背后的涉及的纠错码的代数理论,不是一般人可以理解的。所以,在不理解循环校验原理的基础上,贸然分析算法流程是不明智的,根据源码倒推实现流程,也不会明白为什么要这样执行?一般关注CRC以应用为主,以及为什么都是CRC16算法,得出的结果却不同。本文的意图只是这个。1、C原创 2022-01-27 14:42:04 · 795 阅读 · 0 评论 -
【嵌入式算法】AES加密/解密算法
需要与外界进行数据交互传输的电子产品,为保证数据安全,一般会对明文进行加密处理。总的来说就是将真正需要传输的内容转换成无法理解的数据,接收方通过预先定义的方式还原,防止第三方截取篡改。比如欧盟对数据隐私有严格的条例GDPR标准。加密算法很多,对于简单的嵌入式产品,使用对称加密算法,即加密和解密使用相同的秘钥,方便快捷。AES就属于这种,虽然存在一定风险,但对于个人消费产品已满足安全需求。1、秘钥类型AES加密按秘钥的长度分为128位(比特)、192位和256位,一般记为AES-128、AES-192和原创 2022-01-27 14:41:41 · 1251 阅读 · 0 评论 -
【嵌入式算法】线性插值拟合算法
对于线性变化的物理量可以根据简单的换算得出测量值与实际物理量的关系,但是实际大多数被检测物理量与转换后的数字量之间不是严格的线性关系。比如热敏电阻的阻值与温度,锂电池的电压与剩余电量,不可能按步进1ohm的阻值或者0.01v的电压建立很大一张对应表。一般情况下会标定有限个参考点,通过软件算法拟合去估算实际值。已知(x0,y0)和(x1,y1),在这两个值之间插入节点,按线性函数g(x)=ax+b,计算得出g(x)=y0+(y1-y0)*(x-x0)/( x1-x0)插值节点x0与 x1的间距越小,则f(原创 2022-01-27 14:41:15 · 832 阅读 · 0 评论 -
【嵌入式算法】正态分布过滤疏忽误差
测量系统中误差分为系统误差、随机误差、疏忽误差三种。系统误差一般是硬件精度或缺陷导致;随机误差是偶然产生,诸多外界因素微小变化共同导致,它服从统计规律的;疏忽误差则无规律可循,且明显和事实不符合。疏忽误差的样本值偏离了总体的平均值,在样本足够多且服从正态分布的情况下,通过一系列数理统计算法过滤坏样本。均值到左一和右一个标准差之间的定积分值是68% ,均值到左二和右二个标准差之间的定积分值是95% ,均值到左三和右三个标准差之间的定积分值是99.7% 。一般情况下认为,某个采样值与均值的差值大于3倍标准差原创 2022-01-27 14:40:50 · 272 阅读 · 0 评论 -
【嵌入式算法】滑动平均滤波法
算数平均滤波需要多次采样后才能得出一个有效值,如果被检测量变化较快,多次采样后才输出一次有效值,表现就是系统反应迟钝。将当前采样值与之前连续的历史采样值进行平均,这样每次采样结束即可得出有效值。因为参与计算的历史值个数固定且内容不断前移覆盖更新,类似滑动的数据块窗口,因此成为滑动平均滤波算法。假如窗口为6,即每次使用最近5个历史值与当前最新值求算数平均值,输出一个有效值;下个周期再覆盖最早时间的点做同样操作。类似环形数组,求最近6个值的平均值。#define SUM_WIN_SIZE 6int原创 2022-01-27 14:40:18 · 1013 阅读 · 0 评论 -
【嵌入式算法】算数平均滤波法
随机干扰随着数据样本的增加,其统计平均值越趋于零,对被检测物理量进行连续多次采样,然后求其算数平均值作为有效采样值,就可以抑制随机干扰。以检测电池电压为例,因为负载变化,比如开启大功率模块,电池电压瞬时值会下降,关闭时会有个小的回升。假设期望1分钟更新一次,需要在这个频率的基础上按倍提高检测频率,如每15秒采集一次,取4次的平均值作为1分钟一次的有效值。#define SAMPLE_NUM 4int vBat[SAMPLE_NUM];//假设已经通过其他方式采集到了4次电压值,且缓存在vBat数原创 2022-01-27 14:39:34 · 503 阅读 · 0 评论 -
【嵌入式算法】差值滤波补偿法
现实中的物理量都是连续的模拟量,其变化需要一定时间,且在短时间内的变化量有一个合理的限度。例如气温,短时间内前后两个采样值的差值必定有个最大范围,基于这个条件可以对其中明显受到干扰的无效值进行剔除。本次的无效采样值排除后,再根据前面数据的变化趋势,预测一个合理的数据替代本次的问题值,而不是直接使用上次的结果。1、 什么样的采样值为无效值根据物理量的检测范围,和在采样间隔内最大的变化可能来定义,如气温检测,可定义温度在正负50度之间,如果采样间隔是1分钟,那气温在1分钟内最多变化5度。实际应用需要根据使用原创 2022-01-21 12:50:29 · 398 阅读 · 0 评论
分享