数字 一阶低通滤波器 详细分析

作者:冰三点水

原创内容,转帖请注明出处: http://blog.csdn.net/u013608300/article/details/78814693

微信公众号:工程师看海

事件的起因是下图1,朋友偶然说到一阶低通滤波器,借此来详细介绍一阶低通滤波器的原理,并附上matlab仿真程序代码。图1中的一阶低通数字滤波器的公式为Eq(1):

y(n) = q*x(n) + (1-q)*y(n-1)    Eq(1)

其中,y(n)表示当前的输出,x(n)表示当前的输入,y(n-1)表示上一次的输出(图1中的符号不标准,因为一般时域用小写,频域或Z域用大写)。Eq(1)为差分方程,在分析离散系统时常用差分方程,而求解差分方程通常在z域实现,z变换使问题分析变得简单。这是一个IIR滤波器,那什么是FIR滤波器?什么是IIR滤波器呢?FIR滤波器是有限输入有限输出,换句话说当输入为0时输出也为0,系统无反馈;而IIR滤波器在输入为0时也可以有输出,由于增加了反馈回路,系统有不稳定发散的可能,因此IIR的分析要比FIR复杂一点。

图1

我们将公式Eq(1)进行z变换得到z域传递函数。见Eq(2),注意其中z域的大写,我们要符合规范。根据Eq(2),系统具有一个极点z=1-q和一个零点z=0,我们这里关心的是极点。当极点处于z域单位圆内时,系统是稳定的,否则系统为不稳定系统会发散。单位圆是个重要的概念,z域的单位圆等同于s域的虚轴向左卷绕成z域的单位圆(s域中极点处于虚轴左边系统稳定)。分析z域的幅频响应(IIR的相位非线性这里不表)是在单位圆上进行的,z=r*exp(jw),单位圆上模值为1,所以z=exp(jw)(e的j*w次幂),根据欧拉公式

exp(jw) = cos(w)+j*sin(w),我们得到Eq(3)。我们可以借助matlab来方便的求出H(w)的幅频响应,后面会给出代码,我们先来看结果见图2.

当q和采样时间的参数和图1保持一致时(q=0.0565 fs=3.333k即300us),幅频响应见图2,在横坐标为30hz时的幅值为0.708约等于0.707(-3dB点),我们简单分析一下图2,一阶低通滤波器的通带。。。。额。。图中看着比较窄,而且不平坦和理想一阶低通滤波器相比差距明显,但是对于高频干扰抑制效果明显,而且简单易实现,很多单片机应用中就会使用此滤波器。图3为matlab代码,具体c语言代码实现数字一阶低通滤波器网上很多,这里不贴,matlab代码链接为:http://download.csdn.net/download/u013608300/10160717

图2

图3

下面是对加躁的正弦信号进行仿真的部分。

图4是仿真使用的代码

图4 时域仿真代码

图5是仿真的时域结果,其中黑色线是理想信号,红色线是带躁信号,蓝色线是去噪后的信号,由于使用一阶低通滤波器后的信号波形和理想波形比较接近,所以图5中识别的不是很清晰。图6是结果局部示意图,这样可以清晰地看到理想信号、滤波前的带躁信号和滤波后的“干净”信号的时域波形情况。

图5 理想信号、带躁信号、去噪信号

图6 理想信号、带躁信号、去噪信号

不足之处请指正,在下当虚心接受。

你虽然跑得比别人慢,但你可以跑得比别人远。——冰三点水

相关阅读

华为海思软硬件开发资料

电容6大特性参数,你知道几个?

三端子电容好在哪?

LDO基本原理(一)

于天津

