实现了这辈子的第一个滤波器,而学习《信号与系统》这门课,已经是5年前的事情了。

这次实现的是一个最最简单的“低通滤波器”,所谓低通滤波器,就是让低频通过,阻住高频。更简单的说,就是消除毛刺。。。

滤波器算法如下:

float lowpass = 0.0f;

private float low_pass (float input)

{

lowpass = input * 0.1f + lowpass * 0.9f;

return lowpass;

}

简单得不能再简单,不过,真心很好用。。。

为什么滤波器理论中会有“频率”这个概念呢?明明不就是一个带有毛刺的,随着时间变化的高高低低的曲线么,哪里有什么频率概念?

根据高等数学理论,任何一个满足一定条件的信号,都可以被看成是由无限个正弦波叠加而成。当在某个dT时间内信号的变化十分剧烈,其分解得到的正弦波中高频率为主要成分,通过低通滤波器可以过滤掉高频部分,剩余没有被过滤掉的部分重新叠加成一个信号的时候,这个信号很微弱(主分量都被过滤掉了),因此,低通滤波器使得这个剧烈的变化变得“很不剧烈”。

那么,如何设计滤波器才能使得“低通”呢?下面这个算法,符合频域上的低通概念吗?还是一种山寨货而已?

lowpass = input* 0.1f + lowpass * 0.9f;

当input >> lowpass的时候,计算结果会偏离lowpass很远,例如:

lowpassorg = 10

input = 1000

那么

lowpassnew =1000 * 0.1 + 10 * 0.9 = 109

显然,lowpassnew >>lowpassorg

因此,这个滤波器并不能很好地过滤掉突然的、极大的干扰信号。为什么呢?两种原因:一种是这个滤波器根本就不是低通滤波器,是个山寨货。一种是这种突发的极大的干扰信号进行分解后,其低频部分依然“很显著”,足以拉高输出结果。通过调整因子0.1,将其调整为0.0001,可以更好地消除这种突发干扰,但是带来的副作用则是让滤波器变得非常不灵敏。放在频域上理解,上述因子的调整使得滤波器的带宽变窄,可以通过的低频成分进一步减小。

求下述公式的频率表示:

lowpass = input* 0.1f + lowpass * 0.9f;

请懂得的同学留言;)

分享到:

2012-07-09 20:01

浏览 2356

评论

低通滤波器 java_低通滤波器 - java开发指南博客 【转载】 - ITeye博客相关推荐

  1. [翻译]现代java开发指南 第二部分

    现代java开发指南 第二部分 第二部分:部署.监控 & 管理,性能分析和基准测试 第一部分,第二部分,第三部分 =================== 欢迎来到现代 Java 开发指南第二部 ...

  2. [翻译]现代java开发指南 第一部分

    现代java开发指南 第一部分 第一部分:Java已不是你父亲那一代的样子 第一部分,第二部分,第三部分 =================== 与历史上任何其他的语言相比,这里要排除c语言和cobo ...

  3. java开发指南_Java 12新功能完整指南

    java开发指南 六个月飞得如此之快,是时候再次仔细研究一下即将发布的新JDK版本. 让我们满足Java 12及其向开发人员介绍的功能. 自Oracle推出加速六个月的发布节奏以来已经有一段时间了,要 ...

  4. 开发指南:BUMO 智能合约 Java 开发指南

    BUMO 智能合约 Java 开发指南 概述 合约是一段JavaScript代码,标准(ECMAScript as specified in ECMA-262).合约的初始化函数是init, 执行的入 ...

  5. 开发指南:BUMO 存证 JAVA 开发指南

    BUMO 存证 JAVA 开发指南 BUMO开发概述 BUMO是新一代商用级基础公链.通过创新的共识算法(BU Firework).主链-子链多链结构(BU Orbits).主链-主链跨链结构(BU ...

  6. 开发指南:BUMO 资产发行 JAVA 开发指南

    BUMO 资产发行 JAVA 开发指南 场景描述 某资方在buchain上发行资产代码为GLA.名称为Global.总发行量为10亿的数字资产,具体信息如下: 字段 是否必填 示例 描述 name 是 ...

  7. VS Code Java 开发指南!

    本文是一份提供给 Java 开发人员在 2019 年使用 Visual Studio Code 的终极指南,帮助开发者使用 VS Code 进行开发.运行.调试和部署其应用程序. 作者 | Bruno ...

  8. Java开发多、单商户淘宝客+任务系统cps系统源码小程序app

    Java开发的多商户淘宝客.任务cps系统源码淘宝客+美团外卖+饿了么外卖+多麦CPS+京东+拼多多+多商户自营+任务墙+本地生活模块+抖音+唯品会+文娱充值+话费充值小程序app主要包括用户端.商家 ...

  9. alibaba java_阿里巴巴JAVA开发手册最新版插件Alibaba Java Coding Guidelines安装及使用...

    阿里巴巴JAVA开发手册最新版插件Alibaba Java Coding Guidelines安装及使用 发布时间:2018-04-20 14:40, 浏览次数:887 , 标签: JAVA Alib ...

  10. 地下城英雄 java_用java开发dota英雄最华丽的技能(实例讲解)

    爱java 爱dota,突发奇想想用java开发dota操作最华丽的英雄之一的卡尔的技能,因为本人系小白,代码不足的地方还请包涵,有同样爱好的同学欢迎一起研究学习. 先把我的代码呈上 import j ...

最新文章

  1. html5,增加flash插件
  2. JAVA_Java常用核心包(概念)
  3. 【深度学习入门到精通系列】医学图像预处理—伽马变化代码
  4. python 事务操作_Python实现完整的事务操作示例
  5. 补贴背后的商业竞争,你真的懂吗?
  6. HTML设计显示表单
  7. Rapidmind计算库性能测试
  8. Spark SQL 编程API入门系列之SparkSQL数据源
  9. 揭秘苹果“地下黑工厂”:临时工薪资无保障,男厕所门口排长龙
  10. html和css实现导航条
  11. js刻度尺插件_html5 canvas+js刻度尺代码
  12. Android Studio 生成APK签名证书
  13. Win11彻底卸载WSL2系统(去除导航窗格Linux图标)
  14. JavaScript 入门
  15. oracle amm和asmm,AMM与ASMM
  16. Android气泡弹幕,Android弹幕实现:基于B站弹幕开源系统(7)QQ、微信聊天气泡样式的弹幕...
  17. Grub2 引导 WIM / Slax Linux (BIOS UEFI)
  18. 每日思维风暴(子串分值、子串分值和)
  19. 提取文件名-Java
  20. 如何成为一个优秀的营销人

热门文章

  1. 【java】System成员输入输出功能out、in、err
  2. 第二百六十三天 how can I 坚持
  3. Topcoder Asia Programming Competition
  4. Oracle 日期时间函数大全
  5. C++ 线程同步 (学习笔记)
  6. 现在的计算机电源都要经过,电脑待机后必须关闭电源才能开启
  7. python中用于生成数字序列的函数_Python中的生成器?
  8. python人工智能是什么意思_人工智能和python有什么关系?
  9. C4D立体数字设计灵感,适合庆典应用|这波用得6啊!
  10. 电商促销海报设计技巧!