峰值滤波器peaker filter

峰值滤波器设计

简介

在特定的中心频率处对信号进行增益或衰减。它允许中心频率附近的频率成分得到增强或削弱,而其他频率成分保持相对不变。

在这里插入图片描述
如上图audacity软件的图示均衡器就是采样参数均衡器来设计,参数均衡器可以由用户自行定义中心频率、增益和品质因子来实现对中心频率的增益或衰减;

参数均衡器原理

参数均衡器效果函数图像如下:
在这里插入图片描述

f 0 f_0 f0:中心频率,也就是我们调整的频率

f 1 f_1 f1:中心频率往左下降3dB的上限频率

f 2 f_2 f2:同 f 1 f_1 f1

除此之外,还需要理解其它参数;

F s F_s Fs:采样频率

d B g a i n dBgain dBgain:中心频率的增/减益

Q Q Q:品质因子,描述了对某一点频率进行增益或衰减,对附近频率的影响范围,其公式如下:
Q = f 0 Δ f = f 0 f 2 − f 1 Q = \frac{f_0}{\Delta f} = \frac{f_0}{f_2 - f_1} Q=Δff0=f2f1f0
从公式可得,如果Q值越大,则影响的范围 Δ f \Delta f Δf越小,Q值越小,则范围越大

参数均衡器设计

利用IIR型无限冲击响应函数来设计,它相对于FIR有限冲击函数计算量小一些;采用二阶的IIR型传递函数公式来计算,此公式推导过程相对复杂,它是由工程师证明推导而成,如下:
H ( z ) = Y ( z ) X ( z ) = b 0 + b 1 ∗ z − 1 + b 2 ∗ z − 2 a 0 − a 1 ∗ z − 1 − a 2 ∗ b − 2 H(z) = \frac{Y(z)}{X(z)}= \frac{b_0 + b_1*z^{-1} + b_2*z^{-2}}{a_0 - a_1*z^{-1} - a_2*b^{-2}} H(z)=X(z)Y(z)=a0a1z1a2b2b0+b1z1+b2z2

X ( z ) X(z) X(z)表示输入信号, Y ( z ) Y(z) Y(z)是输出信号,对 a 0 a_0 a0归一化,也就是上下除 a 0 a_0 a0,转换成新的 a , b a,b a,b系数,在转换到时域上的差分可得:
y ( n ) = b 0 ∗ x ( n ) + b 1 ∗ x ( n − 1 ) + b 2 ∗ x ( n − 2 ) − a 1 ∗ y ( n − 1 ) − a 2 ∗ y ( n − 2 ) y(n) = b_0*x(n) + b_1 * x(n-1) + b_2*x(n-2) - a_1*y(n-1) -a_2*y(n-2) y(n)=b0x(n)+b1x(n1)+b2x(n2)a1y(n1)a2y(n2)

现在,只需要计算出a和b的系数,就可以得到这个峰值滤波器了;这3个系数计算也特别麻烦,很复杂;不过工程师也推导出了相关的公式,方便计算;

中间参数

在计算 a , b a,b a,b系数时,还要介绍几个中间变量,如下:
A = 1 0 d B g a i n 20 = 1 0 d B g a i n 40 A = \sqrt{10^{\frac{dBgain}{20}}} = 10^{\frac{dBgain}{40}} A=1020dBgain =1040dBgain
此公式只对峰值滤波器和陷波滤波器适用

w 0 = 2 ∗ p i ∗ f 0 F s w_0 = 2*pi*\frac{f_0}{F_s} w0=2piFsf0

c o s ( w 0 ) cos(w_0) cos(w0)

s i n ( w 0 ) sin(w_0) sin(w0)

a l p h a = s i n ( w 0 ) / ( 2 Q ) = s i n ( w 0 ) ∗ s i n h ( l n ( 2 ) / 2 ∗ B W ∗ w 0 / s i n ( w 0 ) ) = s i n ( w 0 ) / 2 ∗ s q r t ( ( A + 1 / A ) ∗ ( 1 / S − 1 ) + 2 ) alpha = sin(w_0)/(2Q) = sin(w0)*sinh( ln(2)/2 * BW * w0/sin(w0) ) = sin(w0)/2 * sqrt( (A + 1/A)*(1/S - 1) + 2 ) alpha=sin(w0)/(2Q)=sin(w0)sinh(ln(2)/2BWw0/sin(w0))=sin(w0)/2sqrt((A+1/A)(1/S1)+2)

