P2 MikrowellenVersuch
Mit diesen Makros fuer OpenOffice können die theoretischen Kurven der Spalte/Gitter geplottet werden.
Die Anpassung an Excel VBA sollte einfach sein. Benutzung der Macros auf eigene Gefahr :-)
Einbinden in OpenOffice
Unter Tools findet sich der menupunkt Macros.
Dort klickt man den Namen der Arbeitsmappe an und klickt dann auf new.
Ein neues Makro-Modul wird angelegt und der BASIC Editor wird geöffnet.
Die Macros dort hineinkopieren und ab sofort stehen sie als Funktionen
innerhalb der Tabellenkalkulation zur Verfügung.
function doppelspalt
REM Diese Funktion berechnet die Intensitaetsverteilung eines Doppelspalts
REM mit folgenden Eingabevariablen (ohne Beugungsberuecksichtigung)
REM lambda =Wellenlaenge in cm
REM theta Winkel im Gradmass (0..360)
REM I maximale Intensitaet
REM d Spaltabstand in cm
function doppelspalt ( lambda as double,theta as double,I as double, d as double) as double
dim phi as double
dim theta_rad as double
dim ds as double
theta_rad= Pi/180.0*theta
phi=Pi*d*sin(theta_rad)/lambda
if (abs(theta) > 0.0001) then
ds=I*sin(2.0*phi)^2/sin(phi)^2
else
ds=4.0*I
end if
doppelspalt=ds
end function
function einzelspalt
REM Diese Funktion berechnet die Intensitaetsverteilung eines Einzelspaltes
REM mit folgenden Eingabevariablen
REM lambda =Wellenlaenge in cm
REM theta Winkel im Gradmass (0..360)
REM I maximale Intensitaet
REM a Spaltbreite in cm
function einzelspalt ( lambda as double,theta as double,I as double,a as double) as double
dim phi as double
dim theta_rad as double
theta_rad= Pi/180.0*theta
phi=Pi*a*sin(theta_rad)/lambda
if (abs(theta) > 0.0001) then
einzelspalt=sin(phi)^2/phi^2
else
einzelspalt=I
end if
end function
function Gitter
REM Diese Funktion berechnet die Intensitaetsverteilung eines Gitters
REM mit folgenden Eingabevariablen (mit Beugungsberuecksichtigung)
REM lambda =Wellenlaenge in cm
REM theta Winkel im Gradmass (0..360)
REM I maximale Intensitaet
REM a Spaltbreite in cm
function gitter ( lambda as double,theta as double,I as double,a as double, d as double, n as integer) as double
dim phi as double
dim phi2
dim theta_rad as double
theta_rad= Pi/180.0*theta
phi=Pi*d*sin(theta_rad)/lambda
phi2=Pi*a*sin(theta_rad)/lambda
if (abs(theta) > 0.0001) then
gitter=I*sin(phi2)^2/phi2^2*sin(n*phi)^2/sin(phi)^2
else
gitter=4*I
end if
end function
written by Marcel Stanitzki