使用滑动窗口估计衰减

信息处理 算法 衰减
2021-12-23 10:35:19

我正在寻找一种算法来测量离散信号 $s[t]$ 的衰减。从信号序列的开头开始,是否可以计算滑动 DFT 或 Gabor 变换窗口并使用幅度和相位信息来计算衰减系数?这种算法有参考资料吗?我想知道类似的算法是否已应用于音乐 DSP。

是否为频域信号的实部和复部计算了单独的衰减系数?

以下是一些进一步的细节:

  1. 对于每个窗口,我想计算信号的衰减。因此,对于每个 $\tau$,其中 $\tau$ 是窗口的中心,我得到了窗口宽度上的衰减估计值。当窗口在信号 $s[t]$ 上移动时,我得到衰减 $\alpha[\tau]$ 的估计值作为窗口中心的函数。
  2. 滑动 DFT 用于计算效率(链接),我认为使用滑动 DFT 可能还有其他好处。我应该在时域中应用布莱克曼/汉宁窗吗?或者也许 Gabor 变换就足够了。
  3. $s[t]$ 被认为包含一个感兴趣的信号。
  4. 衰减系数可以用实部和复部来表示,并且可以以dB为单位报告。这是一个等式:

$A = A_0 \exp[\frac{{ - \omega \tau }}{{2\alpha }}]$

$A$是$\tau_k$时刻的幅度和相位,$A_0$是一些参考幅度和相位,$\alpha$是衰减系数,$\tau$是窗口中心的时间,$ \omega$ 是角频率。

如何定义参考幅度和相位 $A_0$?也许 $A_0$ 会在信号的开头定义。或者也许 $A_0$ 会在每个窗口的开头定义?此外,如何处理信号频谱中的尖峰?也许某种平滑算法在这里会有所帮助?

此外,也许衰减可以使用信号包络检测器来确定?我该如何设置?

更新

我认为这个问题可能与分离两个加在一起的信号有关。我们不知道参考幅度$A_0$,它可能会随着时间而改变。拿:

$A[\tau, \omega] = A_0[\tau, \omega]\exp[\frac{{ - \omega \tau }}{{2\alpha }}]$

$\log(A[\tau, \omega]) = \log(A_0[\tau, \omega]) + [\frac{{ - \omega \tau }}{{2\alpha }}]$

以下是一些假设:

  1. $A_0[\tau, \omega]$ 是未知的,但可以假设它与 $[\frac{{ - \omega \tau }}{{2\alpha }}]$ 不相关。$A_0[\tau, \omega]$ 的带宽不同于 $[\frac{{ - \omega \tau }}{{2\alpha }}]$ 的带宽。(我认为这是合理的。) $[\frac{{ - \omega \tau }}{{2\alpha }}]$ 表达式的带宽是已知的。
  2. 对于每个 $\tau$,$\alpha$ 是常数。
  3. $A[\tau, \omega]$ 使用短时傅里叶变换或 Gabor 变换计算。
  4. $A[\tau, \omega]$ 和 $A_0[\tau, \omega]$ 的包络不是恒定的。然而,$\exp[\frac{{ - \omega \tau }}{{2\alpha }}]$ 只是一个方程。那么我可以将 $A_0$ 视为简单的“噪音”或其他东西吗?
  5. $A_0[\tau, \omega]$ 和 $A[\tau, \omega]$ 是复数。衰减$\alpha$ 是一个实数。

有人可以帮我建立数学(即矩阵方程吗?)或将我指向正确的方向来一类算法? 我认为这个问题与分离两个信号非常相似。

也许这可以使用卡尔曼滤波器来完成,其中 $\log(A_0[\tau, \omega])$ 被视为“噪声”,而 $[\frac{{ - \omega \tau }}{{2\ alpha }}]$ 术语被视为信号。这是合理的吗?关于这个过滤器的实现是否有很好的参考?也许另一个过滤器会更合适?

操作的输出将是衰减相对于时间的图表,如下所示。我还展示了添加两个信号的 Gabor 变换操作。 图片

更新

为了进一步探索这个问题,我选择了一个测试信号并编写了一个程序,使用一个模拟我想要确定的衰减的内核对测试信号进行前向滤波。我使用声纳和声学传感系统,因此选择此信号表明我正在使用什么。

这是时域中的测试信号图。这是一个没有衰减的信号:

测试信号

这是没有衰减的信号的 Gabor 变换(频谱图)

无衰减谱图

这是我应用滤波器模拟衰减后的测试信号图。这是一个具有恒定衰减的信号,使得 $\alpha(\tau) = 55$

带衰减的信号

这是带有衰减的信号的 Gabor 变换(频谱图)请注意频谱图中的指数衰减:

带衰减的信号

看前向滤波器内核的绝对值,指数衰减非常明显。注意一些频率比其他频率衰减得更多。前向滤波器内核具有实数和复数部分。下图只是前向滤波器内核的绝对值。滤波器内核的数值越高(接近 1.0),衰减越小。滤波器内核的数值越低(接近 0),衰减越多。

前向滤波器内核

以下是通过与原始 Gabor 变换信号相乘应用的滤波器内核 $k(\tau, \omega)$ 的数学形式:

