2017-01-18 12 views
-1

DFT에서 x 축 변환에 문제가 있습니다. 내 x 축의 샘플 모델은 미터 (m)이고 y 축은 rho (산란 길이 밀도)를 나타냅니다. matlab에 fft(rho)을 가져간 후에 나는 강도를 얻을 것이지만 x 축을 얻는 방법을 알 수는 없다. DFT 이후 x 축을 계산하기위한 특정 수식이나 한계가 있는지 알고 싶습니다. 여기 DFT에서 x 축의 변환이 matlab에서 비평 행 간격 샘플의 경우에만 적용

난 그냥 내 x 축에 대한 값을 원하는 내 소스 코드, 입니다 :

al=100; 
nipam=20; 
water=300; 
j=1; 
for i=1:15 
    rho(j:j+al)=2.07; 
    k=j+al; 
    rho(k:k+nipam)=0.81; 
    l=k+nipam; 
    rho(l:l+water)=-0.56; 
    m=l+water; 
    rho(m:m+nipam)=0.81; 
    j=m+nipam; 
end 
del_x=1; 
xmax=6600; 
x=(0:del_x:xmax); 
% plot(x,rho) 
A=abs(fft(rho)); 
I=A.^2; 
% del_q=2*pi./xmax; I want to how should I get the x axis???after doing FFT 
% qmax=2*pi./del_x; 
% q=(0:del_q:qmax); 
plot(q,I) 

답변

-1

plot(x, rho) 다음, 당신의 "시간 영역"(귀하의 경우 공간 영역)의 정확한 플롯 경우 이하에서, 주파수 도메인에서의 정확한 축이다 : 여기

q1 = [0 : length(x) - 1]/length(x)]/diff(x(1:2)); % q1 in units of cycles per meter 
plot(q1, abs(fft(rho))) 

, x 내재 샘플 속도보다 낮은 단지 0 내지 q1 실행. 때문에 실제 입력에 대한 DFT의 대칭, 당신은 또한 -0.5 * sample rate에서 실행 주파수 축에 대해 생각할 수있는 단지 적은 0.5 * sample rate 이상 :

q2 = q1 - diff(x(1:2))/2; % still cycles per meter 
plot(q2, abs(fftshift(fft(rho)))) 

나는 두 주파수 축과 주파수 영역 계수를 이동 점에 유의 그들 자신은 fftshift입니다.

주파수 축을 다른 단위로 원하면 축척을 조정할 수 있습니다. 예를 들어, 2 * pi * q2은 1 초당 라디안으로 2 * pi의 단위를 해석 할 수 있으므로 미터 당 라디안 단위로 표시합니다.

의미가 있습니까?

+0

그렇습니다. 그러나 불균일하게 간격을 둔 샘플의 경우 엄격하게 말합니다. x 축은 '2 * pi * q'로 곱하는 것을 제외하고는 변경 될 것이고 물론 q는 q = (1 : length (x) -1)' – Mir