Borrar filtros
Borrar filtros

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

3 visualizaciones (últimos 30 días)
I am generating a optical gaussian pulse. I have got the FWHM values in nanometer. I want values in picoseconds.

Respuesta aceptada

John BG
John BG el 19 de En. de 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

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by