数字 一阶低通滤波器 详细分析 冰三点水相关推荐

  1. 数字 一阶低通滤波器 详细分析

    事件的起因是下图1,朋友偶然说到一阶低通滤波器,借此来详细介绍一阶低通滤波器的原理,并附上matlab仿真程序代码.图1中的一阶低通数字滤波器的公式为Eq(1): y(n) = q*x(n) + (1 ...

  2. 数字一阶低通滤波器simulink仿真

    数字一阶低通滤波器simulink仿真 原理 程序所用公式 滤波系数计算方法 仿真 根据公式搭建 使用simulink自带模型 原理 程序所用公式 y(n) = q*x(n) + (1-q)*y(n- ...

  3. 零阶保持器(ZOH)与一阶低通滤波器频率特性分析

    1.零阶保持器(ZOH)频率特性分析 零阶保持器传递函数: 画 Bode 图进行频率分析: s=tf('s'); T=0.0002; %采样周期0.0002s G=(1-exp(-T*s))/s; b ...

  4. 【数字信号处理】序列傅里叶变换 ( 序列傅里叶变换定义详细分析 | 证明单位复指数序列正交完备性 | 序列存在傅里叶变换的性质 | 序列绝对可和 → 序列傅里叶变换一定存在 )

    文章目录 一.序列傅里叶变换定义详细分析 二.证明单位复指数序列正交完备性 三.序列存在傅里叶变换的性质 一.序列傅里叶变换定义详细分析 序列傅里叶变换 SFT , 英文全称 " Seque ...

  5. 一阶低通滤波器的数字实现

    关于一阶低通滤波器这里就不再赘述了,讲的帖子也挺多,这里记录一下一阶低通滤波器的传递函数与数字实现之间的系数转换. 一阶低通滤波器的传递函数常见为: 其中Tf为RC,并且有: 其中fwres为截止频率 ...

  6. 一阶低通滤波器的传递函数分析

    一.无源一阶低通滤波器分析 由图可以知道,输入信号为Vi,输出函数为Vo, 电阻R的阻抗为R,C电容C阻抗为1/jwC,Vo实际上是Vi在电容C上的分压,则有: 则有: 将jwS变换得到: 再令Vo/ ...

  7. 一阶电路误差分析_RC有源低通滤波器的一阶二阶原理分析及其推导!

    定义 低通滤波器:允许低于一定值的低频信号无衰减地通过,高于一定值的信号按不同程度地被衰减.阻挡. 有源低通滤波器是由有源元件和一部分无源元件(电阻.电容.电感)共同组成的低通滤波器.有源元件指的是必 ...

  8. x264 代码重点详解 详细分析

    eg mplayer x264 代码重点详解 详细分析 分类: ffmpeg 2012-02-06 09:19 4229人阅读 评论(1) 收藏 举报 h.264codecflv优化initializ ...

  9. 一阶低通滤波器在stm32中的简单应用

    首先来看一个最简单的一阶低通滤波器的电路模型: 不难推出它的传递函数: Tf与滤波器截止频率有关,但是实际程序中会变成一个参数,此时我们可以忽略它. 然而!我们的stm32接收到的信号是一串序列(离散 ...

最新文章

  1. Java网络编程基础(七)— RMI分布式网络编程
  2. JavaBean技术
  3. 1049 Counting Ones (30 分)【难度: 难 / 知识点: 分治 / DP】
  4. Python虚拟环境virtualenv的安装与使用详解(转)
  5. EV3 直接命令 - 第 4 课 用两个驱动轮精确地移动小车
  6. Linux应用程序和驱动程序如何完成交互,应用程序和驱动的简易交互方式的实现...
  7. sofia-sip帮助文档
  8. cgroup的学习(一)——what cgroup?
  9. nyoj107hdu A Famous ICPC Team
  10. html导航折叠与展开,html展开收起
  11. 音频特征(2):时域图、频谱图、语谱图(时频谱图)
  12. Hearbeat + Nginx 安装配置
  13. 怎样计算两个文本的Rougel,Bleu评价指标
  14. 《上瘾:让用户养成使用习惯的四大产品逻辑》读书笔记
  15. 用 Python selenium爬取股票新闻并存入mysql数据库中带翻页功能demo可下载
  16. git如何安装aur_Linux┊一个好用的AUR工具yaourt | 简单.生活
  17. 大会员 python
  18. CANoe从入门到精通“保姆级”教程(三)- 经典范例解读
  19. 夕阳无限好 只是近黄昏
  20. .Net 根据年份计算周次和起止日期

热门文章

  1. python中的range()函数详解
  2. 这种情况,你会不会离职?
  3. 微机原理——8086中断类型以及中断向量表、中断响应、中断返回
  4. 第十届中国云计算大会成功举办,至顶网总编主持高峰对话
  5. 【Ubuntu安装git与git clone远程仓库】
  6. Python Matplotlib散点图
  7. python常用库安装网址
  8. 基于ROS的qbo机器人
  9. 迁移学习在乳腺癌检测中的应用
  10. 国家强制性产品认证实施规则汇总(更新日期:2020年12月)