Info

此问题已关闭。 请重新打开它进行编辑或回答。

Exponential decay fitting with Discrete Fourier transform (DFT)

1 次查看(过去 30 天)
Hi
My Matlab version is R2016b.
I am trying to make Matlab code for exponential decay fitting with discrete fourier transform.
Details are shown in the article below. (I need only DFT part)
Below is summary for the only required parts,
And below is a part of my code for this. Because of "iwt" part is negative than what matlab fft function uses (please see "More About" -> "Discrete Fourier Transform of Vector" section of this hyperlink for fft) and k should be k-1, I modified that way. I am still confusing about sign for phase or angle(phase). "tau" is reciprocal of beta. (tau = 1/beta).
elseif fit_method == 1
tic;
nfft = 1024;
dt = 10^-8;
F = fft(xy(:,2),nfft);
k = [1:1:nfft]';
wt = -2*pi.*(k-1)/nfft;
phase = angle(F);
tau = dt./log((cot(phase).*sin(wt))+cos(wt));
fit_success = 0;
toc;
However, the result is bad, and I do not understand what is my mistake.
Please help me to solve this issue.
xy is two column double data. First column is time data from 0 to 175 microsecond with interval of 10 nanosecond. Second column data is intensity (amplitude) data having exponential decay shape.
Thanks

回答(0 个)

此问题已关闭。

Community Treasure Hunt

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

Start Hunting!

Translated by