IIR peaking filter 探秘

2023-10-22 21:30
文章标签 filter 探秘 iir peaking

本文主要是介绍IIR peaking filter 探秘,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

IIR peaking filter 探秘

  • 引言
  • 带通变peaking
      • 第一步:给带通增加一个增益控制旋钮(系数)
      • 第二步:并联一个直通信号 y(n)= x(n)
  • 双线性变换到数字域
  • 频域分析
  • 结论

引言

一阶滤波器虽好,但是只能压一头,如果需要带通/带阻/peaking/notch一类的IIR滤波器,多需要高阶来帮忙了,本文先介绍一下peaking 滤波器的基本概念,peaking 滤波器是audio音频的parametric equalizer的基本单元,了解了它,我们就是可以一窥神奇和parametric equalizer了。

带通变peaking

首先我们还是给出前文得到的带通滤波器传递函数:
H ( s ) = B W s s 2 + Ω m 2 + B W s H(s) = \frac{BWs}{s^2+\Omega_m ^2+BWs} H(s)=s2+Ωm2+BWsBWs
带宽和通带中频如下定义
B W = Ω h − Ω l BW= \Omega_h- \Omega_l BW=ΩhΩl
Ω m = Ω h ∗ Ω l \Omega_m=\sqrt{ \Omega_h* \Omega_l} Ωm=ΩhΩl
实际当中客户会提出品质因数Q来限定 Ω m \Omega_m Ωm Ω h Ω l \Omega_h \Omega_l ΩhΩl的关系:
Q = Ω m Ω h − Ω l = Ω m B W Q=\frac{\Omega_m}{ \Omega_h- \Omega_l}=\frac{\Omega_m}{ BW} Q=ΩhΩlΩm=BWΩm
按照两步走的方法导出一个peaking 滤波器:

第一步:给带通增加一个增益控制旋钮(系数)

我们定义一个系数 B 0 B_0 B0,令带通滤波器的通带增益可调。
H ( s ) = B 0 ∗ B W s s 2 + Ω m 2 + B W s H(s) = \frac{ B_0*BWs}{s^2+\Omega_m ^2+BWs} H(s)=s2+Ωm2+BWsB0BWs

第二步:并联一个直通信号 y(n)= x(n)

并联直通信号的结果是传递函数,当s=0时, ∣ H ( s ) ∣ = 1 + B 0 |H(s)|=1+B_0 H(s)=1+B0;当s= ∞ \infty ,|H(s)|=1。截止频率 Ω c \Omega_c Ωc。下面是传递函数的数学表达: H ( s ) = 1 + B 0 ∗ B W s s 2 + Ω m 2 + B W s = s 2 + Ω m 2 + ( 1 + B 0 ) ∗ B W s s 2 + Ω m 2 + B W s H(s) =1+\frac{ B_0*BWs}{s^2+\Omega_m ^2+BWs} =\frac{ s^2+\Omega_m ^2+(1+B_0)*BWs}{s^2+\Omega_m ^2+BWs} H(s)=1+s2+Ωm2+BWsB0BWs=s2+Ωm2+BWss2+Ωm2+(1+B0)BWs
peaking滤波器也可以理解为带有增益的带通滤波器和直联信号的并联形式。那么notch 滤波器可以通过带阻并联直通来实现吗?答案是否定的,其实notch 滤波器和peaking滤波器可以根据 B 0 B_0 B0调整增益来实现。

双线性变换到数字域

数字滤波器的通带中心频率: ω m = 2 π f m f s \omega_m =\frac{2\pi f_m}{f_s} ωm=fs2πfm
预设Q值,我们可以得到带宽:
B W = Ω m Q BW=\frac{\Omega_m}{Q} BW=QΩm
代入先整理一下我们的传递函数: H ( s ) = s 2 + Ω m 2 + ( 1 + B 0 ) ∗ Ω m Q s s 2 + Ω m 2 + Ω m Q s H(s) =\frac{ s^2+\Omega_m ^2+(1+B_0)*\frac{\Omega_m}{Q}s}{s^2+\Omega_m ^2+\frac{\Omega_m}{Q}s} H(s)=s2+Ωm2+QΩmss2+Ωm2+(1+B0)QΩms
H ( s ) = s 2 + Ω m 2 + ( 1 + B 0 ) ∗ Ω m Q s s 2 + Ω m 2 + Ω m Q s H(s) =\frac{ s^2+\Omega_m ^2+(1+B_0)*\frac{\Omega_m}{Q}s}{s^2+\Omega_m ^2+\frac{\Omega_m}{Q}s} H(s)=s2+Ωm2+QΩmss2+Ωm2+(1+B0)QΩms
数字和模拟频率的转换关系: Ω m = ω m T \Omega_m = \frac{\omega_m}{T} Ωm=Tωm
双线性变换一般要求对频率作预畸变处理,采用如下公式: Ω m = 2 T tan ⁡ ω c 2 \Omega_m = \frac{2}{T}\tan{\frac{\omega_c}{2}} Ωm=T2tan2ωc
带入双线性变换公式: s = 2 T 1 − z − 1 1 + z − 1 和 ω m = 2 π f m f s s =\frac{2}{T} \frac{1-z^{-1}}{1+z^{-1}} 和 \omega_m =\frac{2\pi f_m}{f_s} s=T21+z11z1ωm=fs2πfm

