
算法
文章平均质量分 78
@嵌入式系统
这个作者很懒,什么都没留下…
展开
-
嵌入式算法19---国家商用密码SM算法
数据加密和解密所涉及到的算法大致可分为以下三大类:单向散列算法(杂凑算法),对称加密算法,公开密钥加密算法(非对称加密算法)。大部分算法出自国外,事实上我国国家密码管理局也发布了一系列国产商用密码算法,即SM系列,但是简称国密算法,命名上太过随意。国密算法包括 SM1、SM2、SM3 、SM4、SM7、SM9、ZUC(祖冲之加密算法),其中SM1 和 SM7 算法不公开,其余算法已成为 ISO/IEC 国际标准。......原创 2022-08-14 11:30:24 · 5693 阅读 · 0 评论 -
嵌入式算法18---RSA非对称加密算法
RSA非对称加密算法的基础和源码原创 2022-07-28 23:43:15 · 4774 阅读 · 12 评论 -
嵌入式算法17---SHA256哈希算法
单向散列算法之SHA256分析原创 2022-07-26 23:49:14 · 1958 阅读 · 0 评论 -
嵌入式算法16-傅里叶变换算法
任何连续周期信号可以由一组适当的正弦曲线组合而成原创 2022-03-09 19:23:45 · 2857 阅读 · 0 评论 -
嵌入式算法15-KMP字符匹配算法
改进的字符串匹配算法–KMP算法原创 2022-01-20 19:36:01 · 623 阅读 · 0 评论 -
嵌入式算法14---数据流与环形队列
对生产-消费模型的数据处理,使用环形队列管理,提高内存利用率原创 2021-12-08 00:37:30 · 369 阅读 · 0 评论 -
嵌入式算法13---大数据变长存储算法
关键字:大数值存储 压缩 UTF8摘要:嵌入式系统中涉及数据采集的,对采样结果定义合理的数据类型存储,可以节省空间,虽然会牺牲部分时间。1、应用场景对于高精度采样结果,其数值最大可能需要3字节,最少1字节,采用标准C的基础数据类型,U16太小无法满足需求,U32则浪费内存,当样本量很大时,其占用的空间问题便突显出来。能否采用变长数据类型存储呢?对小数据采用U8,大数据采用U32,随着数值范围动态分配存储空间,就是本文的讨论的重点。2、数据去冗余U32的空间其数值范围最大接近2^32,该值非常大原创 2021-11-28 11:32:21 · 503 阅读 · 0 评论 -
嵌入式算法12---排序算法
关键字:冒泡排序、选择排序、插入排序、标准库函数qsort摘要:嵌入式系统中尤其涉及数据采集的,需要对数据进行简单处理后再进行业务功能,考虑到硬件的资源限制,对于数据排序,一般都只是应用这四种简单的排序算法。本文讲解不同算法进行从小到大的升序排列的过程。1、冒泡排序冒泡排序(bubble sort)是一种C语言入门级的简单排序算法,重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序错误进行交换。重复地检查对比直到没有相邻元素需要交换,也就是说该元素列已经排序完成。算法的名字由来是因为越小(大原创 2021-11-04 22:44:56 · 763 阅读 · 0 评论 -
嵌入式算法11---矩阵转置与压缩
在整个物联网系统中,嵌入式设备作为数据采集、过滤、缓存、传输的节点,前面系列文章分别介绍了嵌入式设备相关的各种数据过滤、校验和压缩存储算法。缓存和传输阶段,考虑到嵌入式设备的存储空间和传输带宽限制,数据包的压缩还可进一步优化。以嵌入式终端环境数据采集为例,以10秒间隔采样温度、湿度、气压、风速、四项环境数据,正常情况下,数据在短时间内都是小幅波动或者维持不变。假如采集结果(瞎编的,表意为主)如下表:时间戳温度湿度气压风速102775983202775983原创 2021-07-21 14:24:02 · 512 阅读 · 0 评论 -
嵌入式算法10---行程编码
1、游程编码嵌入式设备采集的数据,一般情况下变化比较平缓,长时间因此常常需要对数据进行压缩编码存储,等到要用到这个数据的时候再解压缩就行,这样不仅可以节约大量的存储空间,而且节省了系统读取和反应的时间。栅格数据压缩编码的方法有很多种,包括链式编码、行程编码、块式编码和四叉树编码。今天我们就来讲一下行程编码(也叫游程编码)。#include “stdio.h”#include “string.h”//这个配置成数据源中出现概率最小的数#define FLAG_ENCODE_HEAD 0x4vo原创 2021-07-19 19:11:35 · 1303 阅读 · 0 评论 -
嵌入式算法9---MD5的应用与实现
MD5概念MD5信息摘要算法(MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。输入任意长度的数据经过处理,输出都是128位的信息(数字指纹)。在有限范围内, 不同的输入得到的不同的结果(唯一性),毕竟字符的组合是无限的,大于2^128种。MD5加密过程是一个有损的加密过程,几乎不能还原出原始数据。嵌入式系统开发中,一般用于校验文件的完整性,如通过网络下载的文件,可能缺原创 2020-11-03 23:01:59 · 829 阅读 · 0 评论 -
嵌入式算法8---空间向量夹角公式及其应用
已知两空间向量的坐标为a=(x1,y1,z1),b=(x2,y2,z2),则两向量的夹角余弦公式为:原创 2020-11-03 00:54:13 · 3566 阅读 · 0 评论 -
嵌入式算法7---CRC校验算法模板
数据传输过程中差错不可避免,接收方在收到数据后,对需要先对数据的准确性进行校验,异常数据特殊处理。校验的方式有很多,常见的有CRC循环冗余校验。CRC算法检错能力强,效率高,是信息通信领域最为普遍的校验方式。CRC校验算法应用广,且实现算法简单,但其背后的涉及的纠错码的代数理论,不是一般人可以理解的。所以,在不理解循环校验原理的基础上,贸然分析算法流程是不明智的,根据源码倒推实现流程,是不会明白为什么要这样执行呢?一般关注CRC是应用为主,以及为什么都是CRC16算法,得出的结果却不同。本文的意图只是这原创 2020-10-30 17:59:38 · 654 阅读 · 0 评论 -
嵌入式算法6---AES加密/解密算法
AES对称加密算法介绍及源码实现原创 2020-10-27 22:59:33 · 4601 阅读 · 12 评论 -
嵌入式算法5---线性插值拟合算法
对于线性变化的物理量可以根据简单的换算得出测量值与实际物理量的关系,但是实际大多数被检测物理量与转换后的数字量之间不是严格的线性关系。比如热敏电阻的阻值与温度,锂电池的电压与剩余电量,不可能按步进1ohm的阻值或者0.01v的电压建立很大一张对应表。一般情况下会标定有限个的参考点,然后软件经过差值拟合去估算实际值。以电池电压和电量为例。...原创 2020-10-23 14:06:01 · 1090 阅读 · 1 评论 -
嵌入式算法4---正态分布过滤疏忽误差
测量系统中误差分为系统误差、随机误差、疏忽误差三种。系统误差一般是硬件精度或缺陷导致;随机误差是偶然产生,诸多外界因素微小变化共同导致,它服从统计规律的;疏忽误差则无规律可循,且明显和事实不符合。疏忽误差的样本值偏离了总体的平均值,在样本足够多且服从正态分布的情况下,通过一系列数理统计算法过滤坏样本。正态分布的68-95-99.7规则均值到左一和右一个标准差之间的定积分值是68%均值到左二和右二个标准差之间的定积分值是95%均值到左三和右三个标准差之间的定积分值是99.7%一般情况下认为,某个原创 2020-10-22 23:35:55 · 665 阅读 · 0 评论 -
嵌入式算法3---滑动平均滤波法
算数平均滤波需要多次采样后才能得出一个有效值,如果被检测量变化较快,多次采样后才输出一次有效值,表现就是系统反应迟钝。将当前采样值与之前连续的历史采样值进行平均,这样每次采样结束即可得出有效值。因为参与计算的历史值个数固定且内容不断前移覆盖更新,类似滑动的数据块窗口,因此成为滑动平均滤波算法。Vn-5Vn-4Vn-3Vn-2Vn-1VnVn-4Vn-3Vn-2Vn-1VnVn+1假如窗口为6,即每次使用最近5个历史值与当前最新值求算数平均值,输出一个有效值;下个原创 2020-10-22 18:14:08 · 2843 阅读 · 4 评论 -
嵌入式算法2---算数平均滤波法
随机干扰随着数据样本的增加,其统计平均值越趋于零,对被检测物理量进行连续多次采样,然后求其算数平均值作为有效采样值,就可以抑制随机干扰。以检测电池电压为例,因为负载变化,比如开启大功率模块,电池电压瞬时值会下降,关闭时会有个小的回升。假设期望1分钟更新一次,需要在这个频率的基础上按倍提高检测频率,如每15秒采集一次,取4次的平均值作为1分钟一次的有效值。#define SAMPLE_NUM 4int vBat[SAMPLE_NUM];//假设已经通过其他方式采集到了4次电压值,且缓存在vBat原创 2020-10-22 16:12:17 · 432 阅读 · 0 评论 -
嵌入式算法1---限幅滤波补偿法
现实中的物理量都是连续的模拟量,其变化需要一定时间,且在短时间内的变化量有一个合理的限度。例如气温,短时间内前后两个采样值的差值必定有个最大范围,基于这个条件可以对其中明显受到干扰的无效值进行剔除。本次的无效采样值排除后,再根据前面数据的变化趋势,预测一个合理的数据替代本次的问题值,而不是直接使用上次的结果。1、 什么样的采样值为无效值根据物理量的检测范围,和在采样间隔内最大的变化可能来定义,如气温检测,可定义温度在正负50度之间,如果采样间隔是1分钟,那气温在1分钟内最多变化5度。实际应用需要根据使用原创 2020-10-22 15:07:33 · 415 阅读 · 0 评论