峰值滤波器系数

假设 Q = 1 2 Q=\frac{1}{\sqrt2} Q=2 1,中心频率 F c = 1000 h z F_c = 1000hz Fc=1000hz则有:

b 0 = 1 + a l p h a ∗ A b_0 = 1 + alpha*A b0=1+alphaA

b 1 = − 2 ∗ c o s ( w 0 ) b_1 = -2 * cos(w_0) b1=2cos(w0)

b 2 = 1 − a l p h a ∗ A b_2 = 1 - alpha*A b2=1alphaA

a 0 = 1 + a l p h a / A a_0 = 1 + alpha/A a0=1+alpha/A

a 1 = − 2 ∗ c o s ( w 0 ) a_1 = -2 * cos(w_0) a1=2cos(w0)

a 2 = 1 − a l p h a / A a_2 = 1 - alpha/A a2=1alpha/A

python代码计算的 a , b a,b a,b参数,并对 a 0 a_0 a0做归一化:

def create_peak_filter_params():
    w0 = 2.0 * np.pi * f0 / Fs
    sin_w0 = np.sin(w0)
    alpha = sin_w0 / (2.0 * Q)
    dB = round(float(dBgain), 3) #四舍五入最接近的整数,小数点后3位
    A = 10 ** (dB/40)
    b0 = 1 + alpha * A
    b1 = -2 * np.cos(w0)
    b2 = 1 - alpha * A
    a0 = 1 + alpha / A
    a1 = -2 * np.cos(w0)
    a2 = 1 - alpha / A
    numerator_B = np.array( [b0, b1, b2], dtype=np.float32)
    denominator_A = np.array( [a0, a1, a2], dtype=np.float32)
    return numerator_B / a0, denominator_A / a0

最后,计算的效果如下:
在这里插入图片描述

其它滤波器设计

其它滤波器使用IIR设计方式也和上面一样,只是最后推导出的 a , b a,b a,b参数公式不一样,这里简单记录一下:

低通滤波器

假设 Q = 1 2 Q=\frac{1}{\sqrt2} Q=2 1,中心频率 F c = 1000 h z F_c = 1000hz Fc=1000hz则有:
b 0 = ( 1 − c o s ( w 0 ) ) / 2 b_0 = (1 - cos(w0))/2 b0=(1cos(w0))/2

b 1 = 1 − c o s ( w 0 ) b_1 = 1 - cos(w0) b1=1cos(w0)

b 2 = ( 1 − c o s ( w 0 ) ) / 2 b_2 = (1 - cos(w0))/2 b2=(1cos(w0))/2

a 0 = 1 + a l p h a a_0 = 1 + alpha a0=1+alpha

a 1 = − 2 ∗ c o s ( w 0 ) a_1 = -2*cos(w0) a1=2cos(w0)

a 2 = 1 − a l p h a a_2 = 1 - alpha a2=1alpha

高通滤波器

假设 Q = 1 2 Q=\frac{1}{\sqrt2} Q=2 1,中心频率 F c = 1000 h z F_c = 1000hz Fc=1000hz则有:
b 0 = ( 1 + c o s ( w 0 ) ) / 2 b_0 = (1 + cos(w0))/2 b0=(1+cos(w0))/2

b 1 = − ( 1 + c o s ( w 0 ) ) b_1 = -(1 + cos(w0)) b1=(1+cos(w0))

b 2 = ( 1 + c o s ( w 0 ) ) / 2 b_2 = (1 + cos(w0))/2 b2=(1+cos(w0))/2

a 0 = 1 + a l p h a a_0 = 1 + alpha a0=1+alpha

a 1 = − 2 ∗ c o s ( w 0 ) a_1 = -2*cos(w0) a1=2cos(w0)

a 2 = 1 − a l p h a a_2 = 1 - alpha a2=1alpha

带通滤波器

假设 Q = 1 2 Q=\frac{1}{\sqrt2} Q=2 1,中心频率 F c = 1000 h z F_c = 1000hz Fc=1000hz则有:
b 0 = s i n ( w 0 ) / 2 = Q ∗ a l p h a b_0 = sin(w0)/2 = Q*alpha b0=sin(w0)/2=Qalpha

b 1 = 0 b_1 = 0 b1=0

b 2 = − s i n ( w 0 ) / 2 = − Q ∗ a l p h a b_2 = -sin(w0)/2 = -Q*alpha b2=sin(w0)/2=Qalpha

