
Write different super gaussian function with same fwhm but different order
12 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hugo
am 5 Feb. 2025
Bearbeitet: David Goodmanson
am 6 Feb. 2025
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

0 Kommentare
Akzeptierte Antwort
David Goodmanson
am 6 Feb. 2025
Bearbeitet: David Goodmanson
am 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).
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!