[DSP] Butterworth (巴特沃斯)数字滤波器设计参考

[DSP] Butterworth (巴特沃斯)数字滤波器设计参考Butterworth nbsp 巴特沃斯 滤波器设计参考在嵌入式音频产品开发过程中经常会到 LPF LowPassFilte 低通滤波器 和 HPF HighPassFilt 高通滤波器 一般情况下都是离线用工具 如 Matlab 设计好滤波器的参数 FilterCoeffi 再应用到产品中去 但有些状况下需要用户自己根据需求来实时 Real time 调整 FilterFreque 滤波器频率响应 这种情形下就需要在嵌入式系统中实时根据客户的设定需求来产

Butterworth (巴特沃斯)滤波器设计参考

— By Water  



在嵌入式音频产品开发过程中经常会到LPF(Low Pass Filter 低通滤波器)和HPF(High Pass Filter 高通滤波器),一般情况下都是离线用工具(如: Matlab)设计好滤波器的参数(Filter Coefficients)再应用到产品中去。但有些状况下需要用户自己根据需求来实时(Real-time)调整Filter Frequency Response (滤波器频率响应),这种情形下就需要在嵌入式系统中实时根据客户的设定需求来产生相应的Filter Coefficients。

下文就汇总出了N阶IIR LPF & HPF Butterworth滤波器系数的设计方法,具体的算法原理推导可以参考陈佩青《数字信号处理教程》一书,此处只给出工程上可以应用的结论。

背景介绍:

归一化的巴特沃斯滤波器系统函数一般形式:

[DSP] Butterworth (巴特沃斯)数字滤波器设计参考

(Note: 参考 陈佩青《数字信号处理教程》第二版266页(6-108)表达式)

 

一般情况下会希望保持通带增益为0dB,因此设定d0 = a0。

在a0 = aN = 1 情况下得到如下归一化的巴特沃斯多项式:

[DSP] Butterworth (巴特沃斯)数字滤波器设计参考

(Note: 参考 维基百科 “巴特沃斯滤波器”)

由此得到 d0=a0=aN=1情况下的Butterworth多项式展开的系数表:

[DSP] Butterworth (巴特沃斯)数字滤波器设计参考

(Note: 参考 陈佩青《数字信号处理教程》第二版266页 表6-4)

 

上面的表达式是s域的表达式,下面是变化到z域的方法。

低通滤波器:

[DSP] Butterworth (巴特沃斯)数字滤波器设计参考

采样频率fs, -3dB频率点 fc

高通滤波器:

[DSP] Butterworth (巴特沃斯)数字滤波器设计参考

(Note: 参考 陈佩青《数字信号处理教程》第二版291页 表6-8)

其他带通、带阻滤波器频率变换式参考表6-8 (下图)

[DSP] Butterworth (巴特沃斯)数字滤波器设计参考



参考设计:

1. 1阶Butterworth LPF设计

[DSP] Butterworth (巴特沃斯)数字滤波器设计参考

因此,在确定fc、fs后,1阶的Butterworth滤波器系数就能按照上式计算出来了。如果嵌入式系统没有数据函数库,那么tan的计算方式可以换成tan(x) = sin(x)/cos(x), 加入sin/cos table后就能计算出sin/cos值了。具体Fixed point实现在后续文章再表。

例1:设定fs=44100Hz, fc=1000Hz 计算1阶Butterworth LPF filter coefficients

C1 =tan(2*pi*1000/44100/2) =  0.071358680866949307399178122527764

带入上式计算出1阶Butterworth LPF filter coefficients:

B=[0.066605780250, 0.066605780250, 0]

A=[1, -0.866788439500, 0]

与下图中MatLab获得的Filter Coefficients是完全一致的。

[DSP] Butterworth (巴特沃斯)数字滤波器设计参考



2. 2阶Butterworth LPF 设计

[DSP] Butterworth (巴特沃斯)数字滤波器设计参考

例2:设定fs=44100Hz, fc=1000Hz 计算2阶Butterworth LPF filter coefficients

C1 = tan(2*pi*1000/44100/2) =  0.071358680867

G = 0.904152198106

带入上式计算得2阶Butterworth LPF Filter Coefficients

B=[0.004603998476  0.009207996951  0.004603998476]

A=[1 -1.799096409760  0.817512403663]

与Matlab的结果相当:

[DSP] Butterworth (巴特沃斯)数字滤波器设计参考

3. 1阶Butterworth HPF设计

[DSP] Butterworth (巴特沃斯)数字滤波器设计参考

例3:设定fs=44100Hz, fc=1000Hz 计算1阶Butterworth HPF filter coefficients

C1 = tan(2*pi*1000/44100/2) =  0.071358680867