a 0 = 1 + a l p h a a_0 = 1 + alpha a0=1+alpha

a 1 = − 2 ∗ c o s ( w 0 ) a_1 = -2*cos(w0) a1=2cos(w0)

a 2 = 1 − a l p h a a_2 = 1 - alpha a2=1alpha

带阻滤波器

假设 Q = 1 2 Q=\frac{1}{\sqrt2} Q=2 1,中心频率 F c = 1000 h z F_c = 1000hz Fc=1000hz则有:
b 0 = a l p h a b_0 = alpha b0=alpha

b 1 = 0 b_1 = 0 b1=0

b 2 = − a l p h a b_2 = -alpha b2=alpha

a 0 = 1 + a l p h a a_0 = 1 + alpha a0=1+alpha

a 1 = − 2 ∗ c o s ( w 0 ) a_1 = -2*cos(w0) a1=2cos(w0)

a 2 = 1 − a l p h a a_2 = 1 - alpha a2=1alpha

音频频率知识

人耳可分辨的声音频率大约是在20Hz~20kHz,因此调音台中的四段均衡器把其分为的4个频段,根据德国柏林音乐研究所资料介绍,它们是低频、中低频、中高频、高频

音频频率对音色的影响是多方面的。以下是一些关键频率段及其对音色的影响:

低频(20Hz-200Hz):影响音色的混厚度和丰满度,像低音炮那种低沉的声音。

31Hz——这个频段需要播放器材有比较好的低频下潜能力,如果没有,当然就不容易听见,这个频段主要影响底鼓的延续音(sustain),就是踩下底鼓之后嗡嗡的声音,增强这个频段可以让音乐浑厚。

63Hz——这个频段是底鼓所在的主要频段,如果单纯把这个频点增强10dB,最明显的感受就是底鼓声变得很大,甚至破了,所以增强这个频段有助于音乐更厚实。

125Hz——这就主要是贝斯的频段了,贝斯常用的音高位置的音色主要在这一频段,当然不是说这一频段只有贝斯,增强这一频段音乐会更扎实。

中低频(200Hz-600Hz):影响音色的力茺和结实度。

250Hz——这个频段多了声音会很脏,少了声音会很干净,硬实,但它同时也是人声、弦乐、手鼓等等音色的主要共鸣点的所在频段。可以想象在水下的那种轰隆隆的感觉,是这一频段带给我的主要感受。

500Hz——和250Hz的感受相似,这一频段的增强会使一些铺底的合成器pad音色凸显出来,会使更多的男声凸显出来,这一频段多了还是会浑浊,稍微增加一些会使音乐有更多温暖、亲近的感觉。

中高频(600Hz-6kHz):影响音色的明亮度和清晰度。

1000Hz——这个频段可以算作一个分水岭,大部分乐器的基频都在200—1000Hz,所以调节1000以下的频段会更多的影响音色(不是影响音量),增强这一频段会使音色更明亮。

2000Hz——增强人声的可懂性,说白了听得更清楚,包括吉他贝斯的琴弦摩擦的声音,电吉他的尖刺感,两元店大喇叭里的广告,都可以让你更多的体会这一频段的特点,所以增强这一频段让音乐更清晰。

4000Hz——这一频段是很多音色的镶边,就像是相框的边框,衣服或者窗帘的下摆,很多时候这一频段可以让声音更完整,更具细节,更多现场感,但是过多的提升也会让人觉得刺耳,听觉疲劳。

5000Hz以上是几乎所有乐器的谐波成分,也是人耳最敏感的频段,比如把5000Hz提升6dB,有时会让人觉得整个音量被开大了一倍,如果过多的衰减则会让音乐听起来很远。

高频(6kHz-16kHz):影响音色的表现力和解析力,像音乐盒那种尖锐的声音。

8000Hz——这个频段比较明显的是各种镲声、弦乐摩擦琴弦的声音、还有就是齿音,比如提升该频段会放大歌手四、是、次、字一类的发音。一般很少会大幅提升这一频段。

16000Hz——事实上这一频段确实很难分辨,如果把一首歌的16000Hz提升10dB,我一般会去听各种镲,镲会显得更亮更大声了,反之,镲声会显得小了、暗了。如果不仔细听,会感觉音乐没什么变化。

这里说一下遮蔽效应,简单说就是比如你把125Hz调的很大,那么靠近125Hz的、dB数小的频率就会被遮蔽,听不到了。

参考

1. 音频均衡器详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅气好男人_Jack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值