如何使用反卷积技术找出脉冲响应?

信息处理 冲动反应 语音处理 反卷积
2022-02-05 09:20:20

我一直在努力寻找脉冲响应的空间。我使用对数扫描正弦波作为输入说并且我记录的信号是我知道房间脉冲响应理论上是: 其中是卷积函数。x(n)y(n)

x(n)h(n)=y(n)

我读过一篇研究论文,其中指出使用反卷积技术可以得到房间脉冲响应。我尝试使用scipy.signal.deconvolve. 在这里您可以查看文档。

现在,如果我执行这个过程,我不会得到我期望的脉冲响应。我认为它可以这样工作: 其中 .

deconvolve((x(n)h(n)),x(n))=h(n)
x(n)h(n)=y(n)

如果从理论上讲,我是正确的,那么为什么我没有得到所需的结果?我有什么错误吗?我正在发布文件以及带有情节的代码。

.wav 文件

  1. x(n)
  2. y(n)

输出图

在此处输入图像描述

2个回答

您的信号不适合反卷积。你听他们的吗?

  1. x(t) 是在混响空间中录制的语音样本,因此它已经包含了房间脉冲响应
  2. y(t) 是相同的混响样本,但增加了噪声(杂音)

x 和 y 都包含相同的房间脉冲响应(我认为),因此您不可能通过反卷积提取它。

@jojek的回答帮助我获得了脉冲响应。我尝试了该技术,但存在一些内部问题,即我的音频正在播放,即 ESS 嘈杂。我在 python 中更改了播放器,它完美无缺。
@hilmar 最初也指出,我们的数据很嘈杂,并且由于数据问题,我们的结果是错误的。
谢谢你们俩。