将 3-D 信号与 2-D 信号卷积

信息处理 matlab 卷积
2022-02-12 04:56:54

我有 3D 信号M(x,y,t)我想用信号做卷积G(x,y)Et(t),

我的意思是,如何在 Matlab 中计算下面的卷积?

A(x,y,t)=M(x,y,t)G(x,y)Et(t)

就我而言,M(x,y,t)是一部电影k框架;x,y是图像中的位置和t取决于帧数和帧率。 G(x,y)是一个高斯形状x,yEt(t)是一个简单的时间指数。

1个回答

我认为这是对符号的滥用,可以通过以下方式解决:时间维度中的卷积t独立于空间维度中的那个(x,y),以可分离的方式。在实践中,您可以对每个 2D 数据进行卷积A(x,y,.)G(x,y),然后每个生成的一维数据A(.,.,t)Et(t),或相反的顺序,这是由于线性而允许的。

更简洁的版本将通过之间的张量积运算来构造 3D 算子GEt, 导致:

M(GEt).

这有时被称为(可分离的)时空过滤器。假设感知规则在空间和时间上不同,实现起来更简单。但是,它在跟踪时间帧之间的快速运动方面达到了极限(有时,在视频中使用不可分离的过滤器或全 3D 过滤器)。

基本上,它将 2D 和 1D 滤镜组合成真正的 3D 滤镜HG,Et(x,y,t), 这样,对于每个(x,y,t)

HG,Et(x,y,t)=G(x,y)Et(t).

在实践中,使用可分离性更有效。在 Matlab 中,如果您可以加载所有数据,例如,如果您可以首先 2D 过滤每个 2D 帧G,然后“转置”以获取第一维中的时间,并应用:

y = 过滤器(b,a,x)

这是矢量化的,并恢复到初始数据顺序。

在这种自然的解释之外,我认为上述滥用是非常滥用的。

关于可分离性的补充阅读: