打印
[软件资料]

用于单片机的几种C语言算法

[复制链接]
323|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
eefas|  楼主 | 2022-11-23 22:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机主要作用是控制外围的器件,并实现一定的通信和数据处理。虽然单片机不擅长实现算法和进行复杂的运算。但在某些特定场合,不可避免地要用到数字运算。
比入如;在单片机进行数据采集时,会遇到数据的随机误差,随机误差是有随机干扰引起的,其特定是在相同条件下测量同一量时,其大小和符号会现在无规则的变化而无法预测,但多次测量的结果符合统计规律。
为克服随机干扰引起的误差,硬件上可采用滤波技术,软件上可采用软件算法实现数字滤波。滤波算法往往是系统测控算法的一个重要组成部分,实时性很强。
1、采用数据滤波算法克服随机干扰的误差具有以下优点:
1:数字滤波无需其他的硬件成本,只有一个计算过程你,可靠性高,不存在阻坑匹配问题。尤其是数字滤波可以对濒很低的信号进去滤波,这是模拟滤波器做不到的。
2.数字滤波使用软件算法实现,多输入通道可共用一个滤波程序,降低系统开支。
3.只要适当改变滤波器的滤波程序或运算,就能方便地改变其滤波特性,这对于滤波低频干扰和随机信号会有较大的效果。
4.在单片机的系统中常用的滤波算法有限幅滤波法、中值滤波法、算术平均滤波法、加权平均滤波法、滑动平均滤波等。
2’限幅滤波算法
该运算的过程中将两次相邻的采样相减,求出其增量,然后将增量的绝对值,与两次采样允许的最大差值A进行比较。
A的大小由测对象的具体情况而定,如果小于或等于允许的最大最差值,则本次采样有效;否者取上次采样值作为本次数据的样本。
说明:限幅滤波主要用于处理变化转为缓慢的数据,如温度,物体的位置等。使用时,关键要选取合适的门限制A。通常这可由经验数据获得,必要时可通过实验得到。
3.中值滤波算法
该运算的过程是对某一参数连采样N次(N一般为奇数),然后把N次采样的值按从小到大排列,再取中间值作为本次采样值,整个过程实际上是一个序列排序的过程。
说明:中值滤波比较适用于去掉由偶然因素引起的波动和采样器不稳定而引起的脉动干扰。若被测量值变化比较慢,采用中值滤波效果会比较好,但数据变化比较快,则不宜采用此方法。
4.算法平均滤波算法
该算法的基本原理很简单,就是连续取N次采样值后进行算术平均。
说明:算术平均滤波算法使用于对具有随机干扰的信号进行滤波。这种信号的特点是有一个平均值后进去算法平均。信号再某一数值附近上下波动。信号的评选
信号的平均平滑程度完全到决于N值。当N较大时平滑度高,灵敏度低:当N较小时,平滑度低,但灵敏度高。为了方便求平均值,N一般取4.8.16.32.之类的2的整数幂,以便再程序中用移位操作来代替除法。
5、加权平均滤波算法
由于前面所说的’算法平均滤波算法’存在平滑度和灵敏之间的矛盾。为了协调平滑度和灵敏3度之间的关系,可采用加权平均滤波
它的原理是对连续N次采样值分别乘上不同的加权系数之后再求累加,加权系数一般先小后大,以突出后面若干采样的效果,加强系统对参数变化趋势的认识。
各个加权系数均小于1的小数,且满足总和等于1的结束条件。这样加权运算之后的累加和即为有效采样值。其中加权平均数字滤波的数学模型:
式中D为个采样值的加权平均值:XN‘-i为第N-i次采样值;N为采样次数;IC为加权系数。加权系数CI体现了各种采样值的平均值中所占的比例。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

82

主题

2855

帖子

2

粉丝