2014-10-11 2 views
1

exp (-t^2)의 함수를 분석 푸리에 변환 exp (- (w^2)/4)/sqrt (2)와 비교하려고합니다.), -3에서 3 주파수 범위.Matlab의 분석 FT 솔루션 함수의 FFT 비교

나는 다음과 같은 matlab 코드를 작성하고 지금은 아무런 성공없이 여러 번 반복했다.

fs = 100; %sampling frequency 
dt = 1/fs; 
t = 0:dt:10-dt; %time vector 
L = length(t); %number of sample points 
%N = 2^nextpow2(L); %necessary? 

y = exp(-(t.^2)); 
Y=dt*ifftshift(abs(fft(y))); 

freq = (-L/2:L/2-1)*fs/L; %freq vector 

F = (exp(-(freq.^2)/4))/sqrt(2); %analytical solution 

%Y_valid_pts = Y(W>=-3 & W<=3); %compare for freq = -3 to 3 
%npts = length(Y_valid_pts); 
% w = linspace(-3,3,npts); 
% Fe = (exp(-(w.^2)/4))/sqrt(2); 

error = norm(Y - F) %L2 Norm for error 

hold on; 
plot(freq,Y,'r'); 
plot(freq,F,'b'); 
xlabel('Frequency, w'); 
legend('numerical','analytic'); 
hold off; 

지금 당장 볼 수 있듯이 두 개의 플롯이 비슷하게 보이도록하려고합니다. 결국, 나는 두 가지 일을하는 방법을 찾고 싶다 : 1) 최소 샘플링 속도, 을 찾는다. 2) 최소 샘플 수인 을 찾는다. (두 샘플 사이의 차이의 L2 표준으로 정의된다. 솔루션) 10-4.

나는 이것이 매우 간단하다고 생각하지만 두 그래프를 시각적으로 동의하는 것처럼 보이지는 않습니다. 누군가 내가 잘못 가고있는 곳과 위의 두 가지 사항 (최소 샘플링 빈도와 최소 샘플 수)을 어떻게 해결할 수 있는지 알려 주시면 매우 감사하겠습니다.

감사

답변

2

제 주목할 것은 tables of Fourier transforms로부터 유도 될 수있는 푸리에은 +/- 무한 범위 함수 exp(-t^2)위한 쌍 변환이다 사실이다

Gaussian FT: exp(-t^2) <==> exp(-(w^2)/4)*sqrt(pi)

마지막으로, 함수 exp(-t^2)을 생성 할 때 t의 범위를 (+/- 무한 범위 전체를 취하는 대신) 양수 값으로 제한합니다. 유지하는 관계 하면 이와 같은 뭔가 exp(-t^2) 생성 할 것이다 :

w = 2*pi*freq; 
: 다음

t = 0:dt:10-dt;  %time vector 
t = t - 0.5*max(t); %center around t=0 
y = exp(-(t.^2)); 

를 가변 w 관통 정규화 주파수 freq 관련된 라디안 각 주파수를 나타내고

따라서

F = (exp(-((2*pi*freq).^2)/4))*sqrt(pi); %analytical solution