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