Numerical S-matrix model consisting of a univariate B-spline representations over wavelength.
Every S-parameter in the matrix is represented by t, c, k (knots, coefficients, degree) for both amplitude and phase, expressing the S-parameter as a function of wavelength.
The (i, j) th item in the t, c, k matrices, i.e., t[i, j, :], c[i, j, :], k[i, j] is associated with S-matrix element S[i, j]. Hence the order of the terms in the CompactModel is important to determine the order in which items appear in the t, c, k matrices.
t_abs, c_abs, k_abs:
t_phase, c_phase, k_phase:
t[i, j, :]: vector of knots for the S(i,j) c[i, j, :]: B-spline coefficients for S(i, j) k[i, j]: degree of the spline for S(i, j) where _abs is used to represent the absolute value, and _phase used to represent the angle.
When set to True, the part of the smatrix below the diagonal is replicated to the upper part of the smatrix.
calculate_smatrix(parameters, env, S)¶
Generate a BSplineSModel from a SMatrix1DSweep
Since BSplineSModel is expressed as function of wavelength, SMatrix1DSweep must be expressed as function of wavelength (sweep_parameter_name==’wavelength’) or it will be converted automatically with micrometer as a default wavelength unit. If your system simulation is in different units (e.g. nanometer), please convert smatrix_1dsweep upfront.
the data from which to interpolate, can come from a simulation or measurement.
the keyword arguments are passed to scipy’s splrep to alter the B-splines used for interpolation. Most notably, k is used to set the order of the spline, ‘s’ is a smoothing factor which can be used for smoothing in case of noisy input data.
parameters= ['t_abs', 'c_abs', 'k_abs', 't_phase', 'c_phase', 'k_phase', 'reciprocal', '_n_terms']¶