Строите для каждого пика распределение по гауссиане или по формуле Лоренца так, чтобы получалась нужная полуширина. Для Гаусса понадобится
sigma = FWHM/2.3
для Лоренца
gamma = FWHM/2
затем складываете полученные распределения.
Проба к комменту из другого ответа. Похоже на правду - полная ширина на половинной высоте 2*(30.0-28.2)=3.6 более-менее соответствует (я где-то двойку потерял, но порядок по крайней мере, совпадает), на вашем графике видимая ширина делений 30-40 должна быть.
import math
def gamma(labd, d, thet):
return labd * 1.15 / (d * math.cos(thet / 2))
def caushi(x, x_0, gam):
return gam / math.pi / ((x - x_0)**2 + (gam / 2)**2)
labd = 1.54e-10 #взял Cu Kальфа
d = 30e-10 #зерно 30 ангстрем
thet = math.pi/6 #30 градусов взял от фонаря
fwdt = gamma(labd, d, thet)
print(math.degrees(fwdt))
# судя по длине 1800, у вас шаг 0.1 градуса
# обсчитаем окрестность пика
for degr10 in range((30-10)*10, (30+10)*10):
th = math.radians(degr10/10)
val = caushi(th, thet, fwdt)
print(degr10/10, val)
3.501677622166338 #расчетная ширина 3.5 градуса
20.0 0.6196349037715564
20.1 0.6318344400850923
20.2 0.6443939311724972
20.3 0.657327516883247
20.4 0.6706500297920732
20.5 0.6843770357877094
20.6 0.6985248774229961
20.7 0.7131107202396144
20.8 0.7281526022990644
20.9 0.743669487171602
21.0 0.7596813206568397
21.1 0.7762090915338139
21.2 0.7932748966647674
21.3 0.810902010805847
21.4 0.8291149615097606
21.5 0.8479396095403627
21.6 0.8674032352575163
21.7 0.8875346314728186
21.8 0.908364203323171
21.9 0.9299240757602787
22.0 0.9522482093104662
22.1 0.9753725248211133
22.2 0.9993350379783968
22.3 1.02417600445633
22.4 1.0499380766401605
22.5 1.0766664729589415
22.6 1.1044091609632547
22.7 1.1332170553958463
22.8 1.1631442326263781
22.9 1.1942481629577755
23.0 1.2265899624623149
23.1 1.260234666171897
23.2 1.29525152463072
23.3 1.3317143260214575
23.4 1.369701746300043
23.5 1.4092977300212732
23.6 1.450591904809904
23.7 1.4936800327321111
23.8 1.538664502152354
23.9 1.5856548640235446
24.0 1.6347684169563625
24.1 1.6861308458487811
24.2 1.7398769193320494
24.3 1.7961512518056828
24.4 1.8551091363931689
24.5 1.916917455752156
24.6 1.98175567831653
24.7 2.0498169482304713
24.8 2.1213092779500906
24.9 2.196456853227343
25.0 2.2755014609393416
25.1 2.358704050962316
25.2 2.4463464439833187
25.3 2.538733197751929
25.4 2.6361936447402576
25.5 2.739084114423365
25.6 2.847790353306527
25.7 2.9627301552680323
25.8 3.0843562135654015
25.9 3.213159203718528
26.0 3.349671103103819
26.1 3.494468748036311
26.2 3.648177621817972
26.3 3.8114758569573857
26.4 3.985098420574799
26.5 4.169841432683914
26.6 4.366566541039608
26.7 4.576205241599695
26.8 4.799762987906029
26.9 5.038322872787865
27.0 5.293048587982793
27.1 5.565186267048216
27.2 5.856064689006435
27.3 6.167093158522659
27.4 6.499756176589463
27.5 6.8556037673034815
27.6 7.236236026097906
27.7 7.643280100337395
27.8 8.078357407796215
27.9 8.543038455605537
28.0 9.038782171621
28.1 9.566856257045139
28.2 10.128234805747816 #полувысота
28.3 10.723469455093301
28.4 11.352530843220523
28.5 12.014618431573652
28.6 12.707939164163337
28.7 13.429459374502633
28.8 14.174640182629355
28.9 14.937174536648365
29.0 15.708753829544754
29.1 16.47890273921285
29.2 17.234930654848235
29.3 17.96205363043808
29.4 18.64373812321928
29.5 19.262302576898342
29.6 19.799782452609527
29.7 20.239019544866352
29.8 20.56488386810346
29.9 20.76548840262674
30.0 20.83322912443076 # max
30.1 20.765488402626733
30.2 20.564883868103443
#дальше симметрично