Spectrum

class ipkiss3.all.Spectrum(x, power, peaks=None, dB=True, peak_method='spline', peak_threshold=None, bandpass=None)

Object representing a transmission spectrum.

Parameters:

x: List[float]

List of wavelengths or frequencies in the spectrum.

power: List[float]

List of power levels, one for each wavelength or frequency sample in x.

peaks: List[Tuple] (optional)

A list of peaks, i.e. (peak_x, peak_power) tuples.

dB: bool (optional)

Interpret power in decibel (True) or not (False)

peak_method: ‘spline’ or ‘cwt’

Peak detection method to be used

peak_threshold: float or None

Threshold for peak detection

bandpass: bool or None

Treat spectra as bandpass (True), bandstop (False) or automatic (None)

visualize(show=True, title=None, label=None)

Plot the spectrum.

find_peaks(method='spline', threshold=None, bandpass=None, **kwargs)

Uses i3.find_peaks to return a list of peaks. Can be used to override the peaks associated with this spectrum.

Returns:A list of peaks, i.e. a list of (peak_x, peak_power) tuples.
trim(band=None)

Create a new spectrum that is trimmed over an x-range of interest.

Parameters:

band: Tuple[float] (optional)

Lower and upper bound for the x values of the spectrum, i.e. (x_min, x_max)

Returns:

A new Spectrum object

min_insertion_losses(bands=None)

Calculate the minimum insertion loss for every given band.

Parameters:

bands: List[Tuple[float]] (optional)

A list of bands [(x_min, x_max), …] over which to calculate the insertion loss. If None, the whole spectrum is taken into account.

Returns:

The minimum insertion loss per band

max_insertion_losses(bands=None)

Calculate the maximum insertion loss for every given band.

Parameters:

bands: List[Tuple[float]] (optional)

A list of bands [(x_min, x_max), …] over which to calculate the insertion loss. If None, the whole spectrum is taken into account.

Returns:

The maximum insertion loss per band.

fsr()

Calculate the free spectral range (distance between two peaks).

Returns:A list containing the distances between adjacent peaks.
width_passbands(width)

Calculate x-limited passbands centered around the peaks.

Parameters:

width: float

Width of one passband, expressed in the same units and scale as x.

cutoff_passbands(cutoff)

Calculate power-limited passbands centered around the peaks.

Parameters:

cutoff: float

Maximum acceptable power loss with respect to the peak power.