关于卷积伴随的困惑

信息处理 图像处理 matlab 过滤器 卷积
2022-02-24 20:02:13

我对卷积运算符有以下问题。我知道如果我有一个过滤器,那么伴随过滤器将由给出,所以适用于标量积。gh(x,y)=g(x,y)gu,v=u,fvR2

我也知道真正所以看来我应该坚持 Ff(ω)=Ff(ω)¯f

h(x,y)=F1Fg¯=F1Fg(x,y)=g(x,y)

但是,当我比较

g = ifft2(fft2(g))

(对于一些高斯核,例如matlab: g = padarray(fspecial('gaussian',11,2),[5,5]) )

h = ifft2(conj(fft2(g))

我得到了 g 的预期结果正态高斯

但是当我计算 h 时,它应该等于 g,因为 g 是高斯的

结果移动了 (1,1)移位高斯

这有点出乎意料。
我想知道我错过的离散<->连续转换是否有一些微妙之处?

1个回答

离散傅里叶域中的复共轭应该导致围绕原点的空间域水平和垂直镜像。原点恰好位于第 1 行第 1 列,从MATLAB 对 FFT 的定义可以看出,其中Y = fft(X)

Y(k)=j=1nX(j)e2πi(j1)(k1)/n

对于的相位都为零,因此第 1 列或第 1 行上的任何内容都将通过复共轭保持在那里。第 11 列和第 11 行水平或垂直距离原点各 10 步,如果您测量跨越边界的距离,第 12 列和第 12 行也是如此。因此,反转交换了第 11 列和第 12 列之间以及第 11 行和第 12 行之间的数据。下面的图 1 说明了镜像。j=1k

阶段的行/列索引
图 1. 行或列索引以及频率的相应相位在圆上绘制为角度。k=2

如果您的数据维度是偶数而不是像现在这样奇数,那么将有一个中间行和一个中间列,它们与原点的距离相同,直接和跨边界。