How to prove the signal separability property of 2D DFT? MATLAB

Viewed 241

I tried to prove the separability of a signal property of 2D Fourier transform using a 2D matrix that's separable to 2 1D vectors. Where:

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

Then F(u,v) = F(u)*F(v)

Using the following code:

% 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

But, though the numbers are correct, their ordering inside the matrix is shifted. I don't understand what's wrong.

1 Answers

The error is here

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

Why do you apply the double transposition fft(Hx')'?

Since

H = Hy*Hx

then

c2 = fft(Hy)*fft(Hx)

Note that in matlab the operation ' performs the complex conjugate transpose, that is the reason why fft(Hx) is not equal to fft(Hx')', since the second transposition changes the sign of the imaginary part.

Related