function g = shftdctocnt(f) % Spatial domain process to shift DC value of the Fourier transform of a 1D % (vector) or 2D (matrix) signal to center % u = class(f); f = double(f); [m, n] = size(f); mm = m + mod(m, 2)*double(m > 1); nn = n + mod(n, 2)*double(n > 1); tmp = zeros(mm,nn); tmp(1:m, 1:n) = f; f = tmp; x = (0:mm-1).'; y = (0:nn-1); g = (((-1).^x) * ((-1).^y)) .* f; % g = ((exp(j*pi*(m-mod(m,2))/m*(0:m-1).') * % (exp(j*pi*(n-mod(n,2))/n*(0:n-1))))) .* f; if dimensions are even or % odd. % g = eval([u, '(g)']);