Software … leistungsfähige Tools für Ihre Forschung & Entwicklung!

RP Fiber Power: Simulations- und Design-Software für Faseroptik, Faserverstärker und Faserlaser

Beispiel: Simulation eines Faserkopplers

Hier zeigen wir, wie man mit RP Fiber Power Faserkoppler analysieren und optimieren kann. Wir benutzen die numerische Strahlpropagation, um einen Koppler mit zwei Inputs und zwei Outputs zu untersuchen. Hier kommen zwei Wellenleiter im Koppler nahe genug zusammen, dass ihre evaneszenten Wellen in Kontakt miteinander kommen.

Beschreibung des Modells

Wir müssen zunächst einmal das Brechungsindexprofil des Kopplers festlegen. Wir beginnen mit einer Funktion für die <$y$>-Position eines Wellenleiters als Funktion der <$z$>-Koordinate:

y_c := 10 um  { vertical position of core in the coupling region }
y_i := 50 um  { vertical position of core in the input / output regions }
L_c := 2 mm  { length of the coupling region }
L_i := 10 mm  { length of the input and output region }

L_tot := 2 * L_i + L_c { total length }
y_co(z):= { vertical core position vs. z }
  if z <= L_i then
    y_c + (y_i - y_c) * 0.5 * (1 + cos(pi * z / L_i))
  else if z <= L_i + L_c then
    y_c
  else y_c + (y_i - y_c) * 0.5 * (1 + cos(pi * (L_tot - z) / L_i))

Dann definieren wir das transversale Brechungsindexprofil eines Wellenleiters mit einer Super-Gauß-Funktion:

n_cl := 1.45  { cladding index }
n_co := n_cl + 0.8e-3  { core index }
dn_co(r) := if abs(r) <= r_co then (n_co - n_cl) * exp(-(1.3 * r / r_co)^6)

Hiermit definieren wir das Indexprofil eines einzelnen geraden Wellenleiters:

n_f(r) := n_cl + dn_co(r)

Die gesamte Struktur wird nun durch ein dreidimensionales Brechungsindexprofil definiert und in Abbildung 1 gezeigt:

n_device(x, y, z) := 
  n_cl
   + dn_co(sqrt(x^2 + (y - y_co(z))^2))  { upper waveguide }
   + dn_co(sqrt(x^2 + (y + y_co(z))^2))  { lower waveguide }
refractive index profile of fiber coupler
Abbildung 1: Brechungsindexprofil des Faserkopplers in der yz-Ebene.

Natürlich könnte man auch kompliziertere Strukturen definieren, z. B. mit einer Verjüngung der Wellenleiter in der Kopplungsregion oder mit einer Verdrillung.

Wir können nun den mode solver verwenden, um die Moden der einzelnen Wellenleiter zu erhalten, und benutzen diese für den Input des oberen Wellenleiters. Wir nehmen also an, dass das Licht perfekt in die LP01-Mode dieses Wellenleiters eingekoppelt wird:

calc set_n_profile("n_f", r_co)

calc
  begin
    bp_set_device(1);
    bp_set_grid(x_max, N_x, y_max, N_y, z_max, N_z, N_s);
    bp_set_channel(lambda);
    bp_set_n_z('n_device(x, y,z)', 'trunc(y_co(z) / (0.2 um))');
    bp_set_A0('A_lm_xy(0, 1, lambda, x, y - y_i)');
  end

Das Indexprofil für die numerische Propagation wird gesetzt mit der Funktion bp_set_n_z(). Für jeden <$z$>-Wert wird das Indexprofil in der xy-Ebene nur dann neu berechnet, wenn sich die <$y$>-Position der Wellenleiter um mehr als ca. 0,2 μm geändert hat; dies spart etwas Rechenzeit ein.

Mit ein paar mehr Code-Zeilen (hier nicht gezeigt) wird das numerische Gitter definiert. Dieses hat eine Ausdehnung von 50 μm in der <$x$>-Richtung, 160 μm in der <$y$>-Richtung und 22 mm (entsprechend der Gesamtlänge des Kopplers) in der <$z$>-Richtung. Die numerische Auflösung in <$x$>-, <$y$>- und <$z$>-Richtung ist 1,56 μm, 1,25 μm und 10 μm.

Ergebnisse

Nach diesen Definitionen können wir einfach die funktion bp_I(x, y, z) für die optische Intensität in der Struktur verwenden. Die Quadratwurzel daraus (also die Amplitudeverteilung) wird in Abbildung 2 gezeigt. Man sieht, wie Licht in den unteren Wellenleiter gekoppelt wird.

amplitude distribution in the fiber coupler
Abbildung 2: Amplitudenverteilung im Faserkoppler für eine Distanz der Wellenleiter von 20 μm.

Auf der rechten Seite werden die Leistungen in den zwei Ausgängen angezeigt. Wir nehmen hierfür nur die Leistung in der LP01-Mode, nicht die in möglichem Streulicht z. B. aufgrund der Biegung der Wellenleiter. Dies ist möglich, indem man den Überlapp der Amplitudenverteilung mit der LP01-Mode mit einem Flächenintegral berechnet:

P_out_1():= { output power of port 1 }
  begin
  var cy, d, x1, x2, y1, y2;
  cy := dy * round(y_i / dy); { center position of the output port }
  d := 3 * r_co;
  x1 := -dx * round(d / dx);
  x2 := +dx * round(d / dx);
  y1 := cy - dy * round(d / dy);
  y2 := cy + dy * round(d / dy);
  abs2(int(int(bp_A%(x, y, z_max) * A_lm_xy(0, 1, lambda, x, y - y_i), 
    x := x1 to x2 step dx),
    y := y1 to y2 step dy));
  end

Wegen der effizienten Implementierung der Strahlpropagation in RP Fiber Power kann ein Diagramm wie oben auf einem gewöhnlichen PC innerhalb weniger Sekunden erzeugt werden.

Wir können nun den Abstand der beiden Wellenleiter in der Kopplungsregion von 20 μm auf 16 μm reduzieren. Das Licht koppelt dann weitgehend zum unteren Wellenleiter über:

amplitude distribution in the fiber coupler
Abbildung 3: Amplitudenverteilung im Faserkoppler für eine reduzierte Distanz der Wellenleiter von 16 μm.

Für das nächste Diagramm erhöhen wir zusätzlich die Länge der Kopplungsregion von 2 mm auf 10 mm. Wir beobachten dann ein oszillierendes Verhalten in der Kopplungsregion:

amplitude distribution in the fiber coupler
Abbildung 4: Amplitude distribution in the fiber coupler for an increased length of the coupling region.

(zurück zu der Liste der Beispiele)