算法学习笔记之滑动平均滤波算法
滑动平均滤波算法只采样一次,将一次采样值和过去的若干次采样值一起求平均,得到的有效采样值即可投入使用。如果取N个采样值求平均,存储区中必须开辟N个数据的暂存区。每新采集一个数据便存入暂存区中,同时去掉一个最老数据,保存这N个数据始终是最新更新的数据。采用环型队列结构可以方便地实现这种数据存放方式。
程序代码如下:
char value_buff[N]; //N相当于选定一个窗口大小,对窗口数据做平均!
char i=0;
char filter()
{
char count;
int sum=0;
value_buff[i++]=get_data();
if(i==N)
i=0; //当数据大于数组长度,替换数据组的一个数据 相当于环形队列更新,先进先出!
for(count=0;count<N;count++)
sum+=value_buff[count];
return (char)(sum/N);
}
优点:
对周期性干扰有良好的抑制作用,平滑度高
适用于高频振荡的系统
缺点:
灵敏度低
对偶然出现的脉冲性干扰的抑制作用较差
不易消除由于脉冲干扰所引起的采样值偏差
不适用于脉冲干扰比较严重的场合
比较浪费RAM
算法学习笔记之滑动平均滤波算法相关推荐
- 数字滤波算法(一)——滑动平均滤波算法
一.数字滤波器简介 数字滤波器是指通过一定的数据逻辑构成的可以滤除输入信号中的特定的噪声的算法,这里所指的数字滤波器主要包括平均值滤波.FIR滤波.CIC滤波等,在之后的实验中,我们将介绍不同数字滤波 ...
- [MATLAB学习]:Matlab生成滑动平均滤波算法文件并移植到STM32单片机上运行——基于CubeMX
前言 人生如逆旅,我亦是行人. 今天分享一个在 MATLAB 上生成C算法文件,并将其移植到 keil5上,运行至 STM32 单片机,一个很有用的方法. 准备工作: 已安装 MATLAB 的软件(注 ...
- 滑动平均滤波算法——MATLAB实现
算法原理 滑动平均滤波算法的基本思想是设定一个宽度固定的滑动窗口,该窗口沿着时间序列滑动,同时取窗内数据的算术平均值作为输出值,而由输出值组成另一个数字序列,也就是滤波后的序列.设N为滑动窗口的宽度, ...
- C 语言实现的滑动平均滤波算法,滑动平均滤波算法(递推平均滤波法)
/// ///滑动平均滤波算法(递推平均滤波法) /// /// /// GN为数组value_buf[]的元素个数,该函数主要被调用,利用参数的数组传值 /// private const int ...
- C语言实现的滑动平均滤波算法
最近采集压力传感器的电压信号,采集到的数据波动挺大的,所以采用滤波的方法进行处理一下. 因为在matlab中依靠matlab的画图函数很容易看到滤波后的数据图像,进而验证滤波效果. 所以首先将采集到的 ...
- 嵌入式–滑动平均滤波算法
嵌入式–滑动平均滤波 滑动平均值滤波是指先在RAM中建立一个数据缓冲区,依顺序存放N个采样数据,每采进一个新数据,就将最早采集的那个数据丢掉,而后求包括新数据在内的N个数据的算术平均值.这样,每进 ...
- 【数据结构与算法学习笔记001】Kalman滤波
目录 一. 卡尔曼滤波的起源 二. 卡尔曼滤波的原理 三. 卡尔曼滤波的发展 四. 卡尔曼滤波的应用 五. 我 ...
- 算法学习笔记13:哈希算法
哈希算法(上):如何防止数据库中的用户信息被脱库 什么是哈希算法 应用一:安全加密 应用二:唯一标识 应用三:数据校验 应用四:散列函数 解答开篇 哈希算法(下):哈希算法在分布式系统中有哪些应用 应 ...
- 算法学习笔记 网络流之最大流算法
文章目录 26.1 流网络 1. 流网络和流 2. 流的一个例子 3. 使用反平行边来建模问题 4. 具有多个源点和多个汇点的网络 26.2 *Ford-Fulkerson* 方法 1. 残存网络 2 ...
最新文章
- Enlightenment E19 将完整支持 Wayland
- Spring PropertyPlaceholderConfigurer
- invalid use of incomplete type ‘class UI::MainWindow‘解决方法
- 【错误记录】Android Studio 编译报错 ( Error:Connection timed out: connect | 更新配置依赖仓库方式 )
- java 类型 字节_Java数据类型-字节
- 配置tomcat容器的access.log访问日志
- how you can do to make girls more close to you?
- oracle事务提交前更新机制,Oracle 事务机制 批量添加,修改,更新
- Teamcenter(Enterprise 2007) Admin 手法之 -- 移除relation
- Java判断100到200之间所有的素数,并且输出这些素数
- ·通过wifi_scan学习esp32wifi程序编写
- python实现三个或三个以上列表之间元素相互组合
- 类818tu.c微信小说分销系统设计之定时模板消息源码
- JAVA_判断日期是否为工作日(排除节假日和调整周末上班)
- Android中摇一摇的实现
- w3690 支持服务器内存,微星S20内存是什么
- 推荐一款非常好用的鼠标手势软件StrokeIt
- Filebeat日志采集
- LeetCode精选TOP面试题(中等篇)【出现率降序】
- 永不服输 学无止境
热门文章
- 有限元分析50年发展之路
- 云计算行业发展到底有多火?人才需求大吗?就业“钱”景好吗?
- 在Linux系统实现PTP时钟同步,查看网卡信息后发现网卡不支持PTP软硬件时间戳
- //过360云查杀的代码
- 如何判断车与路边线距离_车身与边线30公分距离如何判断?7种方法秒懂
- MyEclipse has detected that less than 5% of the 31MB of Eden Space (Heap memory)
- 电脑时钟倒计时_你有很好的时间观念吗——Mamsds Timer一款桌面倒计时工具
- linux cpu跑分软件,Geekbench 5 5.2.3 硬件性能跑分工具 特别版
- RS232/485串口转CANbus总线网关模块CAN232/485MB转换器CANCOM的简介
- 用CSS把文字显示成哆啦A梦