2012-12-10 3 views
4

저는 현재 2 차원 푸리에 쉬프트 정리를 이해하려고합니다.푸리에 쉬프트 정리 matlab

내가 지금까지 학습 한 바에 따르면, 이미지 공간에서의 번역은 위상의 차이가 있지만 주파수 공간의 크기는 아닙니다.

작은 예제로 이것을 보여 주려고했으나 행의 이동 만 수행했지만 열의 이동은하지 않았습니다. 여기에 제 생각에는

clear all 
close all 
Iin = zeros(128); 
Iin(10:20,10:20)=1; 
figure,imagesc(Iin) 
Y = fft(Iin); 
figure, imagesc(fftshift(log10(abs(Y)))); 

Iin = zeros(128); 
Iin(10:20,20:30)=1; 
figure,imagesc(Iin) 
Y = fft(Iin); 
figure, imagesc(fftshift(log10(abs(Y)))); 

Iin = zeros(128); 
Iin(20:30,10:20)=1; 
figure,imagesc(Iin) 
Y = fft(Iin); 
figure, imagesc(fftshift(log10(abs(Y)))); 

3 크기 플롯이 같은 결과를 산출한다 (나는 단지 여기 크기의 플롯을 보여주는거야) 작은 데모입니다. 아무도 내가 여기서 잘못하고있는 것을 설명 할 수 있습니까?

난 당신이 이것에 대한 FFT,하지 FFT2 사용하려는 생각, 당신의 도움을 주셔서

안부,

미니

답변

3

를 대단히 감사합니다.

fft2는 2 차원 푸리에 변환을 계산합니다. 이것은 당신이 실연했다고 말한 것입니다. fft는 각 행의 푸리에 변환만을 계산합니다.

코드에서 fft2를 fft2로 대체하면 모든 것이 작동합니다.

+0

고맙습니다. 한 시간 이상 코드를보고 있었지만 fft2에서 누락 된 2를 찾을 수 없었습니다. – Mini

+0

문제 없음 :). 귀하의 코드에서 플롯을 볼 때까지 뭔가 잘못되었다는 것을 알기 전까지는 저에게 즉시 뛰어 들지 않았습니다. – dustincarr

+0

+1 : 이것은 매우 쉬운 실수입니다. Octave (MATLAB 복제)를 사용하고'fft2' 대신'fft'를 타이핑하면 과거에 많은 시간을 낭비했습니다. 결과는 그럴듯한 것으로 보입니다. 실수를 찾기가 어려울 수 있습니다. –