how to convrt the FWHM value to picoseconds when given in nanometers for optical gaussian pulses.

3 次查看(过去 30 天)
I am generating a optical gaussian pulse. I have got the FWHM values in nanometer. I want values in picoseconds.

采纳的回答

John BG
John BG 2016-1-19
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by