1. 一阶滤波算法的原理

一阶滤波,又叫一阶惯性滤波,或一阶低通滤波。是使用软件编程实现普通硬件RC低通滤波器的功能。

一阶低通滤波的算法公式为:

Y(n)=αX(n) (1-α)Y(n-1)

式中:α=滤波系数;X(n)=本次采样值;Y(n-1)=上次滤波输出值;Y(n)=本次滤波输出值。

一阶低通滤波法采用本次采样值与上次滤波输出值进行加权,得到有效滤波值,使得输出对输入有反馈作用。

2. 一阶滤波算法的程序(适用于单个采样)

[cpp] view plain copy

1. #define a 0.01 // 滤波系数a(0-1)

2.

3. char value; //滤波后的值

4. char new_value; // 新的采样值

5.

6. char filter()

7. {

8. char new_value;

9. new_value = get_ad();

10. return 0.01*value + (1-0.01)*new_value;

11. }

[cpp] view plain copy

1.

3. 一阶滤波算法的不足

1. 关于灵敏度和平稳度的矛盾

滤波系数越小,滤波结果越平稳,但是灵敏度越低;

滤波系数越大,灵敏度越高,但是滤波结果越不稳定。

一阶滤波无法完美地兼顾灵敏度和平稳度。有时,我们只能寻找一个平衡,在可接受的灵敏度范围内取得尽可能好的平稳度。而在一些场合,我们希望拥有这样一种接近理想状态的滤波算法。即:

当数据快速变化时,滤波结果能及时跟进(灵敏度优先);

当数据趋于稳定,在一个固定的点上下振荡时,滤波结果能趋于平稳(平稳度优先)。

2. 关于小数舍弃带来的误差

一阶滤波算法有一个鲜为人知的问题:小数舍弃带来的误差。 比如: 本次采样值=25,上次滤波结果=24,滤波系数=10, 根据滤波算法:

本次滤波结果=(25*10+24*(256-10))/256=24.0390625

但是,我们在单片机运算中,很少采用浮点数。因此运算后的小数部分要么舍弃,要么进行四舍五入运算。这样一来,本例中的结果24.0390625就变成了24。假如每次采样值都=25,那么滤波结果永远=24。也就是说滤波结果和实际数据一直存在无法消除的误差。

c语言低通滤波程序,一阶低通滤波器c语言相关推荐

  1. 一阶低通滤波和一阶高通滤波的C++实现

    [转自]阳光下的奔跑_FC 傅立叶变换,拉普拉斯变换和Z变换 对于信号分析而言,傅立叶变换是必不可少的,我们都知道傅立叶变换是把系统从时域变换到频域进行分析,那么拉普拉斯变换和Z变换是干什么的?简单的 ...

  2. opencv 高通滤波和低通滤波_一阶低通滤波原理详解

    在汽车标定中,使用最多的滤波算法即低通滤波,很多朋友可能知道怎么标定,但是不清楚具体的原理,因此本文将介绍一阶低通滤波的原理.算法建模仿真和优缺点: 一阶滤波算法的原理 一阶滤波,又叫一阶惯性滤波,或 ...

  3. 一阶低通滤波器方程_一阶低通滤波原理详解

    在汽车标定中,使用最多的滤波算法即低通滤波,很多朋友可能知道怎么标定,但是不清楚具体的原理,因此本文将介绍一阶低通滤波的原理.算法建模仿真和优缺点:一阶滤波算法的原理 一阶滤波,又叫一阶惯性滤波,或一 ...

  4. 一阶RC低通滤波算法原理与实现

    文章目录 1. 一阶低通滤波算法原理 2. 一阶滤波算法的特点 3. 基本算法的例程 4. 优化:减少乘.除的运算次数以提高运算速度 5. 改进:动态调整滤波系数 动态调整滤波例程 本文整理自网络,参 ...

  5. 用理想低通滤波器在频率域实现低通滤波、高通滤波。

    文章目录 理想低通滤波 理想高通滤波 总结: 在matlab中,处理频域图像的过程大概为: 1.对图像进行傅里叶变换. 2.为了方便构建滤波器,将频域图像中心化(即将0频显示在图像中心) 3.设计所需 ...

  6. 数字图像处理学习笔记5:频率域滤波1(傅里叶频谱图,低通滤波-平滑,高通滤波-锐化)

    文章目录 前言 一.傅里叶变换:傅里叶频谱图 二.低通滤波 1.理想低通滤波 2.布特沃斯低通滤波 3.高斯低通滤波 4.小结 三.高通滤波 1.理想高通滤波 2.布特沃斯高通滤波 3.高斯高通滤波 ...

  7. 【滤波器学习笔记】一阶RC低通滤波

    一阶RC低通滤波 从模拟到数字 本文整理自网络.<匠人手记>等书籍文章 模拟电路低通滤波时域.频域 软件低通滤波 典型电路 图1 典型RC电路 直流.交流.脉冲信号都可以用它 时域 电容电 ...

  8. 一阶低通滤波介绍及simulink模型

    一阶低通滤波 背景介绍 低通滤波是一种过滤方式,规定低频信号能正常通过,而超过设定临界值的高频信号则被阻隔.减弱.低通滤波可以简单的认为:设定一个频率点,当信号频率高于这个频率时不能通过,在数字信号中 ...

  9. 单片机ADC采样算法----一阶低通滤波

    关于低通滤波,先看一下百度百科上的定义. 算法实现的公式如下:  y(n) = q*x(n) + (1-q)*y(n-1)     其中Y(n)为输出,x(n)为输入,y(n-1)为上一次输出值,其中 ...

最新文章

  1. 期未课程设计:基于SSM的产品销售管理系统
  2. 中国非动物胶市场来产销需求及发展潜力研究报告2022版
  3. 中报亮眼,阅文的增长“飞轮”是如何练成的?
  4. hdu 5491 The Next(数学模拟)
  5. 不通过寄存器确定数据的长度 + 案例
  6. leetcode -- 129. 求根到叶子节点数字之和
  7. 借助码云快速安装 golang.org/x/lint/golint 和 golang.org/x/tools/ 等依赖
  8. [BZOJ2655] calc
  9. 动态顺序图可视化控件
  10. UVA10407 Simple division【同余+一阶差分】
  11. 有效软件测试 - 50条建议 - 需求阶段
  12. Python:利用xlwt设置Excel单元格格式
  13. [组合计数] BZOJ 3505 [Cqoi2014]数三角形
  14. hping3的编译和安装
  15. java 微信公众号之授权登录
  16. 遭遇Win32.Loader.c,Trojan.PSW.Win32.GameOnline,Trojan.PSW.Win32.AskTao等1
  17. 2021-2027全球与中国可持续性蛋白质市场现状及未来发展趋势
  18. java 甘特图_Java报表软件--甘特图(Gantt chart)深度解析
  19. 普元与达梦的多数据源配置
  20. 2022年5月15日小记

热门文章

  1. Android----项目集合
  2. Upgit安装与使用
  3. 谷歌中国全球首发Google音乐
  4. 2w字Python语法大全
  5. i5 11260h和i5 10200h差距 i510200h和 酷睿i511260h对比
  6. 安装JDK时为什么要填写两次地址?
  7. 《千兆宽带网络商业应用场景白皮书》(英文版)
  8. 计算机绘画社团活动教案,创意电脑绘画社团_
  9. 2019寒冬中的深圳前端面试分享(附笔试题)。
  10. 云之家群组机器人如何定时自动发消息?