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,
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/163050/image.png)
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 个评论
回答(0 个)
此问题已关闭。
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!