DFT/FFT of an exponential decay -> Lorentzian

21 views (last 30 days)
George
George on 10 Jan 2020
Answered: Meg Noah on 10 Jan 2020
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

Answers (1)

Meg Noah
Meg Noah on 10 Jan 2020
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.

Categories

Find more on Curve Fitting Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!