DFT/FFT of an exponential decay -> Lorentzian

22 次查看(过去 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

回答(1 个)

Meg Noah
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.

类别

Help CenterFile Exchange 中查找有关 Curve Fitting Toolbox 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by