双极点低通滤波器

  • 1 描述

1 描述

最近看到apollo的滤波器代码,猛一看没整明白,因此就想推导一下公式。代码如下

void LpfCoefficients(const double ts, const double cutoff_freq,std::vector<double> *denominators,std::vector<double> *numerators) {denominators->clear();numerators->clear();denominators->reserve(3);numerators->reserve(3);double wa = 2.0 * M_PI * cutoff_freq;  // Analog frequency in rad/sdouble alpha = wa * ts / 2.0;          // tan(Wd/2), Wd is discrete frequencydouble alpha_sqr = alpha * alpha;double tmp_term = std::sqrt(2.0) * alpha + alpha_sqr;double gain = alpha_sqr / (1.0 + tmp_term);denominators->push_back(1.0);denominators->push_back(2.0 * (alpha_sqr - 1.0) / (1.0 + tmp_term));denominators->push_back((1.0 - std::sqrt(2.0) * alpha + alpha_sqr) /(1.0 + tmp_term));numerators->push_back(gain);numerators->push_back(2.0 * gain);numerators->push_back(gain);
}

从代码上可以看出来,应该是采用的是二阶的巴特沃斯滤波器,下面进行一下推导。
巴特沃斯二阶模拟滤波器传递函数
H(s)=wN2s2+2∗0.707∗wN∗s+wN2(1)H(s) = \frac{w^2_N}{s^2+2*0.707*w_N*s+w^2_N} \tag{1} H(s)=s2+2∗0.707∗wN​∗s+wN2​wN2​​(1)
公式中0.707为二阶巴特沃斯滤波器的阻尼比系数
采用双线性变换,T为采样周期
s=2T1−z−11+z−1(2)s=\frac{2}{T}\frac{1-z^{-1}}{1+z^{-1}} \tag{2} s=T2​1+z−11−z−1​(2)
将公式(2)带入(1)中,令
α=TwN2\alpha = \frac{Tw_N}{2} α=2TwN​​
可得
H(z)=α2(1+2z−1+z−2)1+2α+α21+2(α2−1)1+2α+α2z−1+1−2α+α21+2α+α2z−2H(z)=\frac{\frac{\alpha^2(1+2z^{-1}+z^{-2})}{1+\sqrt{2}\alpha+\alpha^2}}{1+\frac{2(\alpha^2-1)}{1+\sqrt{2}\alpha+\alpha^2}z^{-1}+\frac{1-\sqrt{2}\alpha+\alpha^2}{1+\sqrt{2}\alpha+\alpha^2}z^{-2}} H(z)=1+1+2​α+α22(α2−1)​z−1+1+2​α+α21−2​α+α2​z−21+2​α+α2α2(1+2z−1+z−2)​​

参考:控制系统设计指南(Control System Design Guide --Fourth Edition)【M】,page113

