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

2024-01-31 08:18

本文主要是介绍[DSP] Butterworth (巴特沃斯)数字滤波器设计参考,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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滤波器系数的设计方法,具体的算法原理推导可以参考陈佩青《数字信号处理教程》一书,此处只给出工程上可以应用的结论。

背景介绍:

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


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

 

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

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


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

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


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

 

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

低通滤波器:


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

高通滤波器:

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

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



参考设计:

1. 1阶Butterworth LPF设计


因此,在确定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是完全一致的。



2. 2阶Butterworth LPF 设计


例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的结果相当:


3. 1阶Butterworth HPF设计


例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计算结果相当:


4. 2阶Butterworth HPF设计


例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计算结果相当:


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


这篇关于[DSP] Butterworth (巴特沃斯)数字滤波器设计参考的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/663112

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

usaco 1.2 Name That Number(数字字母转化)

巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字 需要注意的是重新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’ 详见代码: /*ID: who jayLANG: C++TASK: namenum*/#include<stdio.h>#include<string.h>int main(){FILE *fin = fopen (

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在

基于SpringBoot的宠物服务系统+uniapp小程序+LW参考示例

系列文章目录 1.基于SSM的洗衣房管理系统+原生微信小程序+LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统+LW参考示例 3.基于SpringBoot+Vue的企业人事管理系统+LW参考示例 4.基于SSM的高校实验室管理系统+LW参考示例 5.基于SpringBoot的二手数码回收系统+原生微信小程序+LW参考示例 6.基于SSM的民宿预订管理系统+LW参考示例 7.基于

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不