利用ipkiss 自带的get_smatrix获取线路的传输谱
对于线路:
可通过get_smatrix直接得到其传输谱:
wavelengths = np.linspace(1.5, 1.6, 2001)
cm = r_dc.CircuitModel()
S = cm.get_smatrix(wavelengths=wavelengths)
plt.plot(wavelengths, i3.signal_power(S["out1", "in1"]), label="out1")
plt.plot(wavelengths, i3.signal_power(S["out2", "in1"]), label="out2")
plt.plot(wavelengths, i3.signal_power(S["in1", "in1"]), label="reflection")
plt.legend()
plt.xlabel("Wavelengths [um]")
plt.ylabel("Transmission")
plt.show()
也可以通过get_smatrix直接获取单个器件的行为模型,如方向耦合器的传输谱:
from si_fab import all as pdk
from ipkiss3 import all as i3
import math
import numpy as np
import pylab as plt
r_dc = pdk.SiDirectionalCouplerSPower(power_fraction=0.5, target_wavelength=1.55)
my_circuit = r_dc.Layout()
my_circuit.visualize(annotate=True)
my_circuit.write_gdsii("Rounted_dc.gds")
wavelengths = np.linspace(1.5, 1.6, 2001)
cm = r_dc.CircuitModel()
S = cm.get_smatrix(wavelengths=wavelengths)
plt.plot(wavelengths, i3.signal_power(S["out1", "in1"]), label="out1")
plt.plot(wavelengths, i3.signal_power(S["out2", "in1"]), label="out2")
plt.legend()
plt.xlabel("Wavelengths [um]")
plt.ylabel("Transmission")
plt.show()
或者光栅耦合器的传输谱:
from si_fab import all as pdk
from ipkiss3 import all as i3
import math
import numpy as np
import pylab as plt
r_dc = pdk.FC_TE_1550()
my_circuit = r_dc.Layout()
my_circuit.visualize(annotate=True)
wavelengths = np.linspace(1.5, 1.6, 2001)
cm = r_dc.CircuitModel()
S = cm.get_smatrix(wavelengths=wavelengths)
plt.plot(wavelengths, i3.signal_power(S["out", "vertical_in"]), label="out")
plt.legend()
plt.xlabel("Wavelengths [um]")
plt.ylabel("Transmission")
plt.show()