Analyzing & Fitting experimental data in INTERCONNECT


#1

Hello,

I would like to use INTERCONNECT to analyze experimental data. The file below is the magnitude response of a ring resonator. It is the same as the “gain (dB)” in the ONA.

I can load this in INTERCONNECT via:

matlabload(‘LukasC_RingDoubleTER3g50_1499.mat’);

Unfortunately, I get an error:

Error: prompt line 1: matlabload could not import matlab variable metadatainto workspace: MATLAB variable is an unsupported variable type

But fortunately, my measured data is there, and I can plot it.

plot (scandata.wavelength, scandata.power);

There are a few things I can imagine doing in INTERCONNECT:

  1. Use the ONA analysis features, namely FSR, extinction ratio, quality factor, etc. Perhaps there could be a method of loading experimental data into the ONA, and using the built-in analysis functions? This would be convenient since we can then compare simulations versus experiments. Otherwise, is there a way to access the analysis functions that are available in the ONA?

  2. Curve fitting. Perhaps writing scripts could be done to analyze the data. But the ONA already has these so it would be nice to take advantage of them. Are there any script functions that we can use, e.g., peak finding, bandwidth determination, etc? I note that the findpeaks function, https://kb.lumerical.com/en/ref_scripts_findpeaks.html, is less sophisticated than the ONA’s peak (which lists many parameters), https://kb.lumerical.com/en/ref_primitive_elements_optical_network_analyzer.html

  3. Building compact models based on experimental data – this is a more complicated question…

Thank you

Lukas

LukasC_RingDoubleTER10g100_1495.mat (313.8 KB)


#2

Hi Lukas

I think the matlabload problem is due to some data format issue, and I will file a bug report on this. Thank you for the suggestions of the features, we also think they are good ideas and will definitely add them to the to-do list and keep you in the loop about the updates.

Thank you :slightly_smiling:
Guanhui


#3

Hi Lukas

Turned out that it is the metadata.measured_device_number has a 32 bit integer type that messed up the “matlabload” command. The problem will be solved if you change the number type to double precision floating point number. I can file a feature request on automatically converting the data type when matlab load the file if necessary.

I hope this could help :slightly_smiling: