Projektname | HFSFIT |
Aufgabenstellung | Programm zur Auswertung der mit HFS gemessenen atomaren Spektren. Mittels "Least Square Fit" lassen sich Lorenz oder Gausskurven (oder Summen der beiden) an die Messdaten anpassen. Umfangreiche Zusatzfunktionen erlauben die Berechnung von atomaren Hyperfeinstrukturkonstanten oder die Einblendung zusätzlicher Crossoversignale in die Anpassung. |
Auftraggeber | Physikalisches Institut der Universität Tübingen |
Zeitraum | 1990-1992 |
Zielsystem | 80386/80486 PC mit 10 MB Festplatte und 2 MB
RAM. Betriebssystem Microsoft Windows 3.0. |
Programmiersprache | Borland Pascal |
|
|
Programmfunktionen | |
Das Hauptfenster des Programms zeigt das gemessene Spektrum (grün) und die theoretische Kurve (rot). Die für die Anpassung notwendigen Startparameter (Linienpositionen usw.) werden interaktiv mit der Maus festgelegt. Eine Zoomfunktion erlaubt die Vergrößerung von Bereichen. |
×
Datenauswertung
|
Nach Zuordnung der quantenmechanischen Drehimpulswerte für die einzelnen Übergänge kann ein theoretisches Spektrum berechnet werden. Die dafür notwendigen A/B-Faktoren werden aus den Messdaten ermittelt. |
×
Eingabe Fitparameter
|
Die Daten können in verschiedenen Formaten ausgegeben werden: Als normale Windows Druckausgabe, als HPGL Plotdatei oder im PicTeX Format. Eine Vorschauansicht erlaubt die Einstellung des gewünschten Druckumfangs. |
×
Druckvorschau
|
×
Druckeinstellungen
|
|
Eine eingebauter Skriptinterpreter erlaubt die
Bearbeitung großer Datenmengen über Skripte. So kann ein
Skript z.B. eine Serie von Messdateien mit ihren Anpassungen
einlesen und über eine gewünschte Größen den
Mittelwert bilden. Das zugehörige Skript sieht dann so
aus: |
×
Makroeditor
|
%echo off output window output file log.hfm procedure exit ? "------------------" set &su1:=&su1/&n set &su2:= sqrt((&su2-&n*sqr(&su1))/(&n-1)) ? &n:1:0," ",&su1:1:2,"(",&su2:1:2,")" output ? &n:1:0," ",&su1:1:2,"(",&su2:1:2,")" return define ifeld : 611,609,608,607,606,605,604, 603,602,601,600,599; ,598,597,596,595,594,593,592,591, 590,589,588,587,586 define rstack: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 var &a,&i,&c1,&c2,&su1,&su2,&n set &n:=0 set &su1:=0 set &su2:=0 set &i:=1 1:getentry ifeld,&i,&a set &error:=0 l hfs&asc l hfs&af1/fit/nocheck data /bez105/F'1.5/F1.5 pop rstack getentry rstack,2,&c1 getentry rstack,3,&c2 if (&error=0) ? &a:1:0," ",&c1:1:1,"(",&c2:1:1,")" set &n:=&n+1 set &su1:=&su1+&c1 set &su2:=&su2+sqr(&c1) else output ? "Fehler beim Einlesen einer Messung [bel. Taste]" wait endif set &i:=&i+1 goto 1 |