数字双极点低通滤波器-二阶巴特沃斯滤波器相关推荐

  1. 二阶巴特沃斯滤波器代码

    巴特沃斯代码 巴特沃斯滤波器初始化 Butter_LP_float RPY_Acc_Filter[3]; void Butter_init( Butter_LP_float* filter , flo ...

  2. 设计一个三阶巴特沃斯滤波器_巴特沃斯滤波器matlab实现

    巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零. 在振幅的对数对角频率的波特图上,从某一边界角频率开始,振幅随着角频率的增加而逐步减少,趋向负无穷大. 一 ...

  3. matlab模拟巴特沃斯滤波器设计,巴特沃斯滤波器matlab实现

    描述 巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零. 在振幅的对数对角频率的波特图上,从某一边界角频率开始,振幅随着角频率的增加而逐步减少,趋向负无穷大 ...

  4. 设计一个三阶巴特沃斯滤波器_二、三阶巴特沃斯滤波器电路设计—电路精选(47)...

    巴特沃斯滤波器是电子滤波器的一种.这种滤波器最先由英国工程师斯替芬·巴特沃斯(Stephen Butterworth)在1930年发表在英国<无线电工程>期刊的一篇论文中提出的.巴特沃斯滤 ...

  5. 巴特沃斯滤波器应用场合_巴特沃斯数字低通滤波器设计及应用

    龙源期刊网 http://www.qikan.com.cn 巴特沃斯数字低通滤波器设计及应用 作者:汪其锐 王桂华 王永军 来源:<山东工业技术> 2016 年第 24 期 摘 要:现实生 ...

  6. MATLAB_数字信号处理_模拟滤波器_设计巴特沃斯滤波器

    简介 巴特沃斯滤波器-百度百科 巴特沃斯滤波器-维基百科 简介:巴特沃斯滤波器是一种模拟滤波器,它在频率响应方面具有特殊的属性.它被设计为具有均匀的幅度响应,即在通带内,它对所有频率的增益是相等的,而 ...

  7. 数字信号处理——巴特沃斯滤波器设计

    设计思路 这里采用间接法设计数字滤波器(先设计模拟滤波器再设计数字滤波器) 滤波器理解: 1.数字滤波器可以用H(z),h(n)or系统差分方程来表示,对应的就是一个系统,信号输入该系统即可改变其所含 ...

  8. 常用模拟低通滤波器的设计~经典 IIR 滤波器之巴特沃斯滤波器

    目录 常用模拟低通滤波器的设计--巴特沃斯(Butterworth)滤波器 1.确定系统函数的极点 2.巴特沃斯(Butterworth)滤波器 2.1.buttap 函数 2.2.buttord 函 ...

  9. 数字信号处理公式变程序(四)——巴特沃斯滤波器(下)

    之前已经讲过巴特沃斯滤波器的基础知识和数字滤波器求系统函数的代码实现,本节讲如何使用数字滤波器的系统函数实现对信号的滤波. 注:可能会有不足或者理解偏差的地方,路过的高人请不吝赐教. OK,开始! = ...

  10. python实现陷波滤波器、低通滤波器、高斯滤波器、巴特沃斯滤波器

    在一幅图像中,其低频成分对应者图像变化缓慢的部分,对应着图像大致的相貌和轮廓,而其高频成分则对应着图像变化剧烈的部分,对应着图像的细节(图像的噪声也属于高频成分). 滤波器 低通滤波器 高通滤波器 陷 ...

最新文章

  1. 克莱门特公司在俄罗斯一个数据中心安装其新型冷却系统
  2. 16.Hadoop架构再探讨第2部分
  3. UINavigationController
  4. 计算机电缆 耐火,耐火计算机电缆ZR-NH-DJVVP
  5. 大明王朝简史,笑疯了哈哈哈哈哈哈……
  6. 简单粗暴的移动端页面开发技能
  7. 毕设日志——Linux中相对路径和文件的移动和常用指令
  8. get请求和post请求乱码问题
  9. 2014年3月新鲜出炉的最佳 JavaScript 工具库
  10. [Java] 蓝桥杯PREV-8 历届试题 买不到的数目
  11. 苹果Mac环境如何配置定时任务?
  12. 377.组合总和IV
  13. 赵容弼(Cho Yong Pil) -《30周年纪念专辑》
  14. js实现word生成书签_javascript下用ActiveXObject控件替换word书签,将内容导出到word后打印...
  15. R语言使用median函数计算dataframe数据中特定数据列的中位数、如果包含NA值则需要设置na.rm参数为TRUE
  16. php 模拟登录163邮箱,PHP模拟登陆163邮箱发邮件及获取通讯录列表的方
  17. Web前端--HTML+CSS+JavaScript酷炫游戏动漫网页设计
  18. n维空间被m个n-1维的“刀”最多切出多少块
  19. 新浪微博下拉菜单制作(DOM小练习)
  20. wfp 禁用ip_WFP网络过滤驱动——限制网站访问

热门文章

  1. abb机器人指令手册_ABB机器人加速度设置
  2. 自抗扰控制器七-二阶 LADRC-PLL 结构设计
  3. 计算机硕士工资一览表 08年各大IT公司薪水行
  4. canvas学习之-七色板
  5. 什么是DDD(领域驱动设计)?
  6. MariaDB安装报1067错误解决方式
  7. win10不自带扫雷,想玩扫雷怎么办?自己造一个扫雷
  8. tcflush()用法 以及 Termios 介绍
  9. 使用ETest实现汽车ECU的HIL测试
  10. 各省互联网普及率数据集(1997-2018年)