直接变换我们得到
H ( s ) = ( 1 + ( f m π f s ) 2 + ( 1 + B 0 ) π f m Q f s ) + 2 ( ( f m π f s ) 2 − 1 ) z − 1 + ( 1 + ( f m π f s ) 2 − ( 1 + B 0 ) π f m Q f s ) z − 2 ( 1 + ( f m π f s ) 2 + π f m Q f s ) + 2 ( ( f m π f s ) 2 − 1 ) z − 1 + ( 1 + ( f m π f s ) 2 − π f m Q f s ) z − 2 = Y ( Z ) X ( Z ) H(s) =\frac{(1+(\frac{f_m\pi}{f_s})^2+\frac{(1+B_0)\pi f_m}{Qf_s})+2((\frac{f_m\pi}{f_s})^2-1)z^{-1}+(1+(\frac{f_m\pi}{f_s})^2-\frac{(1+B_0)\pi f_m}{Qf_s})z^{-2}}{(1+(\frac{f_m\pi}{f_s})^2+\frac{\pi f_m}{Qf_s})+2((\frac{f_m\pi}{f_s})^2-1)z^{-1}+(1+(\frac{f_m\pi}{f_s})^2-\frac{\pi f_m}{Qf_s})z^{-2}}=\frac{Y(Z)}{X(Z)} H(s)=(1+(fsfmπ)2+Qfsπfm)+2((fsfmπ)21)z1+(1+(fsfmπ)2Qfsπfm)z2(1+(fsfmπ)2+Qfs(1+B0)πfm)+2((fsfmπ)21)z1+(1+(fsfmπ)2Qfs(1+B0)πfm)z2=X(Z)Y(Z)
我们令 a = 1 + ( f m π f s ) 2 + π f m Q f s a=1+(\frac{f_m\pi}{f_s})^2+\frac{\pi f_m}{Qf_s} a=1+(fsfmπ)2+Qfsπfm b = π f m f s b=\frac{\pi f_m}{f_s} b=fsπfm,将上式简化如下
H ( s ) = ( 1 + B 0 b Q a ) + 2 ( b 2 − 1 a ) z − 1 + ( 1 − ( 2 + B 0 ) b Q a ) z − 2 1 + 2 ( b 2 − 1 a ) z − 1 + ( 1 − 2 b Q a ) z − 2 H(s) =\frac{(1+\frac{B_0b}{Qa})+2(\frac{b^2-1}{a})z^{-1}+(1-\frac{(2+B_0)b}{Qa})z^{-2}}{1+2(\frac{b^2-1}{a})z^{-1}+(1-\frac{2b}{Qa})z^{-2}} H(s)=1+2(ab21)z1+(1Qa2b)z2(1+QaB0b)+2(ab21)z1+(1Qa(2+B0)b)z2
这个系数计算比之一阶要复杂了非常多,也为频域分析和增益计算增加了难度。这时该方程只需要客户的中心频率和Q值。双线性变换、差分方程略。

频域分析

利用Octave开源的工具,我们设定采样频率 f s f_s fs=48000Hz和频率 f m f_m fm=6000Hz,Q=10, B 0 B_0 B0=0.414 绘出 H ( z ) H(z) H(z)频域响应曲线:
在这里插入图片描述
可以看出 ω m = 2 π f m f s = π 4 \omega_m=2\pi\frac{fm}{fs}=\frac{\pi}{4} ωm=2πfsfm=4π的中心频率被加强了,不过该滤波器的 1 + B 0 = G 1+B_0=G 1+B0=G的条件不成立了,实际增益到了27dB,还有一个就是高低频也没有完全收敛到0dB。

结论

至此,我们二阶的IIR peaking滤波器设计完成,本文只为理解Peaking滤波器的一些基本原理,实际应用中有很多成熟的peaking filter的设计方法可以参考,有兴趣的同学可以自己去寻找和比较。

