opgaver:Uge4

(Difference between revisions)
Jump to: navigation, search
Line 15: Line 15:
 
{{hidden end}}
 
{{hidden end}}
 
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}
 
{{hidden begin|toggle=right|title=Løsning|titlestyle=background:#ccccff|bg2=#eeeeee}}
Først defineres parametrene for den Gaussiske linieprofil-model. Her defineres signalets amplitude <code>a</code>, baggrundens amplitude <code>d</code>, centrum af peaken <code>x0</code>, bredden af peaken <code>sig</code>, og tiden der i alt bliver målt i (i sekunder) <code>t_meas</code>,
+
Først defineres parametrene for den Gaussiske linieprofil-model. Her defineres signalets amplitude <code>a</code>, baggrundens amplitude <code>d</code>, centrum af peaken <code>x0</code> og bredden af peaken <code>sig</code>
  
 
:<code>a = 100;</code>
 
:<code>a = 100;</code>
Line 21: Line 21:
 
:<code>x0 = 5000;</code>
 
:<code>x0 = 5000;</code>
 
:<code>sig = 50;</code>
 
:<code>sig = 50;</code>
:<code>t_meas = 100;</code>
 
  
 
videre skal akserne for eksperimentet bestemmes; start og slut for hvor der skal måles, <code>x_min</code> og <code>x_max</code>, samt step-størrelsen <code>x_step</code>.  
 
videre skal akserne for eksperimentet bestemmes; start og slut for hvor der skal måles, <code>x_min</code> og <code>x_max</code>, samt step-størrelsen <code>x_step</code>.  
Line 35: Line 34:
 
og til sidst kan man også finde hvor lang tid der måles per datapunkt,
 
og til sidst kan man også finde hvor lang tid der måles per datapunkt,
  
:<code>t = t_meas / length(x_exp);</code>
+
:<code>t = 1;</code>
 
+
Denne skal selvfølgelig bare sættes til <code>t = 1</code> for denne første del af opgaven, for at sørge for at der tælles i et sekund per datapunkt (når man sætter denne værdi manuelt på denne måde, vil <code>t_meas</code> selvfølgelig bare blive ignoreret).
+
  
 
Nu kan man udregne sit model-datasæt ved at indsætte alle sine informationer i en Gaussisk funktion,
 
Nu kan man udregne sit model-datasæt ved at indsætte alle sine informationer i en Gaussisk funktion,
Line 58: Line 55:
  
  
 +
Man kan nu lave et fit til de simulerede data, ved hjælp af MATLAB's indbyggede <code>fit</code> funktion. Denne gang skal man fitte til en funktion man selv skriver ind:
 +
 +
:<code>f1 = fit(x_exp',y_exp','a*exp(-((x-b).^2)/(2*c^2))+d',...</code>
 +
::<code>'Startpoint', [a*t x0 sig b*t]);</code>
  
:<code></code>
+
Her er <code>Startpoint</code> option'en de første gæt til de fire parametre, altså amplitude, centrum, bredde og baggrund. Her er de bare givet som modellens værdier - men i den virkelige verden kender man selvfølgelig ikke modellen perfekt, og man må bare give nogle cirka-gæt.
  
 +
De fundne fit-parametre kan man få fra <code>f1</code> objektet. Selve <code>fit</code> funktionen kalder dem for <code>a</code>, <code>b</code>, <code>c</code> og <code>d</code> - efter hvad der blev skrevet som fit-funktion. De numeriske værdier af de bedste parameter-værdier fås så ved f.eks. <code>f1.a</code>. De fire interessante fittede parametre er altså
  
 +
:<code>a_fit = f1.a/t;</code>
 +
:<code>x0_fit = f1.b;</code>
 +
:<code>sig_fit = f1.c;</code>
 +
:<code>b_fit = f1.d/t;</code>
 +
[[File:uge4fig2.png|frame|De simulerede datapunkter for en Gaussisk linieprofil, sammen med et Gaussisk fit.]]
 +
og med disse kan man udregne fit-linien
  
 +
:<code>x_fit = x_min:0.05:x_max;</code>
 +
:<code>y_fit = t*a_fit(j)*exp(-((x_fit-x0_fit(j)).^2)./(2*sig_fit(j)^2)) + t*b_fit(j);</code>
  
 +
Til sidst kan man plotte de simulerede datapunkter sammen med fit-linien,
  
 +
:<code>figure</code>
 +
:<code>errorbar(x_exp,y_exp,err_exp,'b.','MarkerFaceColor', [0.4 0.4 0.8],...</code>
 +
::<code>'MarkerEdgeColor',[0.4 0.4 0.8])</code>
 +
:<code>hold on</code>
 +
:<code>plot(x_fit,y_fit,'g-')</code>
 +
:<code>axis([x_min-50 x_max+50 0 (a+b)*1.2*t])</code>
 +
:<code>xlabel('Bølgelængde [Å]')</code>
 +
:<code>ylabel('Intensitet [tællinger/s]')</code>
  
:<code></code>
+
Figuren kan ses her til højre.
 
{{hidden end}}
 
{{hidden end}}
  

Revision as of 10:32, 7 March 2012

I denne opgave skal I, lige som i sidste uge, fabrikere jeres egne data - denne gang en Gaussisk linieprofil med en bestemt bredde og placering, med Poisson statistik på tælletallene.


Contents

Opgave 1 - Spektrometer

Vi forestiller os et spektrometer, der tæller fotoner som funktion af bølgelængde; én bølgelængde ad gangen. Vi skal måle en enkelt spektrallinie. Liniens amplitude er 100 tællinger per sekund, liniens centrum 5000 Å, og den har bredde ($\sigma$) 50 Å. Der er en baggrund på 10 tællinger per sekund. Usikkerheden på tællinger er givet som $\sqrt{N}$ tællestatistik, og antages gaussisk.

Spørgsmål 1 - Simulation af data

Simulér en måleserie fra 4500 Å til 5500 Å med step af 10 Å, ét sekund per punkt. Brug MATLAB fit funktionen til at fitte en Gaussisk linieprofil til dataen. Vis de simulerede data og det bedste fit i samme plot.

Spørgsmål 2 - Flere måleserier

Kør 100 måleserier og lav histogrammer over fitværdierne. Brug histogrammer til at bestemme præcisionen af eksperimentet.

Spørgsmål 3 - Planlægning af måling

(SVÆRT) Hvis der er 100 sekunder til rådighed, hvordan skal målingen så planlægges for at bestemme liniens midtpunkt bedst? Og hvad med liniens bredde?

Spørgsmål 4 - Stor baggrund

(SVÆRT) Lad baggrunden være 100 tællinger per sekund og amplituden være 10 tællinger per sekund. Hvor længe skal der tælles for at det kan afgøres, om der er en peak (amplitude signifikant større end nul)?



Personal tools
Namespaces
Variants
Actions
Navigation
Opgaver
Andet
Toolbox
Commercial