背景:我用来分析信号的软件是matlab。我有两个使用两个磁性传感器记录的音频信号。让我们将一个传感器称为A,将另一个称为B。A和B在它们之间具有互感。

当传感器A和B工作时,我想减去传感器B中由于互感而在传感器A中接收到的信息。

我试图减去信号通过简单地在matlab(AB)中编写信号B即可得到信号B,但是它给了我一个奇怪的答案。这两个音轨的开始录制时间是相同的,因此我认为这不是时间延迟。我想知道如何在matlab中轻松实现它的任何技巧。

我将非常感谢您的帮助。

预先感谢。

下面我附上信号图的图片。
在第一张图片中,您可以看到从传感器A和传感器B接收到的信号。
在第二张图片中,我将传感器A绘制为红色,传感器B绘制为以蓝色表示,范围为2.12:2.16,并且放大得更多。





评论

因此,从您的曲线图中可以看出,从源1到源2的串扰不多,只有从2到1。那么您在图像上的覆盖图是否正确(“必须从源2减去”)?似乎您正在尝试从1中删除源2,对吧?

没错。

为了确认相移的想法,将两个波形都绘制得很近,仅包括指标2.3到2.4之类的东西,这样您就可以在两个通道中看到单个波形

#1 楼

这看起来像是直接的串扰问题。您不能简单地直接减去信号,因为每个频率的磁耦合都不同(在幅度和相位方面)。

假设您有两个音频信号xa(t)和xb(t),两个传感器信号ya(t)和yb(t)。由于传感器之间存在耦合,您会产生串扰,我们可以在频域中进行写。
从信号“ x”到传感器信号“ y”。这4个传递函数形成一个2x2矩阵,为了完全恢复原始信号,您需要将矩阵求逆并将反相的矩阵传递函数应用于接收到的传感器信号。 ,您可以简单地直接测量传递函数Hba(w)并将其减去,如下所示:当信号B为0时,测量从信号A到传感器B的传递函数。它的形状)。现在,您可以从传感器信号B中测量并从传感器信号A中减去滤波后的形式:

**卷积运算符。

串扰滤波器表示幅度和相移随特定传感器耦合频率的变化,并确保减去正确的信号。

评论


$ \ begingroup $
Hilmar,我是Matlab的新手,在尝试实施您的答案时遇到了一些困难。我将非常感谢大家的协助。我做的第一件事是在传感器B为0时记录信号A。现在,当调用函数“过滤器”时我应该在过滤器中插入哪些参数?如果您需要可视化信号,可以在上面的问题中看到它。再次感谢。
$ \ endgroup $
–user1017064
2011年12月1日22:04

#2 楼

这听起来像盲源分离。通常,您无法在混合后取消混合。如果您有两个源的两个不同的记录,而每个记录中的每个源中有一些,则有时可以使用独立的成分分析将它们分开。

我这里有一个Python示例。还有用于MATLAB的FastICA。如果它们是音频信号,并且被磁性地拾取,则它们之间可能没有明显的延迟。 ICA在这种情况下效果很好。

评论


$ \ begingroup $
用于Matlab的FastICA并不能帮助我在两个信号之间求和。结果只是不够好。在上面的评论中,我在照片上附加了一个链接,该链接可以解释我所面临的情况:bit.ly/rXmVgH。顺便说一句,非常感谢您的帮助。
$ \ endgroup $
–user1017064
2011-10-28 14:40