首页 > 解决方案 > 如何证明二维 DFT 的信号可分离性?MATLAB

问题描述

我尝试使用可与 2 个 1D 向量分离的 2D 矩阵来证明 2D Fourier 变换的信号属性的可分离性。在哪里:

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

但是,尽管数字是正确的,但它们在矩阵内的顺序发生了变化。我不明白出了什么问题。

标签: matlab2dfftdft

解决方案


错误在这里

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

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

自从

H = Hy*Hx

然后

c2 = fft(Hy)*fft(Hx)

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


推荐阅读