这篇关于IIR peaking filter 探秘的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Spring Boot拦截器Interceptor与过滤器Filter详细教程(示例详解)

《SpringBoot拦截器Interceptor与过滤器Filter详细教程(示例详解)》本文详细介绍了SpringBoot中的拦截器(Interceptor)和过滤器(Filter),包括它们的... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)详细教程1. 概述1

dubbo3 filter(过滤器)如何自定义过滤器

《dubbo3filter(过滤器)如何自定义过滤器》dubbo3filter(过滤器)类似于javaweb中的filter和springmvc中的intercaptor,用于在请求发送前或到达前进... 目录dubbo3 filter(过滤器)简介dubbo 过滤器运行时机自定义 filter第一种 @A

Java 8 Stream filter流式过滤器详解

《Java8Streamfilter流式过滤器详解》本文介绍了Java8的StreamAPI中的filter方法,展示了如何使用lambda表达式根据条件过滤流式数据,通过实际代码示例,展示了f... 目录引言 一.Java 8 Stream 的过滤器(filter)二.Java 8 的 filter、fi

Hbase Filter+Scan 查询效率优化

Hbase Filter+Scan 查询效率问题 众所周知,Hbase利用filter过滤器查询时候会进行全表扫描,查询效率低下,如果没有二级索引,在项目中很多情况需要利用filter,下面针对这种情况尝试了几种优化的方案,仅供参考,欢迎交流。 根据业务要求,作者需要根据时间范围搜索所需要的数据,所以作者设计的rowKey是以时间戳为起始字符串的。 正确尝试: 1.scan 设置 开始行和结

Spring Boot 注解探秘:HTTP 请求的魅力之旅

在SpringBoot应用开发中,处理Http请求是一项基础且重要的任务。Spring Boot通过提供一系列丰富的注解极大地简化了这一过程,使得定义请求处理器和路由变得更加直观与便捷。这些注解不仅帮助开发者清晰地定义不同类型的HTTP请求如何被处理,同时也提升了代码的可读性和维护性。 一、@RequestMapping @RequestMapping用于将特定的HTTP请求映射到特定的方法上

Filter基本原理和使用

https://www.cnblogs.com/xdp-gacl/p/3948353.html 一、Filter简介   Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控

黑神话悟空背后的技术揭秘与代码探秘

《重塑神话:黑神话悟空背后的技术揭秘与代码探秘》 引言 在国产游戏领域,《黑神话:悟空》无疑是一颗璀璨的明星,它不仅融合了深厚的中国文化元素,更在技术上实现了诸多突破,为玩家带来了前所未有的沉浸式体验。本文将深入剖析《黑神话:悟空》背后的关键技术,并通过代码案例展示其技术实现的魅力。 一、高精度动作捕捉技术 《黑神话:悟空》中的角色动作之所以如此逼真,得益于高精度动作捕捉技术的应用

在UE的内容浏览器中添加自定义的Filter

目标需求 在UE的内容浏览器中,可以使用Filter来过滤资源: 目标需求是在这之中添加一个自定义的Filter。 其代码上是非常简单的,在本文末尾。 然而我觉得找到方法的过程也是挺有意思的,因此我也记录了下来。 探索过程 1. 在哪定义? 首先,我猜测Other Filters下的各个项目,也都是通过代码添加的。因此,我调了其中一项,比如Show Redirectors,然后对代码进

Flink实例(六十八):布隆过滤器(Bloom Filter)的原理和实现

什么情况下需要布隆过滤器? 先来看几个比较常见的例子 字处理软件中,需要检查一个英语单词是否拼写正确在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上在网络爬虫里,一个网址是否被访问过yahoo, gmail等邮箱垃圾邮件过滤功能 这几个例子有一个共同的特点: 如何判断一个元素是否存在一个集合中? 常规思路 数组链表树、平衡二叉树、TrieMap (红黑树)哈希表 虽然上面描述的

AI技术颠覆游戏开发:谷歌DeepMind GameNGen实时生成《DOOM》探秘

引言 近年来,生成式人工智能(AIGC)在图像和视频生成领域取得了巨大突破。然而,谁能想到,这项技术正逐渐渗透进游戏开发领域,且潜力巨大。2023年8月29日,谷歌DeepMind发布了名为《扩散模型是实时游戏引擎》(Diffusion Models Are Real-Time Game Engines)的论文,提出了全新的AI游戏生成引擎GameNGen。令人惊讶的是,GameNGen无需传统