Tool · PIC characterization

Grating Coupler Spectrum Fitter

What are the center wavelength, loss per coupler and bandwidth of a grating coupler, read from a loopback scan, and where does the ripple on that scan come from? The fitter fits a parabola in dB to the top of the pasted spectrum, divides the loss and scales the bandwidths to one coupler, and finds the period of the residual ripple to estimate the length of the parasitic Fabry-Perot cavity. Background: grating coupler, insertion loss, and Fabry-Perot resonator.

Measured scan

Two columns per line: wavelength in nm, then transmission. Comma, tab, or space separated. dB is detected automatically (or force it below).

The example is a synthetic back-to-back scan: 4.8 dB per coupler at 1547 nm, a 1 dB bandwidth of 16 nm for the two-coupler path (22.6 nm per coupler), 0.4 dB of Fabry-Perot ripple from a 0.89 mm parasitic cavity, and 0.05 dB of noise. Near its peak a grating coupler is parabolic in dB, so the fit runs on the points within your chosen window of the maximum, then re-centers itself once on the fitted peak.

Coupler spectrum
Paste a scan (or load the example) and press fit.

Residuals in the fit window · the ripple lives here
 
Fitted parametersno fit yet

Per-coupler numbers assume the couplers in the path are identical; on one die that is typically good to a few tenths of a dB. The ripple, its period and the implied cavity are shown only when a sinusoid at the detected period stands out from the residual noise (false-alarm probability below 0.1 %, allowing for the number of periods searched) and the ripple is at least 0.02 dB peak-to-peak. Procedure, error budget, and the worked ripple example: De-embedding coupler loss with reference structures.

Checked against

These validation rows run in your browser on every load: the fitter is exercised on synthetic scans with known answers, including ripple-period recovery and the refusal path for peakless data.

CheckExpectedComputedTolerance

The table fits synthetic scans whose center, loss, widths and ripple are set by construction, so the expected values are known exactly rather than taken from a publication, and it checks that a scan with no peak is refused. A ± tolerance is the largest absolute difference that still passes, in the units of the Expected column; a percentage is relative to the expected value; “condition” means the Expected entry is itself the test, and “exact” means the outcome must match.

The model

Near its peak the transmission of a grating coupler, expressed in dB, is close to a parabola in wavelength:

TdB(λ)=T0−a (λ−λ0)2

The tool fits this by linear least squares to the points within the chosen window (3 dB by default) of the highest sample, then re-centers the window on the fitted peak and fits once more. The full width at X dB below the peak follows from the curvature:

BWX=2X/a

A loopback path through N identical couplers is N such parabolas added in dB, so one coupler has loss −T0/N and curvature a/N, and its bandwidths are the path values times N. The residuals inside the window are resampled onto a uniform grid and autocorrelated; the first autocorrelation peak after the first zero crossing gives the ripple period Δλr, and a cavity of group index ng with that free spectral range has length

Lc=λ022 ng Δλr

The autocorrelation finds a period in almost any residual, noise included, so the ripple, its period and Lc are shown only when the ripple is significant. A sinusoid at Δλr is fitted to the n residuals by least squares; for white noise its two quadrature amplitudes give a statistic z (about nA2/(4s2) for amplitude A and residual variance s2) that noise alone exceeds with probability e−z at one trial period. Allowing for about n/2 independent periods searched, the false-alarm probability is 1−(1−e−z)n/2; the ripple counts when that is below 0.1 % and the peak-to-peak is at least 0.02 dB, the smallest value the two-decimal readout distinguishes from zero.

The parabola describes the top few dB of a Gaussian-like response; further down the tails depart from it, which is why the window is limited. The division by N assumes the couplers are identical and the connecting waveguide is lossless, and the cavity length depends on the group index entered, which must belong to the medium where the reflections occur (the waveguide, the fiber or the substrate).

Worked example

Press load example scan with the default settings (2 couplers, 3 dB window, ng=4.2). The synthetic scan runs from 1522 to 1572 nm with a peak of −9.6 dB at 1547 nm, a curvature of 1/64 dB/nm², 0.4 dB peak-to-peak ripple of period 0.32 nm and 0.05 dB of noise. The fit returns λ0 = 1547.01 nm, a path loss of 9.61 dB and 4.80 dB per coupler, and a=1.54×10−2 dB/nm² (0.01545 before rounding), so the path 1 dB width is 2√(1/0.01545) = 16.1 nm and the 3 dB width 27.9 nm; per coupler these become 22.8 and 39.4 nm. The residual ripple measures 0.50 dB peak-to-peak (2.5 to 97.5 percentile, so noise is included) with a period of 0.320 nm, and 1547.01² / (2 × 4.2 × 0.320) nm = 0.89 mm, the cavity length the example was built with. Its false-alarm probability is far below 0.1 %, so the ripple readouts are shown. The measurement procedure that uses these numbers is in De-embedding coupler loss with reference structures.

References: D. Taillaert et al., “Grating couplers for coupling between optical fibers and nanophotonic waveguides,” Japanese Journal of Applied Physics 45, 6071–6077 (2006). L. Chrostowski and M. Hochberg, Silicon Photonics Design (Cambridge University Press, 2015).