Python实现所有算法之音频过滤器(上)

Python实现所有算法之音频过滤器(上),第1张

Python实现所有算法之音频过滤器(上)

今天来一点不一样的东西(属于数字信号处理):
 

是巴特沃斯的滤波器

无限长脉冲响应数字滤波器

主要是这两个。

我不是学这个的,之前就是了解过一些(好像我还有录音师的证),所以这篇文章有大量基础内容的编排。

聊起这个过滤器,我们又可以称为EQ均衡器,个人认为就好像一个过滤器一样,其实写到这里有点心虚,在英文里面确实是filter,就是过滤器一样。一个完整的数据流过来以后,在一组公式的处理下输出了新的内容,事实上不仅仅是声音,对于任何一个可以使用数字编码的信号都可以这样处理。

任何过滤器的想法都是控制什么通过,什么仍然被阻止,以及这种情况发生的程度。大道至简了嗷~

思来想去决定给一段更加专业的定义:在信号处理中,滤波器是一种从信号中去除一些不需要的成分或特征的设备或过程。滤波是一类信号处理,滤波器的定义特征是完全或部分抑制信号的某些方面。大多数情况下,这意味着删除一些频率或频带。然而,滤波器并不只作用于频域;特别是在图像处理领域,存在许多其他过滤目标。可以去除某些频率分量的相关性,而不必在频域中作用其他频率分量。滤波器广泛用于电子产品和电信,无线电,电视,录音,雷达,控制 系统,音乐 合成,图像 处理和计算机 图形.

这里就单独的拿出音频来说:

过滤器在音频制作中的工作方式相同。在轨道上方放置了一道屏障,这样只有特定的频率才能通过。这些可能是高频、低频或更具体的东西。除了去除某些频率之外,音频滤波器还可以放大它们。

常见的不同作用的过滤器有:

低通滤波器 ——通过低频,衰减高频。

高通滤波器 ——通过高频,衰减低频。

带通滤波器 ——仅通过频带中的频率。

带阻滤波器或带阻滤波器——仅衰减频带中的频率。

陷波滤波器 - 仅拒绝一个特定频率 - 极端带阻滤波器。

梳状滤波器 - 具有多个规则间隔的窄通带,使带形呈现梳状外观。

全通滤波器 ——所有频率都通过,但输出的相位被修改。

通滤波器是最常见的音频滤波器类型。它们有两种:高通(HPF)和低通(LPF)。顾名思义,这些滤波器允许高频或低频通过。使用任一类型的通滤波器,你首先设置一个截止频率。LPF 允许低于该截止频率的任何频率通过并衰减(或削减)任何高于该截止频率的频率。相反,HPF 允许任何高于截止频率的频率通过并衰减低于它的频率。

高通和低通滤波器可以为需要在频谱的上端或下端突出的轨道制造效果。但是,我们并不总是希望删除所有高hz或低hz信号。这是PASS过滤器派上用场的地方。在频谱上,我们加的这个过滤器看起来像水平线(有道理,对吧?)。这些线充当低端或高端的基础,也就是对比时要参考的坐标。这意味着你仍然可以使用 LPF 或 HPF,但不是完全删除不需要的频率,您只需降低它们的音量。相反,您也可以通过将PASS提高到高于频谱的其余部分来增加它们的音量。

带通滤波器的示意图

为了留下更具体的频率范围,我们使用带通滤波器。名称带通是指在频谱上选择的带宽或频率范围。要使用带通滤波器,首先要选择带宽(比如 500-700 Hz)。然后将提高该范围内的频率。超出范围的会衰减。更大的带宽意味着低Q 因子或更平缓的斜率。较窄的带宽会导致具有陡峭、陡峭斜率的高 Q 因子。

峰值滤波器和陷波滤波器:这两种滤波器类型从带通滤波器扩展而来,但将其发挥到了极致。这就是高Q因子发挥作用的地方。峰值和陷波滤波器不仅针对一系列频率,还针对一个特定频率。峰值滤波器会提升该特定频率,而陷波滤波器会衰减它。

就像这样

也许在一个音轨会在 60Hz 时发出轻微的嗡嗡声。你不想完全失去低频(这也是声音听起来有尿点的频段),但你需要减少嗡嗡声。陷波滤波器可以通过减法 EQ消除噪音,同时保持周围频率不变。同样,如果你想在不大幅改变 EQ 的情况下提升一个频率,请使用峰值滤波器。也就是我们平时音频播放器里面使用的EQ的功能,定向的来控制一个段的频率。

最终这些滤波器的曲线图就是这样

你也看到了,所有的滤波器函数都是可以使用数学函数表达:所有滤波器传递函数均源自模拟原型。

说到这里,啥又是传递函数???

把具有线性特性的对象的输入与输出间的关系,用一个函数(输出波形的拉普拉斯变换与输入波形的拉普拉斯变换之比)来表示的,称为传递函数。通俗理解就是,在电路应用中,如果我们把一个电路看作黑匣子,它有输入端,有输出端,传递函数就是输出与输入的比值。

Y是输出,下面是输入

球得麻die,Q因子是啥?品质因子听过没有?

这里就拿电容器来开刀:电容器的Q因子,也称为品质因数,或简称为Q,表示给定电容器在能量损失方面的效率。它被定义为:

其中QC是品质因数,XC是电容器的电抗,C是电容器的电容,RC是电容器的等效串联电阻(ESR),ω0是以弧度为单位进行测量的频率。

在AC系统中,Q因子表示存储在电容器中的能量与作为等效串联电阻中的热损耗消耗的能量的比率。

例如,一个能够存储2000焦耳能量而浪费仅1焦耳的电容器的Q因子为2000.由于Q是效率的衡量标准,理想的电容器将具有Q的无限值意味着没有能量损失在储存能量的过程中。这是因为理想电容器的ESR等于零。

Q因子不是常数值。由于两个原因,它随着频率而显着变化。第一个原因是上述等式中明显的ω0项。第二个原因是ESR在频率方面不是恒定值。由于趋肤效应,ESR随频率而变化,以及与介电特性相关的其他效应。

一个称为耗散因数(DF)的相关术语有时在电容器数据表中定义,而不是在Q因子中定义。在AC电路中,DF只是Q的倒数值。

在Python里面,出现init这个包,就是在把这个相对目录下的文件都算在包里面。



审核编辑:刘清

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2418206.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-01
下一篇 2022-08-01

发表评论

登录后才能评论

评论列表(0条)

保存