如何证明2D DFT的信号可分离特性?MATLAB

3

我尝试使用一个可分离为2个一维向量的二维矩阵证明2D傅里叶变换的信号属性是可分离的。

其中:

f(x,y) = f(x)*f(y)

那么 F(u,v) = F(u)*F(v)

使用以下代码:

% Separabilty of signal 
H = [-1,2,-1;-2,4,-2;-1,2,-1];
b3 = fft2(H)
Hx = [-1,2,-1];
Hy = [1,2,1]';
c2 = fft(Hy)*fft(Hx')'
if norm(vecnorm(b3-c2)) < 1e-5
    "same"
else
    "different"
end

但是,尽管数字正确,它们在矩阵内的排序却被改变了。我不明白出了什么问题。

1个回答

4

错误发生在这里

c2 = fft(Hy)*fft(Hx')'

为什么要应用双重置换fft(Hx')'
因为
H = Hy*Hx

那么

c2 = fft(Hy)*fft(Hx)

注意,在Matlab中,操作'表示对复共轭进行转置,这就是为什么fft(Hx)不等于fft(Hx')'的原因,因为第二个转置改变了虚部的符号。

谢谢您的回答。第一次转置是因为fft函数只接受向量而不是行作为输入。第二次转置是为了匹配矩阵的大小以获得矩阵乘积。我没有意识到'运算符也会取共轭矩阵...是否有一个仅进行转置的运算符? - Merna Atef
1
https://www.mathworks.com/help/matlab/ref/transpose.html - Alessandro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接