Write different super gaussian function with same fwhm but different order

7 views (last 30 days)
Hi,
I consider a gaussian pulse : how do I define in order to have . I did solve : leading to .
But when I plot and measure my fwhm I get varying values of the fwhm meanwhile the value at MAXpower/3 does not change... Where did I go wrong?
Here is my code :
%%Definition des parametres d'entree de la source%%%%%%%%%%%%%%%%%%%%%%%%%%
freq_pulse=400e3;
T_pulse=1/freq_pulse;
Pmoy=40e-6;
tau0=55e-12;
E0=Pmoy/freq_pulse;
pulse_form=0;% ->0 : gaussien 1: sech
Chirp=0;
lambda0=1030e-9;
ResolutionSSF=100;
Nsamples=2^16;
TimeWindow=15;
betterfactor=10;
Timewin=tau0*TimeWindow; %sqrt(Nsamples)*
dtau=Timewin/Nsamples; %time sep samples
Fs=1/dtau; %frequence d'echantillonage
dF=1/Timewin; %sep freq d'echantillonage
domega=2*pi*dF; %angular freq
%%Definition de l'espace temporel
tau=(-Nsamples/2:(Nsamples/2)-1)*dtau*1e12;
%%Definition de l'espace frequentiel
Dfreq=(-Nsamples/2:1:(Nsamples/2)-1)*dF;
%%Definition de l'espace spectral
omega0=2*pi*3e8/lambda0;
dL=2*pi*3e8/omega0^2*domega*1e9;
Domega=(-Nsamples/2:Nsamples/2-1)*domega;
Lambda=((-Nsamples/2:Nsamples/2-1)*dL+lambda0*1e9);
%tau0=tau0;
Pmoy=200e-6;
for degGauss=3
tausupG=tau0/(2^(3/2)*log(2)^(1/(2*degGauss)));
%tau0=tau0/(2*sqrt(2*log(2)));
%u_gauss=exp(-log(2)*(4*(tau*1e-12).^2./(tau0.^2)).^degGauss);
u_gauss=exp(-((tau*1e-12).^2./(2*tau0.^2)).^degGauss);
end
Thanks

Accepted Answer

David Goodmanson
David Goodmanson on 6 Feb 2025
Edited: David Goodmanson on 6 Feb 2025
Hi Hugo,
There seems to be some confusion as to whether the constant that is used as the reference constant between various values of m is fwhm or t0. If it's t0 (fwhm still being constant) then:
tau_m = tau1*log(2)^((m-1)/(2*m)) % I renamed tau0 to tau1 since it corresponds to m = 1.
Adding the following to the end of your code
Pmoy=200e-6;
tau1 = tau0;
u_gauss = [];
for m = 1:3
taum = tau1*log(2)^((m-1)/(2*m));
u_gaussm = exp(-(((tau*1e-12).^2./(2*taum.^2))).^m);
u_gauss = [u_gauss;u_gaussm];
end
figure(1)
plot(tau,u_gauss)
grid on
results in
(saving by concatenation is certainly not recommended for variables with a large number of elements (it can be slow) and is a bad habit to get into in general but in a case like this it's fine).

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products


Release

R2024a

Community Treasure Hunt

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

Start Hunting!