DFT/FFT of an exponential decay -> Lorentzian

조회 수: 21 (최근 30일)
George
George 2020년 1월 10일
답변: Meg Noah 2020년 1월 10일
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