Write different super gaussian function with same fwhm but different order

12 ビュー (過去 30 日間)
Hugo
Hugo 2025 年 2 月 5 日
編集済み: David Goodmanson 2025 年 2 月 6 日
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

採用された回答

David Goodmanson
David Goodmanson 2025 年 2 月 6 日
編集済み: David Goodmanson 2025 年 2 月 6 日
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).

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

製品


リリース

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by