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

English

RP ProPulse – Simulation der Ausbreitung ultrakurzer Pulse

Beispiel: Adiabatische Solitonen-Kompression

Wir untersuchen hier die adiabatische Solitonen-Kompression in einer photonic crystal fiber, bei der die chromatische Dispersion entlang der Faserstrecke immer mehr abnimmt. Hierdurch nimmt ebenfalls die Solitonen-Dauer ab. Er wird ebenfalls berücksichtigt, dass die Faser Dispersion höherer Ordnung hat, und die Nichtlinearität der Faser wird mit Berücksichtigung von self-steepening und stimulierter Raman-Streuung (SRS) modelliert.

resonator: ring
* FiberPiece [split = maxr(1,round(gamma_f(rt * dL) * dL * P_p() / phi_nl_max))]:
  GDD(l) = GVD_f(l,rt * dL) * dL,
  nlpol = gamma_f(rt * dL) * dL [f = f_R, h(t) = h(t), T = t_max_R, ss = 1]
resonator end

Die Faser wird in gleiche Abschnitte der Länge dL (1 cm) unterteilt. Diese Abschnitte werden formell als Element eines Resonators betrachtet, so dass die Resonatorumläufe aufeinander­folgenden Faserstücken entsprechen. Die chromatische Dispersion wird ortsabhängig gemacht, indem man eine entsprechende GVD-Funktion einsetzt. Diese wird berechnet durch lineare Interpolation zwischen den Eigenschaften zweier verschiedener Fasern. Dieselbe Methode wird für die Nichtlinearität der Faser angewandt. Der folgende Skriptcode zeigt, wie einfach solche Dinge in RP ProPulse implementiert werden können:

; General fiber parameters:
n2_f := 2.5e-20 { m^2 / W }
include "Raman h(t) for silica.inc"  { Raman response function of silica }
 
; Fiber 1:
n_f1 := 1.5
w_f1 := 1.4 um / 2
A_f1 := pi * w_f1^2
gamma_f1 := (2pi / lambda_ref) * n2_f / A_f1  { rad / (W * m) }
defarray D_f1[600, 1600, 100]
readlist l, D_f1[l]:
   600, -120
   700, -40
   800, 24
   900, 60
  1000, 82
  1100, 92
  1200, 100
  1300, 105
  1400, 108
  1500, 110
  1600, 111
D_f1(l) := (if l < 600 nm then -120 else if l > 1600 nm then 111 else D_f1~~[l / nm]) * ps / (nm * km)
GVD_f1(l) := (-l^2 / (2 * pi * c)) * D_f1(l)
E_s1 := 2 * abs(GVD_f1(lambda_ref)) / (gamma_f1 * (tau0 / 1.76))
  { soliton energy for tau0 }
z_s1 := pi * (tau0 / 1.76)^2 / (2 * abs(GVD_f1(lambda_ref)))
 
; Fiber 2:
n_f2 := 1.5
w_f2 := 1.4 um / 2
A_f2 := pi * w_f2^2
gamma_f2 := (2pi / lambda_ref) * n2_f / A_f2  { rad / (W * m) }
defarray D_f2[600, 1600, 100]
readlist l, D_f2[l]:
   600, -220
   700, -140
   800, -68
   900, -25
  1000, 3
  1100, 22
  1200, 35
  1300, 45
  1400, 53
  1500, 57
  1600, 60
D_f2(l) := (if l < 600 nm then -220 else if l > 1600 nm then 60 else D_f2~~[l / nm]) * ps / (nm * km)
GVD_f2(l) := (-l^2 / (2 * pi * c)) * D_f2(l)
 
; Combined fiber with adiabatic transition of parameters:
L := 2  { length in which the parameters of fiber 2 are reached }
D_f(l,z) := (1 - z / L) * D_f1(l) + (z / L) * D_f2(l)
GVD_f(l,z) := (1 - z / L) * GVD_f1(l) + (z / L) * GVD_f2(l)
gamma_f(z) := (1 - z / L) * gamma_f1 + (z / L) * gamma_f2

Das folgende Diagramm zeigt, wie die Pulsparameter sich in der Faser entwickeln. Wenn die Pulse sich augenblicklich auf die lokalen Faserparameter einstellen könnten, würde die Pulsdauer linear abfallen, wie von der gestrichelten Kurve gezeigt wird. In der Realität ist jedoch die Entwicklung nicht vollständig adiabatisch – insbesondere am Anfang, wenn die Solitonenperiode noch relativ lang ist (0,38 m). Außerdem verhindern die Dispersion dritter Ordnung und die stimulierte Ramanstreuung, dass die Pulse beliebig kurz werden. Die Ramanstreuung führt ebenfalls zu einer gewissen Verschiebung des Spektrums zu längeren Wellenlängen.

Pulsparameter vs. Position in der Faser

Wir können ebenfalls den resultierenden Puls mit dem interaktiven Fenster inspizieren und finden, dass seine spektrale Form verzerrt wurde:

Puls nach der Kompression

Das Spektrum der ursprünglichen Pulse war um 1060 nm zentriert, und die stimulierte Ramanstreuung erzeugt einen starken Ausläufer des Spektrums bei längeren Wellenlängen.

(zurück zu der Liste der Beispiele)