$k(\tau ,\omega ) = \frac{1}{{\Lambda (\tau ,\omega )}}\exp \left[ {i\int\limits_0^\tau {{{\left( {\ frac{\omega }{{{\omega _h}}}} \right)}^{\frac{1}{{\pi \alpha (\tau ')}}}}\omega d\tau '} } \对]$

$\Lambda (\tau ,\omega ) = \frac{{\beta (\tau ,\omega ) + {\sigma ^2}}}{{{\beta ^2}(\tau ,\omega ) + { \sigma ^2}}}$

$\beta (\tau ,\omega ) = \exp \left[ { - \int\limits_0^\tau {\frac{\omega }{{2\alpha (\tau ')}}{{\left( { \frac{\omega }{{{\omega _h}}}} \right)}^{\frac{{ - 1}}{{\pi \alpha (\tau ')}}}}d\tau '} } \右]$

在上面,$\omega、\omega_h、\sigma、\tau$ 都是已知的,为简单起见,我设置了整个信号的衰减 $\alpha(\tau) = 55$。

我想找到衰减 $\alpha(\tau)$ 作为时间 $\tau$ 的函数,但 $\alpha(\tau)$ 不必是恒定的,并且可以在 $\tau$ 上变化。

我认为滤波器内核是“平滑的”,而原始信号不是。

有没有办法确定衰减 $\alpha(\tau)$,即使是不精确的方式?

在这里,我对随时间变化的 $\alpha(\tau)$ 重复相同的实验。这是我期望 $\alpha(\tau, \omega)$ 的模型(但曲线也可以是具有负斜率的线性,或者完全是其他东西):

阿尔法变化

为了说明起见,这里又是原始的(未过滤的)轨迹。这是一个没有衰减的信号:

在此处输入图像描述 在此处输入图像描述

这是一个带有衰减的信号,其中 $\alpha(\tau)$ 随时间变化:

在此处输入图像描述 在此处输入图像描述

这是过滤器内核的绝对值,其中 $\alpha(\tau)$ 随时间变化。请注意,这里仍然存在指数衰减:

在此处输入图像描述

另一种观点

现在我意识到 Gabor 变换域中的前向滤波器由下式给出:

$A(\tau, \omega) = A_0(\tau, \omega)k(\tau, \omega)$

所以衰减轨迹是$A(\tau, \omega)$,$A_0(\tau, \omega)$是非衰减轨迹,$k(\tau, \omega)$是滤波器核。给定$A(\tau, \omega)$,而不是$A_0(\tau, \omega)$,我想估计$\alpha(\tau)$,即随时间的衰减函数。在这种情况下,我知道过滤器内核 $k(\tau, \omega)$ 的数值形式,但我不知道 $\alpha(\tau)$。这就是为什么我想知道卡尔曼滤波是否有利于在这类问题中使用。也许 $A_0(\tau, \omega)$ 可以被视为与内核 $k(\tau, \omega)$ 不相关的噪声。

看着衰减的频谱图,我想起了图像“去模糊”算法。由于内核是“平滑的”而原始信号 $A_0(\tau, \omega)$ 不是,因此可能以某种方式将 $A_0(\tau, \omega)$ 从内核 $k(\tau ,\omega)$ 使用某种算法。

如果我可以将$A_0(\tau, \omega)$ 与内核$k(\tau,\omega)$ 分开,那么我认为可以估计$\alpha(\tau)$。

更新

这是实际数据的频谱图。上面的数据集是合成的,而这个频谱图是从实际实验中收集的。

实际数据

1个回答

从您的问题和评论看来,您想要提取的是信号的包络。

有几点还不清楚:

  • 您是否对这个信封的形状有任何先验知识(在您的情况下看起来它可能是指数)?
  • 这个包络“衰减”的信号是什么。像音乐这样复杂的东西?纯正弦波?
  • 信号的相对“规模”是多少。载波周期是否比包络的恒定时间低几个数量级?还是仅仅低一个数量级?

一些线索:

  • 正如@JasonR 建议的那样,在 N 个样本的滑动、重叠窗口上计算信号功率(或最大绝对值),其中 N 比信号的周期大一个数量级。如有必要,低通滤波器。如果您的目标是获得单个时间常数(假设指数衰减),请取值的对数并拟合为直线。
  • 解调技术。获取信号和低通滤波器的绝对值 - 可选择在带通滤波之后选择感兴趣的频带。AM 收音机的工作原理!当包络与载波相比相对较慢(几个数量级)时,这很有效。
  • 参数化技术。如果您的信号采用 $\Re (\alpha z^n)$(指数阻尼正弦波)或 $\Re(\sum_p \alpha_p z_p^n)$(指数阻尼正弦波之和)加上一些白噪声的形式,其中$\alpha$是一个复数,携带相位/幅度信息,$z$是一个复数,携带正弦波周期/指数衰减常数信息,有参数技术(ESPRIT,MUSIC)可以获得$z的最小二乘估计美元。这些技术在区分信号总和中的分量时特别有效。如果您将 100 Hz 音调和 1s 指数衰减和 101 Hz 音调和 1.5s 指数衰减加在一起,则只要噪声足够低,您将恢复这些参数(而幼稚的 DFT 将很难区分附近的两个正弦波)。