how to convrt the FWHM value to picoseconds when given in nanometers for optical gaussian pulses.
1 view (last 30 days)
Show older comments
Vijendra Kumar Prajapati
on 19 Jan 2016
Commented: Thor
on 17 Feb 2021
I am generating a optical gaussian pulse. I have got the FWHM values in nanometer. I want values in picoseconds.
0 Comments
Accepted Answer
John BG
on 19 Jan 2016
Mr Egan has posted in Mathworks website the following function:
function width = fwhm(x,y)
% function width = fwhm(x,y)
%
% Full-Width at Half-Maximum (FWHM) of the waveform y(x)
% and its polarity.
% The FWHM result in 'width' will be in units of 'x'
%
%
% Rev 1.2, April 2006 (Patrick Egan)
y = y / max(y);
N = length(y);
lev50 = 0.5;
if y(1) < lev50 % find index of center (max or min) of pulse
[garbage,centerindex]=max(y);
Pol = +1;
disp('Pulse Polarity = Positive')
else
[garbage,centerindex]=min(y);
Pol = -1;
disp('Pulse Polarity = Negative')
end
i = 2;
while sign(y(i)-lev50) == sign(y(i-1)-lev50)
i = i+1;
end %first crossing is between v(i-1) & v(i)
interp = (lev50-y(i-1)) / (y(i)-y(i-1));
tlead = x(i-1) + interp*(x(i)-x(i-1));
i = centerindex+1; %start search for next crossing at center
while ((sign(y(i)-lev50) == sign(y(i-1)-lev50)) & (i <= N-1))
i = i+1;
end
if i ~= N
Ptype = 1;
disp('Pulse is Impulse or Rectangular with 2 edges')
interp = (lev50-y(i-1)) / (y(i)-y(i-1));
ttrail = x(i-1) + interp*(x(i)-x(i-1));
width = ttrail - tlead;
else
Ptype = 2;
disp('Step-Like Pulse, no second edge')
ttrail = NaN;
width = NaN;
end
Wolfram has a table you may find useful
Please vote and flag this answer if you find it useful or interesting,
thanks
John
2 Comments
More Answers (0)
See Also
Categories
Find more on Creating and Concatenating Matrices 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!