G = 0.93339421975

带入上式计算得Filter Coefficients:

B = [0.933394219750  -0.933394219750  0]

A = [1 -0.866788439500  0]

与Matlab计算结果相当:

[DSP] Butterworth (巴特沃斯)数字滤波器设计参考

4. 2阶Butterworth HPF设计

[DSP] Butterworth (巴特沃斯)数字滤波器设计参考

例4:设定fs=44100Hz, fc=1000Hz 计算2阶Butterworth HPF filter coefficients

C1 = tan(2*pi*1000/44100/2) =  0.071358680867

G = 0.904152203356

带入上式计算得Filter Coefficients:

B = [0.904152203356  -1.808304406712  0.904152203]

A = [1 -1.799096409760  0.817510981662 ]

与Matlab计算结果相当:

[DSP] Butterworth (巴特沃斯)数字滤波器设计参考

Butterworth 1~2 阶 LPF & HPF Filter Coefficients以及制作成Excel表格分享在:

http://pan.baidu.com/s/1hqw2mby

可以下载使用,选择对应的类型,设定相应的fs & fc就能自动计算出Filter Coefficients。

参考文献:

1. 陈佩青 《数字信号处理教程》第二版

2. 维基百科 “巴特沃斯滤波器”

http://zh.wikipedia.org/wiki/%E5%B7%B4%E7%89%B9%E6%B2%83%E6%96%AF%E6%BB%A4%E6%B3%A2%E5%99%A8

该文档完整的PDF档案文章可以在如下地址下载:

http://pan.baidu.com/s/1ntLu8GD






版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225721.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午8:41
下一篇 2026年3月17日 上午8:41


相关推荐

  • 分辨率_分辨率越高越好?手机屏幕分辨率多少才合适?现在终于搞清楚了[通俗易懂]

    分辨率_分辨率越高越好?手机屏幕分辨率多少才合适?现在终于搞清楚了[通俗易懂]最近出了很多新机,很多人在购买前会详细查看手机参数,其中“分辨率”这一项让不少人一头雾水,究竟手机分辨率是什么?对我们的使用体验有什么影响?是不是分辨率越高越好?​教授估计这些问题让很多对手机了解不多的朋友产生困扰,所以今天就来为大家科普科普~一、什么是手机屏幕分辨率?图像的显示都是由许多像素点排列组成的,手机屏幕分辨率就代表着像素个数,当用手机屏幕中横向的像素点与竖向的像素点相乘的时候,再换算出…

    2022年4月19日
    132
  • 80×86汇编小站站长简介-2014年08月23日[通俗易懂]

    80×86汇编小站站长简介-2014年08月23日[通俗易懂][人生格言]1]一生都用头脑而不是情绪解决问题2]只有偏执狂才会成功3]在最困难时都要保持一份幽默感4]吾生也有涯,而知也无涯,以有涯随无涯,殆已[简历]我的生日:1981.XX.XX生理特征:男婚姻状况:已婚个人站点:http://www.x86asm.comEmail  :pliceman_110@163.comQQ

    2022年10月13日
    4
  • 面向对象设计

    面向对象设计

    2021年11月28日
    56
  • 量子搜索算法(Grover Algorithm)

    量子搜索算法(Grover Algorithm)GroverAlgori 一 背景介绍二 具体内涵一 背景介绍遍历搜寻问题的任务是从一个海量元素的无序集合中 找到满足某种要求的元素 要验证给定元素是否满足要求很容易 但反过来查找这些合乎要求的元素则很费事 因为这些元素并没有按要求进行有序的排列 并且数量又很大 在经典算法中 只能按逐个元素试下去 这也正是 遍历搜寻 这一名称的由来 量子计算机比传统计算机具有的众多优势之一是其优越的速度搜索数据库 Grover 的算法证明了这种能力 该算法可以二次加速非结构化搜索问题 但其用途远不止于

    2026年3月17日
    2
  • 走进webpack(3)– 小结「建议收藏」

    写这一系列的文章,本意是想要梳理一下自己凌乱的webpack知识,只是使用过vue-cli,修改过其中的一部分代码,但是对于一个简单项目从0开始搭建webpack的流程和其中的依赖并不是十分清楚。所以

    2022年3月25日
    43
  • Maven 中央仓库地址及配置

    Maven 中央仓库地址及配置Maven 中央仓库地址 1 http mvnrepositor com 推荐 配置步骤 1 首先配置 Maven 的 setting xml 文件中的 mirror 节点 配置为你的仓库地址 这个文件可以分为全局的和局部的 全局的 setting xml 位于 M2 HOME conf 局部的文件可以自定义文件位置 例如 d repository setting xml 配置如下

    2025年7月20日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号