我有一个 wav 文件,它是通过用 2 个扬声器播放 2 个不同的 wav 文件并用麦克风录制的。如果我想使用生成的 wav 文件和另一个原始 wav 文件获取原始信号之一,是否可以这样做?我在网上查了一下,只有盲信号分离算法。先感谢您!
单源信号分离
信息处理
matlab
离散信号
连续信号
源分离
2022-02-20 22:34:37
2个回答
我们将您的信号称为和。记录的信号是:
其中是样本(时间)索引,和是从各个扬声器到麦克风的房间脉冲响应。假设您想利用x_1的知识从y中检索x_2。您可以应用回声消除方法来删除y中源自x_1的部分。你得到的是(x_2*h_2)(n)加上由于不完美的回声消除而导致的x_1的一些残余。如果您还想摆脱h_2的影响,则必须诉诸盲反卷积方法,这要困难得多(并且您需要了解或假设有关所需信号的一些事情 )。
让我们总结一下你的问题。假设从源 1 到记录信号(DAC、扬声器、房间、麦克风、ADC...)的整个信号传输链的传递函数是(以及),那么你已经完成的信号访问也有:
- (结果信号)
- (原始信号之一)。
你的问题是你想恢复吗?那么这与这个问题的设置相同,当然也不是源分离的问题——因为其中一个信号是已知的(直到卷积)。您可以获得的估计值,并恢复。如果您可以假设和相似,您可以尝试反转并获得更接近的结果。
如果您没有关于和的先验信息,这将是一个真正的 BSS 问题,在这种情况下,这将是棘手的(除非可以对这些声音的产生方式做出一些假设 - 例如其中一个是语音和其他是背景音乐)。
其它你可能感兴趣的问题