DFT/FFT of an exponential decay -> Lorentzian
조회 수: 21 (최근 30일)
이전 댓글 표시
Hello!
I will be trying some curve fitting with Lorentzians. But first, from theory it is known that the real part of the Fourier transform of a decaying exponent is a Lorentzian. In my code, the decaying exponent is in the time domain, while the Lorentzian is in the frequency domain.
The code below performs an FFT of a decaying exponent and to my surprise the real part (on figure 1) of the resulting Lorenzian doesn't asymptotycally go to 0 but to 0.5. I include also a separate plot of a Lorentzian (figure 2) for comparison. I have not scaled the two waveforms. As a matter of fact, here we do not have a problem of scale but a problem of shift, which comes from the FFT itself.
In my mind, the real part of the resulting Lorentzian must go to 0. What's going on, what I am missing from the theory?
Thanks for answering!
George
function test_decay
Fs = 1e6; % sampling frequency
tend = 10e-3; % end time of the signal
t = 0:1/Fs:tend-1/Fs;
tau1 = 100e-6;
y = exp(-t/tau1);
% window = hann(numel(t))'; % window = 0.5*(1-cos((w*t)/N));
%y = y.*window;
lor = real(fftshift(fft(y)));
f = (0:length(lor)-1)*(Fs-1)/length(lor);
figure(1)
plot(f, lor)
title('FFT of a decaying exponent')
figure(2)
plot(f, lorentz(f, 0.5e6, tau1))
title('Lorentzian')
end
function y = lorentz(x, x0, tau)
num = 1/tau;
den = (x-x0).^2 + (1/tau).^2;
y = (1/pi)*(num./den);
end
댓글 수: 0
답변 (1개)
Meg Noah
2020년 1월 10일
Lorentizans are tricky. The long 'wings' confound spectroscopists to model data digitally with speed and accuracy and to reduce data.
I would use this normalized form of the function
Recognizing that
Then analyse the data for what will normalize it and what where the FWHM is as initial conditions for a curve fit.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Curve Fitting Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!