解耦两个信号,其中一个是另一个的延迟版本

信息处理 信号检测 解调 线性啁啾
2022-02-02 20:32:01

我有信号y(t)它由两个信号的总和组成,其中一个是另一个的延时版本。

y(t)=x(t)+x(ttd)

x(t) 已知但时间延迟td不是。

我很想知道可以采用什么(如果有的话)技术来恢复延时信号y(t).

我相信对于 ICA 等技术,需要有两个接收器来完全解耦信号,但是对于这种情况,两个信号都不会提前知道。

2个回答

您可以将接收到的信号与您知道包含的信号进行互相关。

Fs = 1000;
t = np.arange(0, 2, 1./Fs)
s = lambda t: np.cos(2*np.pi*10*t*t)

t0 = 0.5

single = s(t)
signal = s(t) + s(t-t0)

plt.subplot(1,2,1)
plt.plot(t, signal)
plt.plot(t, single)

plt.subplot(1,2,2)
plt.plot(t, np.correlate(signal, single, 'same'));

程序输出

峰值之间的延迟是两个信号之间的时间距离。

第一步包括利用信号的已知属性,从将其转换为更易读的形式的转换开始。如果它是非平稳的,例如啁啾,您可以使用时间频率或时间尺度变换。下图借自 Time-Frequency Toolbox

两声啁啾

虽然信号看起来很复杂,但两个偏移啁啾之间的延迟在时频图中变得明显。然后,如果您选择了可逆变换,第一个选项是裁剪与第二个啁啾有关的图像部分,将其余部分设置为零,然后反转。

然后,如果您了解原始信号,您可以插入其他分离技术,如源分离技术和自适应匹配滤波。这个问题可以重新定义为回声消除。地球物理学中也出现了类似的问题,称为多重抑制。以下论文在小波域中执行自适应滤波。第二个添加了约束,这可能有助于将您的延迟限制在某个时间间隔内: