This is the code and data repo for the paper of same name in Optics Express. (TODO: add reference and link after published)
data/ folder contains original measurement data, simulation results, and some intermediate results from the extraction.
data/ring_data.mat contains the original measurement (TE) data of all 48 RRs, including:
data: matrix with each column corresponding to IL measurement (dB) of one device, and each row corresponding to one wavelength pointlambda: vector specifying the wavelength points (nm) in the rows ofdatalocation: matrix with 2 columns (x, y), with each row specifying the location of the device in the column of the same index indataradius: vector specifying the ring radius (um) at location xgap: vector specifying the gap width (um) at location y
data/TM_data.mat is the measurement in TM, with the same format as data/ring_data.mat.
data/bend.mat contains raw simulation data from the bent waveguise simulation from MODE.
neff,ng: effective index and group index. first dimension corresponds to wavelength, second dimension corresponds to radius, thir dimension corresponds to variationslambda: list of wavelengths (m) corresponds to the first dimension of dataradius: list of radius (um) corresponds to thr second dimension of data- variation as the third dimension, in the order: nominal, dw=65nm, dw=-65nm, dT=10nm, dT=-10nm, dh=3.5nm, dh=-3.5nm
data/coupling.mat contains raw simulation data for the coupling coefficients
T: (complex) coupling coefficient. first dimension corresponds to wavelength, second dimension corresponds to radius and gap width, third dimension corresponds to variationslambda: same as indata/bend.matDoE: list of radius and gap width (um) corresponds to the second dimension of data. radius as the first column, gap wisth as the second.ratio: list of variations (as scaling ratio to the nominal value) corresponds to the third dimension of data. columns in order: w/w0, T/T0, h/h0
data/coupling_base.mat contains raw simulation data of a reference waveguide for coupling coefficient calculation.
Tb: (complex) reference through port coefficient. first dimension corresponds to wavelength, second dimension corresponds to variations.lambda: same as indata/bend.mat- ratio
: same as indata/coupling.mat`
data/intGaussGrid.mat: fromintGauss.mdata/extract_raw.mat: fromfeature_extract.mdata/extract_TM.mat: fromTMinfo.mdata/extract_coupling_loss.mat: fromcoupling_loss_assign.mdata/extract_final.mat: fromcoef_save.mdata/inference_input.mat: fromsim_analysis.mdata/baseline.mat: this is the baseline response from smoothing the response from RRs with no observed resonance.
- bend waveguide simulation in MODE:
sim/wg_draw.lsf,sim/wg_2D.lsf,sim/wg_sweep_bend.lsf - coupling simulation in FDTD:
sim/rr_start.lsf,sim/dc_draw.lsf,sim/dc_setup.lsf,sim/dc_run.lsf,sim/rr_sweep_ridge.lsf,sim/wg_ref.lsf
The running order of the code files and their functions:
intGauss.m: (optional) produces the pre-computed grid data for fast discrete Gaussian distribution calculationfeature_extract.m: peak parameters fitting and error estimation, also include some initial parameter conversionTMinfo.m: extracts the peak information from the TM data. Even though the whole system is set in TE mode, we observed some conversion to TM mode at certain resonant peaks, possibly from some variations. These TM mode leakage can affect background noise level of TE mode and cause inaccurate extinction ratio and thus coupling & loss. Therefore, we extract the peak information from the TM data, and exclude the coupling & loss extraction data where the TM peak is significant (but effective & group index extraction are still included).coupling_loss_assign.m: an automatic procedure (similar to cluster problem) to assign correct values for coupling and loss based on the wavelength response and similarity across devices. For detail, please refer to my PhD thesis. (TODO: add link when available)coef_save.m: calculates effective and group index from peak information.sim_analysis.m: generates sensitivity matrices and nominal fitting design matrices from simulation data. Also performs adjustment scaling of error estimation.EM_analysis.m: EM algorithm of the Bayesian inference.
For numerical computation purpose, we are using a different system for the variables in the EM algorithm in EM_analysis.m:
| Code variables | Notation in paper |
|---|---|
AA{i} |
|
yy{i} |
|
dd{i} |
|
IS{i} |
|
LL{i} |
|
m |
|
IR{i} |
|
ISR{i} |
|
K(:, :, i) |
|
mu(:, i) |
|
V |
|
ni(i) |
|
li(i) |
|
mi(i) |
|
vi(i) |
|
IV |