I would like to rewrite fftshift(f​ft2(fftshi​ft(x)))) as F*x*F.' but how do I handle the fftshifts?

I would like to rewrite fftshift(fft2(fftshift(x)))) as F*x*F.' (where F = dftmtx(N) and N is the size of x), but how do I handle the fftshifts?
Thanks so much for your help!
Christine

 Accepted Answer

F=fft( fftshift(eye(N),1) ,[],1);
F=fftshift(F,1);

3 Comments

Or, if you have the Signal Processing Toolbox,
A=fftshift(speye(N),1);
F=A*dftmtx(N)*A;
You're welcome. But if this is related to your other post, and you are trying to solve
fftshift(fft2(fftshift(x)))) = y
I hope you realize that the solution is just
x = fftshift(ifft2(fftshift(y))))
In other words, there is no reason to be seeking the matrix representation, F. A linear algebraic solution would also be slower computationally.

Sign in to comment.

More Answers (0)

Asked:

on 9 Feb 2015

Edited:

on 10 Feb 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!