【音频技术实践】逆滤波(inverse filtering)

前言

在图像领域有很多写逆滤波的博客,而在音频信号处理领域关于逆滤波的详细阐述很少,这篇文章首先叙述逆滤波的概念,其次总结一些逆滤波方法在应用时需要注意的点,最后搬运了斯坦福大学JULIUS O. SMITH III的PHYSICAL AUDIO SIGNAL PROCESSING书中的matlab代码。

逆滤波(Inverse Filtering)

卷积
声源=最小阻尼系统
声道H=参数确定的共振系统
输出=冲激响应

假设声源的振动是稳定的,则声源的振动可以看做一个最小阻尼系统。无论最小阻尼系统的极点如何选择,当已知冲激响应输出和声道参数系统,我们总可以用逆滤波的方法计算出阻尼信号。
逆滤波器由含有零点的滤波器组成,它的零点等于估计的声道模型的谐振极点。

A ( z ) = 1 H ( z ) = 1 − ∑ i a i z − 1 A(z) = \frac{1}{H(z)} = 1-\sum_i{a_iz^{-1}} A(z)=H(z)1=1iaiz1

当将逆滤波器应用于整个输出信号时,会产生一个残差信号(residual signal),该信号定义为一个脉冲串(residual signal),代表着声源振动模式。

将这个残差信号与参数确定的共振器系统相卷积,则可以得到估计的冲激响应。声源估计的准确率依赖于对于声道参数的估计,如果声道参数误差过大,则不能将最小阻尼系统精确地估计出来。尽管如此,残差信号通过参数共振器得到的重建信号是准确的,仅包含四舍五入的误差。这一过程与线性预测估计(LPC)中将预测误差信号输入LP模型总是能得到准确的原始信号这一特性是相似的。

参数共振器不一定严格是全极点滤波器,但是经验上全极点滤波器非常容易实现。同时有很多滤波器设计方法用来估计参数系统,设计了更多的零极点和权重。这些方法可以帮助更准确的估计最小阻尼系统(声源振动模型)。对于逆滤波器我们一般设计所有零点构成最小相位系统,这样求逆之后他们的极点都是稳定的。

经验之谈(Empirical Notes on Inverse Filtering)

  1. 在分离吉他的冲激响应的实验中,我们发现问题的关键在于分离出主要的Helmholtz空气振动(Helmholtz air resonance: A Helmholtz resonator or Helmholtz oscillator is a container of gas (usually air) with an open hole (or neck or port). A volume of air in and near the open hole vibrates because of the ‘springiness’ of the air inside. )但是仅仅这样分离的话很大程度上削弱了激励信号,因为声源振动信号类似于噪声,没有人工干预的情况下会被截掉一大部分。

  2. 带宽的估计不是那么重要。当带宽非常大或者分离的零点不与极点相对应的时候,如下图, 逆滤波器的作用相当于预加重,它将频率响应变得更平,对越高的频率响应有越高的提升作用,提升程度与频率成正比。这样的做法有利于在频域提升信号与量化噪声之比(signal-to-quantization-noise ratio)。 因为量化噪声的频谱通常是平的,为了最大化最差的情况下的signal-to-quantization-noise versus frequency,残差信号的频谱应当也是平的。
    在这里插入图片描述
    在这里插入图片描述

  3. 为了使频谱变平的预加重滤波器广泛地用于语音信号处理中。这种情况下比较好的预加重滤波器是逆等响度预加重,它是将 Fletcher-Munson等响度曲线(下图中:The Fletcher Munson Curves help explain why quieter music seems to sound less rich and full than louder music. The louder music is, the more we perceive the lower frequencies, and thus it becomes more full and rich.)取逆得到的。基于心理声学中的“noise shaping”, 量化噪声在感知上变得均衡,降低音量直到可听到的极限(图中的threshold),这样就可以在同样的音量之下消除整个频谱上的噪声。
    在这里插入图片描述

  4. 由于窄带难以实现,好的结果一般都简单直接地设置共振峰的带宽为任意最小的鲁棒的值。结果有时会导致估计出的residual signal中含有一些声道响应成分(main-air-mode response),但它通常非常小,并且使用半窗口可以使其较早终止,比原始脉冲响应同样采用半窗口时听到的要少得多。

  5. The net effect on the instrument is to introduce artificial damping of the main air mode in the guitar body. However, since this mode rings so much longer than the rest of the modes in the guitar body, shortening it does not appear to be detrimental to the overall quality of the instrument. In general, it is not desirable for isolated modes to ring longer than all others. Why would a classical guitarist want an audible ``ringing’’ of the guitar body near $ 100$ Hz?

下图中为估计的吉他频率响应和逆滤波之后得到的频率响应(residual signal):
在这里插入图片描述
逆滤波器传递函数:在这里插入图片描述

代码 Matlab Code for Inverse Filtering

Below is the matlab source code used to extract the main Helmholtz air mode from the guitar body impulse response:


        freq = 104.98;  % estimated peak frequency in Hz
        bw = 10;        % peak bandwidth estimate in Hz

        R = exp( - pi * bw / fs);            % pole radius
        z = R * exp(j * 2 * pi * freq / fs); % pole itself
        B = [1, -(z + conj(z)), z * conj(z)] % numerator
        r = 0.9;     % zero/pole factor (notch isolation)
        A = B .* (r .^ [0 : length(B)-1]);   % denominator

        residual = filter(B,A,bodyInputResponse); % apply inverse filter
        

参考:
https://ccrma.stanford.edu/~jos/pasp/Empirical_Notes_Inverse_Filtering.html

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Dr. 卷心菜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值