如何证明二维DFT的信号可分性?MATLAB



我试图使用可与2个1D向量分离的2D矩阵来证明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

但是,尽管这些数字是正确的,但它们在矩阵中的顺序发生了变化。我不明白怎么了。

错误在这里

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

为什么要应用双换位fft(Hx')'

H = Hy*Hx

然后

c2 = fft(Hy)*fft(Hx)

注意,在matlab中,运算'执行复共轭转置,这就是fft(Hx)不等于fft(Hx')'的原因,因为第二次转置改变了虚部的符号。

最新更新